Add quality scale (gold) to Blebox - #175368
Conversation
|
Hey there @bbx-a, @swistakm, mind taking a look at this pull request as it has been labeled with an integration ( Code owner commandsCode owners of
|
There was a problem hiding this comment.
Pull request overview
This PR promotes the blebox integration into the Integration Quality Scale program at the gold tier. It adds a quality_scale.yaml describing the status of every rule, sets "quality_scale": "gold" in the manifest, and removes blebox from the two hassfest opt-out lists so the file is now validated.
I verified the claims that hassfest actively validates and the key ones a reviewer can check in code:
reauthentication-flow:ConfigEntryAuthFailedis raised in__init__.py/coordinator.py, andasync_step_reauthexists.reconfiguration-flow/discovery/discovery-update-info:async_step_reconfigure,async_step_zeroconf/async_step_dhcp, and_abort_if_unique_id_configured(updates={CONF_HOST: host})are all present; manifest declaresdhcp+zeroconf.parallel-updates: all 8 platform modules definePARALLEL_UPDATES.diagnostics:diagnostics.pyusesasync_redact_data.strict-typing: todois consistent withbleboxbeing absent from.strict-typing.- All 54 rules are present with valid names/statuses, and both ignore-list entries were removed with no leftover references.
No objective code issues were found. The remaining "done" claims (documentation rules, entity-category, entity-disabled-by-default) are not machine-validated and require maintainer judgment plus a corresponding documentation PR, which is empty in the description.
Changes:
- Add
homeassistant/components/blebox/quality_scale.yamlcovering all bronze/silver/gold rules (plus platinum), withstrict-typingleft astodo. - Set
"quality_scale": "gold"inmanifest.json. - Remove
bleboxfromINTEGRATIONS_WITHOUT_QUALITY_SCALE_FILEandINTEGRATIONS_WITHOUT_SCALEinscript/hassfest/quality_scale.py.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
homeassistant/components/blebox/quality_scale.yaml |
New rule status file grading the integration to gold. |
homeassistant/components/blebox/manifest.json |
Declares the gold quality scale. |
script/hassfest/quality_scale.py |
Removes blebox from both opt-out lists so the file is validated. |
joostlek
left a comment
There was a problem hiding this comment.
I need to double check the code, but these were some things that I have already found in recent reviews. Let's make sure we solve that in separate PRs
|
Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍 |
There was a problem hiding this comment.
It mostly looks good but I found a few things to address.
The biggest blocker here would be the lack of public CI pipeline for the dependency. Check my comment below.
If that cannot be resolved, I suggest that this PR is modified to only add the quality_scale.yaml and set the rules I highlighted as todo. This way we won't have this one hanging around forever and we can bump the individual rules later in follow-up PRs and bump the quality scale as well.
Markus98
left a comment
There was a problem hiding this comment.
Nice! Thanks @bkobus-bbx
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
Suppressed comments (3)
homeassistant/components/blebox/quality_scale.yaml:53
- Persist the discovered port as well as the host before marking this rule done. Zeroconf passes its advertised port into
_async_handle_discovery, but the existing-entry path updates onlyCONF_HOST(config_flow.py:136-138), leaving a configured device on stale network information when its advertised port changes; updateCONF_PORTtoo and cover this case in the discovery tests.
discovery-update-info: done
homeassistant/components/blebox/quality_scale.yaml:76
- Implement a repair for unsupported firmware before claiming this exemption.
UnsupportedBoxVersionalready produces an actionable “upgrade firmware” error during configuration (config_flow.py:103-106), while setup treats it as a generic setup error (__init__.py:60-61), so this is precisely a user-intervention case covered by the repair-issues rule; add translated issue creation/cleanup and tests, then mark the rule done.
repair-issues:
status: exempt
comment: |
This integration has no cases where raising a repair issue is needed.
homeassistant/components/blebox/quality_scale.yaml:55
- Correct the data-update documentation before marking this rule done. Every
BleBoxEntityuses the coordinator that refreshes the whole box every five seconds (coordinator.py:37,45), but the current BleBox docs claim binary sensors, buttons, and covers use the 30-second entity default and omit the separately hourly-polled update entity, so the documented update expectations are inaccurate.
docs-data-update: done
Proposed change
Add Integration Quality Scale file for the blebox integration and mark it as gold level.
The quality_scale.yaml covers all required bronze, silver, and gold rules,
with exempt statuses where applicable (no actions, no conditions/triggers,
fixed single device per config entry).
Type of change
Additional information
Checklist
ruff format homeassistant tests)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest.requirements_all.txt.Updated by running
python3 -m script.gen_requirements_all.To help with the load of incoming pull requests: