- 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 отмечен
56 lines
3.2 KiB
Markdown
56 lines
3.2 KiB
Markdown
# Чек-лист релиза 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 — только на приборе.
|