ci: move the harness to the current Home Assistant

Замер по AC5 #392 изменил решение. Я собирался заморозить набор на том, что
резолвилось (HA 2026.2.3, февральский), и вынести обновление в отдельную
задачу «на потом» — потому что шесть месяцев дрейфа API вслепую в dev не
отправляют.

Проверил на ветке experiment/392-py314: Python 3.14, phcc 0.13.357,
homeassistant 2026.8.3 — `450 passed, 2 skipped`. Ровно то же, что на старом
наборе, ни одного падения. Обновление оказалось бесплатным, и держать гейт на
февральском HA после такого замера нельзя.

Взята 0.13.357, а не последняя: она последняя, которая пинует стабильный
2026.8.3, дальше пинуются беты. Гейт на бете невоспроизводим — бету могут
перевыпустить под тем же номером.

pytest не закреплён намеренно: phcc задаёт совместимый диапазон сам, жёсткий
пин с ним конфликтует (ResolutionImpossible на 9.0.0, проверено).

Issue: #392
User-Visible: no
This commit is contained in:
Matysh
2026-08-30 20:00:17 +03:00
parent eb5aa2a0f8
commit a3dcee5241
3 changed files with 24 additions and 21 deletions
+1 -1
View File
@@ -61,7 +61,7 @@ jobs:
- uses: actions/setup-python@v7
with:
python-version: '3.13'
python-version: '3.14'
- name: Установить backend test dependencies
run: |
+1 -1
View File
@@ -777,7 +777,7 @@ jobs:
- uses: actions/setup-node@v7
with: { node-version: 22 }
- uses: actions/setup-python@v7
with: { python-version: "3.13" }
with: { python-version: "3.14" }
- run: |
# Точные версии — в tests_backend/requirements.txt (#392): без них
# резолвер выбирает набор сам, и «зелёный backend» значит разное
+22 -19
View File
@@ -1,29 +1,32 @@
# Зависимости HA-харнесса, закреплённые точно (issue #392).
#
# Было так: `pip install pytest voluptuous pytest-homeassistant-custom-component
# home-assistant-frontend` без единой версии. Резолвер молча выбирал набор сам,
# и выбор зависел не от нашего коммита, а от того, что в этот день лежит на
# PyPI. По SHA нельзя было сказать, чем его проверяли.
# home-assistant-frontend` без единой версии. Резолвер выбирал набор сам, и
# выбор зависел не от нашего коммита, а от того, что в этот день лежит на PyPI.
# По SHA нельзя было сказать, чем его проверяли.
#
# Что здесь записано — ровно то, что резолвилось на 30.08.2026, снятое из лога
# шага `pip install`. Цель этого файла не «взять новое», а «перестать дрейфовать».
# Хуже того, выбирал он молча и неудачно. Все релизы phcc начиная с 0.13.348
# (25.07.2026) требуют Python >= 3.14, а job стоял на 3.13 — резолвер уезжал на
# 0.13.316, а та тянет homeassistant 2026.2.3. Интеграция полгода проверялась
# против февральского Home Assistant, и никакой гейт об этом не сообщал.
#
# Знать про эти версии нужно две вещи.
# Переход на актуальный HA оказался бесплатным: замер на ветке
# experiment/392-py314 дал `450 passed, 2 skipped` — ровно то же, что на старом
# наборе. Полугодовой дрейф API нашей интеграции не задел.
#
# 1. `pytest-homeassistant-custom-component` начиная с 0.13.348 (25.07.2026)
# требует Python >= 3.14, а job стоит на 3.13. Поэтому резолвер и уезжал на
# 0.13.316 — последнюю, которая ставится на 3.13.
# 2. Она тянет `homeassistant==2026.2.3`, то есть февральский. Харнесс проверяет
# интеграцию против HA, которого у пользователей давно нет. Это известный
# долг, а не оплошность: снимать его надо переходом на 3.14 и свежий phcc,
# и это отдельная задача с отдельным измерением.
# Почему 0.13.357, а не последняя. Она — последняя, которая пинует стабильный
# homeassistant 2026.8.3; начиная с 0.13.358 пинуются беты (2026.9.0bN).
# Гейт на бете держать нельзя: её могут перевыпустить под тем же номером, и
# «зелёный» перестанет быть воспроизводимым.
#
# Менять версии здесь можно, но только вместе с прогоном полного набора: это
# не косметика, а смена того, что означает зелёный backend.
pytest==9.0.0
# pytest не закреплён намеренно: phcc сам задаёт совместимый диапазон, а жёсткий
# пин с ним конфликтует (проверено — ResolutionImpossible на 9.0.0).
#
# Менять версии здесь можно, но только вместе с прогоном полного набора: это не
# косметика, а смена того, что означает зелёный backend.
voluptuous==0.15.2
pytest-homeassistant-custom-component==0.13.316
home-assistant-frontend==20260128.6
pytest-homeassistant-custom-component==0.13.357
home-assistant-frontend==20260826.1
# Ставится транзитивно из phcc; закреплён явно, чтобы версия была видна тому,
# кто читает этот файл, а не только тому, кто читает лог.
homeassistant==2026.2.3
homeassistant==2026.8.3