Files
fgl-aircon/docs/RELEASE_HA.md
T
petr.polezhaev 8013781e09 ha(H5): README+HACS, скрипт приёмки, релизный чек-лист
- custom_components/fglair/README.md: HACS-установка, cloud/ручной/импорт,
  превью шаблона, сущности, ключ для ESPHome (reconfigure/CLI), диагностика
  и troubleshoot; заглушки screenshots/step-1..8.png (сгенерированы)
- tests/acceptance/test_esphome_ha.py: quick/burst/long через REST API HA
  (long-lived token), адаптивная матрица по capabilities, возврат исходного
  состояния, CSV-отчёт long, опциональный ESPHome-канал (aioesphomeapi)
- self-test приёмки на моке HA REST (6 тестов, без железа)
- hacs.json; README: раздел Home Assistant; docs/RELEASE_HA.md: публикация
  pyfglair на PyPI (wheel/sdist, auditwheel), HACS-релиз, приёмка
- scripts/py-ci.sh: tests/acceptance; план H5 отмечен
2026-09-29 14:42:41 +03:00

56 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Чек-лист релиза HA-интеграции (H5)
## 1. Публикация pyfglair
Манифест компонента требует `pyfglair>=1.0.0`; штатный installer HA
резолвит требования только через PyPI.
```sh
# на каждой целевой архитектуре (linux x86_64/aarch64):
.venv/bin/python -m build --wheel # py3-none-linux_<arch>.whl с .so и mbedtls
.venv/bin/python -m build --sdist # sdist с C++-исходниками (MANIFEST.in)
twine upload dist/*
```
Проверки перед публикацией:
* `scripts/py-ci.sh` — 28 pyfglair + 47 components + 6 acceptance self-test;
* `scripts/ci.sh` — ядро (gcc/clang, ASan/UBSan) 11/11;
* `readelf -d pyfglair/libfgl-aircon.so*` — нет внешней `libmbedcrypto`
(mbedtls встроен);
* `auditwheel show dist/pyfglair-*.whl` — платформа совместима с manylinux
(зависимости: libstdc++/libc);
* установка wheel в чистый venv вне репозитория: `import pyfglair.session`.
При невозможности публикации wheel для какой-то архитектуры в манифесте
можно указать прямую ссылку на wheel, но это лишает HACS-пользователей
других архитектур; предпочтителен PyPI.
## 2. HACS
* Репозиторий содержит `custom_components/fglair/` и `hacs.json` (name).
* Заполнить `codeowners` в `custom_components/fglair/manifest.json`
(GitHub-хендлы владельцев; сейчас пустой список — допустимо для custom
repository, но не для выкладки в HACS по умолчанию).
* Проверить `documentation`/`issue_tracker` в манифесте (актуальные URL).
* Заменить заглушки `custom_components/fglair/screenshots/step-N.png`
реальными скриншотами (описания «что должно быть видно» — в README).
* Добавить brand-ассеты (`custom_components/fglair/brand/icon.png`,
`logo.png`) при выкладке в HACS.
* Создать git-тег (semver) и указать его в HACS-релизе.
## 3. Приёмка на живом стенде
* `tests/acceptance/test_esphome_ha.py quick` — матрица изменений
(HA; при наличии ESPHome-компонента — обе стороны), с возвратом.
* `--long --hours 24` — суточный прогон с CSV-отчётом.
* Проверить сценарии: 503 (два слота заняты), key_error и Repair,
offline/восстановление, несколько устройств (разные порты прослушивания),
reconfigure без потери конверсий.
## 4. Ограничения текущего стенда
* Реального железа/облака в CI нет: протокол проверен mock-модулем
(`tests/ayla/mock_ac.py`), облако — мок-сервером.
* Суточный soak и работа с реальными re-key — только на приборе.