You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
[1.0.1] - 2026-07-21
Changed
Upgraded the dev/test dependency chain off the old homeassistant==2024.11.0b7 beta pin
to homeassistant==2025.2.5 / pytest-homeassistant-custom-component==0.13.215 / aiohttp==3.11.12 — the latest stable pairing available before homeassistant started
unconditionally depending on pymicro-vad/pyspeex-noise, which have no published Windows
wheels. Raised requires-python to >=3.13,<3.14 to match the new test harness's floor. No
runtime/functional change to the integration itself.
Worked around an upstream Windows incompatibility in pytest-homeassistant-custom-component's mock_zeroconf_resolver fixture (present in every
release from 0.13.181 through the latest 0.13.346): it eagerly constructs a real aiodns.DNSResolver, which requires a SelectorEventLoop on Windows, but the harness also
installs homeassistant.runner.HassEventLoopPolicy and neuters asyncio.set_event_loop_policy, so the usual pytest-asyncio override has no effect. Patched HassEventLoopPolicy._loop_factory directly in tests/conftest.py instead.
Grouped homeassistant, pytest-homeassistant-custom-component, aiohttp, pytest-asyncio, pytest, and josepy in .github/dependabot.yml so future Dependabot
updates propose one resolvable bump instead of several that each fail independently (#58, #55) — pytest-homeassistant-custom-component pins exact versions of the first four, and homeassistant transitively requires josepy>=1.13.0,<2 via hass-nabucasa/acme, so
isolated single-package bumps are structurally unsatisfiable.
Capped requires-python to <3.14 after a Dependabot run failed resolving a python_full_version >= '3.14.2' split: an open-ended floor forces uv lock to also find a
resolution valid for hypothetical future Python versions, and for 3.14+ that meant jumping to homeassistant==2026.2.3 (which reintroduces the pymicro-vad Windows problem and pulls in hass-nabucasa==1.12.0's josepy>=2,<3, conflicting with our josepy<2.0.0 pin). Capping
the floor to the Python version we actually pin (.python-version = 3.13) removes the
multi-version fork at the root instead of chasing each conflict it produces.
Added constraint-dependencies = ["homeassistant<2025.4.0"] under [tool.uv] after a
Dependabot "uv group" bump (#62) crossed the pymicro-vad/pyspeex-noise boundary anyway,
breaking uv sync on Windows on main — the Dependabot grouping only bundles PRs together,
it doesn't constrain what the resolver picks. A follow-up single-package security PR (#65,
targeting a zeroconf mDNS cache-poisoning fix, GHSA-qc2x-6f54-m6h9) then swung the other
way, resolving an older pytest-homeassistant-custom-component==0.13.195 than our intended
pin and silently dropping zeroconf from the graph entirely rather than patching it — because homeassistant==2025.2.5 pins zeroconf==0.144.1 exactly, that CVE can't be fixed
independently while under the Windows ceiling; it's dev/test-only exposure, since zeroconf
isn't a runtime dependency of the shipped integration (manifest.json only requires beautifulsoup4/lxml). The explicit ceiling makes future resolutions land back on the
known-good pin (pytest-homeassistant-custom-component==0.13.215 / homeassistant==2025.2.5) deterministically instead of wherever an unconstrained resolver
happens to swing. Revisit alongside #64.
Moved local dev/test onto a devcontainer (.devcontainer/) and dropped the homeassistant<2025.4.0
constraint and requires-python upper-bound history above — both turned out to be about native Windows
being unable to import homeassistant.runner's unconditional, unguarded fcntl/resource stdlib usage
(no Windows equivalent, present in every current release), not about the pinned dependency versions
themselves. pyproject.toml now only pins requires-python to the Python line the devcontainer's base
image actually provides (>=3.13.2,<3.14) for resolution stability, with no Windows-specific constraint at
all. Dev/test now tracks current homeassistant (2026.2.3 as of this change) again. Native Windows uv sync/pytest is no longer a supported path — see CONTRIBUTING.md.