- 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 отмечен
3.2 KiB
3.2 KiB
Чек-лист релиза HA-интеграции (H5)
1. Публикация pyfglair
Манифест компонента требует pyfglair>=1.0.0; штатный installer HA
резолвит требования только через PyPI.
# на каждой целевой архитектуре (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 — только на приборе.