Files
houseplan-card/tests_backend/requirements.txt
T
Codex dddbbe5522 ci: make the strict typing gate actually run (#42)
r6 Medium: AC4 was measurable only on a developer's machine — no
workflow invoked mypy, so a typing regression in any of the six
allowlist modules reached dev unnoticed while the issue claimed
measurable backend quality. Coverage and lint had continuous gates;
typing had a text comparison of a committed list.

The backend job now runs mypy right after ruff, from the same pinned
dependency file (mypy==2.3.1 — an unpinned checker would redden on code
that never changed). The step derives its module list from the
pyproject.toml strict allowlist instead of duplicating it, because a
drifted duplicate is a green step checking the wrong modules, and it
refuses an empty list rather than passing silently.

Guarded twice: a contract test pins all three facts (pinned checker,
a step that really invokes it, list read from pyproject) and the new
typing-gate-stops-running mutant reddens when the invocation is
neutered.

User-Visible: no
Issue: #42
2026-08-30 22:00:52 +03:00

40 lines
3.1 KiB
Plaintext
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-харнесса, закреплённые точно (issue #392).
#
# Было так: `pip install pytest voluptuous pytest-homeassistant-custom-component
# home-assistant-frontend` без единой версии. Резолвер выбирал набор сам, и
# выбор зависел не от нашего коммита, а от того, что в этот день лежит на PyPI.
# По SHA нельзя было сказать, чем его проверяли.
#
# Хуже того, выбирал он молча и неудачно. Все релизы 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 нашей интеграции не задел.
#
# Почему 0.13.357, а не последняя. Она — последняя, которая пинует стабильный
# homeassistant 2026.8.3; начиная с 0.13.358 пинуются беты (2026.9.0bN).
# Гейт на бете держать нельзя: её могут перевыпустить под тем же номером, и
# «зелёный» перестанет быть воспроизводимым.
#
# pytest не закреплён намеренно: phcc сам задаёт совместимый диапазон, а жёсткий
# пин с ним конфликтует (проверено — ResolutionImpossible на 9.0.0).
#
# Менять версии здесь можно, но только вместе с прогоном полного набора: это не
# косметика, а смена того, что означает зелёный backend.
voluptuous==0.15.2
pytest-homeassistant-custom-component==0.13.357
home-assistant-frontend==20260826.1
# Ставится транзитивно из phcc; закреплён явно, чтобы версия была видна тому,
# кто читает этот файл, а не только тому, кто читает лог.
homeassistant==2026.8.3
# #42: линт бэкенда (шаг «Линт бэкенда» в validate.yml ставится отсюда же).
ruff==0.16.5
# #42: строгая типизация allowlist-модулей (шаг «Типы бэкенда»). Без пина
# гейт типизации был бы не воспроизводим по SHA — ровно то, от чего этот
# файл и заведён: новая версия mypy добавляет проверки и краснеет на коде,
# который не менялся.
mypy==2.3.1