Repository navigation
chore: adopt override principles in CI, skills and docs - #215
Merged
Merged
Conversation
This component replaces core's hive integration as an opt-in fast channel, and may pin a newer pyhive-integration than core, including pre-releases in betas. Write that down and make CI, the release check and the skills follow it. - CLAUDE.md: the two principles (extend and reuse core; opt-in fast channel). - hassfest.py: run the official hassfest image, and report only the pyhive-integration differences from core hive's pin as warnings. Every other error still fails. ci.yml and compat.yml use it. - check_release.py: a stable release must not pin a pre-release pyhive. - ci.yml: fix the re-enable job (gh workflow view has no --json here). - Skills: /release checks PyPI for the newest pyhive, betas included, before a beta; /bump-pyhive gets a working download step and the principles; /triage-compat and /repo-health expect the hassfest warning. - MAINTAINING.md and README.md document the process and the beta channel. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2 of 3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this change?
Writes down why this repo exists, and makes CI, the release check and the Claude Code skills follow it.
Principles (new
CLAUDE.md, summarised inMAINTAINING.mdand the README)hiveintegration to add capability, but re-exports core's platforms instead of copying them.pyhive-integrationthan core, including pre-releases, but pre-release pyhive only ships in component betas.Why
masteris red todayhassfest now checks a custom integration's requirements against every core integration's pins, including core hive's own
pyhive-integration==1.0.9. Because this component replaces core hive, that check always reports an error:==1.0.9(master): "pins a package Home Assistant depends on"==2.0.0b4(release: 2026.10.1b2 (pyhive-integration 2.0.0b4) #214): "is incompatible with pyhive-integration==1.0.9, which Home Assistant depends on"HA doesn't constrain
pyhive-integrationat install time; it isn't inpackage_constraints.txt. So this only affects hassfest, not users.Changes
.github/scripts/hassfest.py: runs the officialghcr.io/home-assistant/hassfestimage, the same onehome-assistant/actions/hassfestruns, and reports onlypyhive-integrationdifferences from core hive's pin as warnings. Every other error still fails, including conflicts with HA's own dependencies or package constraints.ci.ymlandcompat.ymluse it, and the job names are unchanged, so the required checks still match.check_release.py: a stable release that pins a pre-releasepyhive-integrationfails the Release run.ci.yml: fixes "Re-enable scheduled workflows", which has failed on every push becausegh workflow viewdoesn't accept--jsonon the runner. It now usesgh api./releasechecks PyPI for the newest pyhive, pre-releases included, before a beta, and blocks a stable release with a pre-release pin./bump-pyhivegets a working download step, plus the offline sample-data test and the exception-mapping checks./triage-compatand/repo-healthtreat the hassfest warning as expected.Verification
I ran the wrapper locally against the real hassfest image:
==1.0.9==2.0.0b4aiohttp==3.0.0requirementcheck_release.py: a stable release with a stable pin passes, a beta with a beta pin passes, and a stable release with a beta pin fails.gh api repos/.../actions/workflows/compat.yml --jq .statereturnsactive.script/test: 80 passed.script/lint --check: clean.Worth raising upstream: hassfest could exempt a custom integration from conflicts with the pins of the core integration it replaces. Then this wrapper could go.
Related issues
Unblocks #214, whose Hassfest check fails on the same rule.
Checklist
script/testpassesscript/lint --checkpasses (afterscript/lint, which also regenerates translations)versioninmanifest.json(not a release)🤖 Generated with Claude Code