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

3.2 KiB
Raw Blame History

Чек-лист релиза 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 — только на приборе.