Note · budding
What HACS and hassfest reject
- Stage
- budding
- Links
- 1 out, 2 in
Custom integrations for Home Assistant are checked by two validators: hassfest, which Home Assistant itself uses, and the HACS action. Both run on every push in my repositories. These are the ways they have failed.
A README in reStructuredText. HACS requires an “information file”, and README.rst does not count. Converting a README from Markdown fails the check with “The repository has no information file”.
Manifest keys out of order. hassfest wants domain and name first and the remaining keys in alphabetical order.
Pinning a library Home Assistant already pins. A requirement of bleak-retry-connector==3.8.1 fails when Home Assistant itself depends on 4.7.1. Libraries that core ships should not be pinned by an integration.
A forked dependency. A requirement can be a direct URL to a tagged archive, which is how one integration carries a fix that upstream has not merged. The development dependencies have to change in the same commit or the tests run against the wrong version.
A package with the library’s name. When the integration’s directory has the same name as the library it wraps, mypy cannot tell them apart without explicit_package_bases.
Two things about presentation. Brand icons can ship inside the integration, in a brand directory, without a pull request to the central brands repository. And images in a README should be linked from a tag in the repository: SVG files attached to a release are served as downloads and do not render.
Releases are cut by pushing a tag. A workflow takes the matching section of the changelog as the release notes, and a tag with a hyphen becomes a pre-release.
Projects
- LG webOS TVs A Home Assistant integration for LG televisions, with picture settings, a pointer remote and calibration controls.
Projects
- Council open data Home Assistant integrations for the open data of Brisbane, Moreton Bay, Logan and Ipswich councils.
- LG webOS TVs A Home Assistant integration for LG televisions, with picture settings, a pointer remote and calibration controls.