Skip to content

Bump test/CI dependency to Home Assistant 2026.7.4 - #12

Merged
jsight merged 1 commit into
mainfrom
bump-ha-2026.7.4
Jul 31, 2026
Merged

Bump test/CI dependency to Home Assistant 2026.7.4#12
jsight merged 1 commit into
mainfrom
bump-ha-2026.7.4

Conversation

@jsight

@jsight jsight commented Jul 31, 2026

Copy link
Copy Markdown
Owner

Summary

Our dev/test dependency was pinned to homeassistant==2024.1.0, over 2.5 years stale. This is why the recent hass.components.persistent_notification crash (fixed in #10) wasn't caught by CI — that deprecated accessor still worked fine on the old pinned version, so tests passed locally while it crashed on any HA version real users actually run.

  • requirements-dev.txt: homeassistant 2024.1.0 → 2026.7.4 (latest), mypy 1.8.0 → 1.15.0 (old mypy can't parse HA's newer source syntax)
  • CI Tests job now runs on Python 3.14 (HA 2026.3+ requires it)
  • mypy: added follow_imports = "skip" for homeassistant.* — previously mypy tried to fully parse HA's own source tree, which times out / errors on syntax mismatches as HA's syntax requirements move forward. We don't need HA's types checked, just our own code.
  • Real breakage caught by the version bump: DataUpdateCoordinator.__init__ now expects config_entry passed explicitly rather than relying on a deprecated ContextVar lookup. HA 2026.8 turns this into a hard failure for all integrations (not just core ones), so this was going to break regardless — the version bump just surfaced it now instead of after the fact. Fixed by threading config_entry through PecronDataUpdateCoordinator.__init__.
  • manifest.json minimum_version raised to 2024.11.0, the first HA release that accepts config_entry as a DataUpdateCoordinator kwarg.

Test plan

  • pytest — all 64 tests pass on HA 2026.7.4 / Python 3.14
  • ruff check / ruff format --check clean on changed files
  • mypy runs without timing out or syntax errors (pre-existing, unrelated type errors in files not touched here are unaffected — CI's mypy job is non-blocking anyway)

🤖 Generated with Claude Code

Was pinned to 2024.1.0 (2.5+ years stale), which is why the recent
hass.components.persistent_notification crash wasn't caught by CI:
that deprecated accessor still worked on the old pinned version.

- requirements-dev.txt: homeassistant 2024.1.0 -> 2026.7.4, mypy
  1.8.0 -> 1.15.0 (old mypy can't parse HA's newer syntax)
- CI Tests job now runs on Python 3.14 (required by HA >=2026.3)
- mypy: skip following into homeassistant.* imports instead of
  type-checking HA's own source tree against our target Python
  version (was timing out / erroring on syntax mismatches)
- DataUpdateCoordinator now passes config_entry explicitly instead
  of relying on the deprecated ContextVar lookup; HA 2026.8 turns
  this into a hard failure for all integrations, so this was about
  to break regardless of the version bump
- manifest.json minimum_version raised to 2024.11.0, the first HA
  release that accepts config_entry as a DataUpdateCoordinator kwarg

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@jsight
jsight merged commit ee3ffcc into main Jul 31, 2026
5 checks passed
@jsight
jsight deleted the bump-ha-2026.7.4 branch July 31, 2026 00:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant