Skip to content

fix(deps): drop manifest-redundant httpx pin, bump caldav to 3.3.0a1 - #51

Merged
Pascal-ZeGerman merged 2 commits into
mainfrom
fix/hassfest-manifest-deps
Nov 1, 2026
Merged

Pascal-ZeGerman merged 2 commits into
mainfrom
fix/hassfest-manifest-deps

Conversation

@Pascal-ZeGerman

Copy link
Copy Markdown
Owner

Summary

Fixes the `hassfest` CI check (`Validate manifest.json`), which started failing on every PR — not just PR #49, see its comment thread — because:

* [ERROR] [REQUIREMENTS] Requirement httpx>=0.28.0 is a dependency of Home Assistant itself and must not be listed in the manifest of a custom integration.
* [ERROR] [REQUIREMENTS] Requirement caldav==2.1.0 is incompatible with caldav==3.3.0a1, which Home Assistant depends on.
  • Dropped `httpx>=0.28.0` from `manifest.json`'s `requirements`. HA core already bundles httpx, so hassfest now rejects redeclaring it. The code's `import httpx` usage is unaffected — HA guarantees it's importable regardless.
  • Bumped `caldav==2.1.0` → `caldav==3.3.0a1` to match HA core's own pin, and bumped the matching dev dependency in `pyproject.toml` (dropping the `[async]` extra, which `3.3.0a1` no longer provides).

Didn't assume compatibility — verified it: pip-installed the real `caldav==3.3.0a1` into `.venv` and ran the suite before writing this up.

Test plan

  • All 130 caldav-specific tests (`test_caldav_sync.py`, `test_coordinator_caldav.py`, `test_init_caldav_remove.py`, `test_options_flow_caldav.py`, `test_options_flow.py`) pass against the real `caldav==3.3.0a1`
  • Full suite: 1113 passed, only the same 6 pre-existing network-blocked `test_sign_retrieval.py` failures (sandbox has no network access)
  • `ruff check` clean
  • `mypy src/gps2asp/` and `mypy custom_components/asp_parking/` (run separately, matching CI) both clean
  • hassfest passes in CI on this PR

🤖 Generated with Claude Code

https://claude.ai/code/session_01NVTaYxJNE3ANndgwg7LJPt

Pascal-ZeGerman and others added 2 commits November 1, 2026 11:06
hassfest now rejects the manifest's httpx>=0.28.0 requirement outright --
HA core already bundles httpx, so a custom integration must not redeclare
it (the import itself is unaffected; HA guarantees httpx is importable).

caldav==2.1.0 also conflicts with HA core's own caldav==3.3.0a1 pin.
Verified compatibility rather than assuming it: pip-installed the real
caldav==3.3.0a1 into .venv (dropping the now-nonexistent [async] extra)
and ran the full suite -- all 130 caldav-specific tests plus the rest of
the suite pass unchanged (same pre-existing 6 network-blocked
test_sign_retrieval.py failures as every other run in this sandbox).
ruff and mypy (run per-path as CI does) are both clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NVTaYxJNE3ANndgwg7LJPt
HA core's own caldav pin moved from ==3.3.0a1 to ==3.5.0a0 within minutes
of the previous commit -- it's tracking caldav's prerelease line and
isn't stable. An exact pin here means hassfest goes red again on the next
upstream bump with no code change on our side to explain it.

Switched to caldav>=3.3.0a1, a floor hassfest's compatibility check can
satisfy against any forward move of HA's own pin. Re-verified against the
real caldav==3.7.0 (current stable latest, most likely to actually get
resolved) in addition to 3.3.0a1: all 130 caldav tests and the full suite
pass unchanged on both. Bumped the pyproject.toml dev pin to the stable
3.7.0 so local dev/test installs track a real release, not an abandoned
alpha.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NVTaYxJNE3ANndgwg7LJPt
@Pascal-ZeGerman
Pascal-ZeGerman merged commit 2260644 into main Nov 1, 2026
17 checks passed
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