Add quality scale for season integration#169845
Add quality scale for season integration#169845RogueKatoz wants to merge 2 commits intohome-assistant:devfrom
Conversation
There was a problem hiding this comment.
Hi @RogueKatoz
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!
|
Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍 |
|
Hey there @frenck, 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
Adds an Integration Quality Scale (IQS) definition for the season integration and updates hassfest so the integration is no longer treated as an exception to having a quality_scale.yaml. This helps track rule compliance over time and enables hassfest validation for any rules marked as done.
Changes:
- Remove
seasonfromINTEGRATIONS_WITHOUT_QUALITY_SCALE_FILEin hassfest. - Add
homeassistant/components/season/quality_scale.yamlwith rule statuses/comments for the season integration.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
script/hassfest/quality_scale.py |
Removes season from the list of integrations exempted from requiring a quality_scale.yaml. |
homeassistant/components/season/quality_scale.yaml |
Introduces the season integration’s IQS rule status declarations and exemption comments. |
| docs-high-level-description: | ||
| status: exempt | ||
| comment: | | ||
| Is an internal integration, and does not interact with any external devices or services. |
Proposed change
Analysed the season integration and added a quality_scale.yaml following the proper documentation, then removed season from the hassfest quality scale scale exception list. Reasoning for each check is as follows:
Bronze
action-setup- done: integration has no service actions.appropriate-polling- todo: integration uses local polling but no explicit polling interval given in code. Should probably be reviewed as season only needs infrequent updates.brands- done: all required icons/logos exist in brands.home-assistant.io/season/.common-modules- done: integration is very small, no duplicated logic.config-flow-test-coverage- done: user flow coverage in test/components/season/test_config_flow.py.config-flow- todo: config_flow.py exists but 'season' contains no data_description.data_descriptionto give context to fieldsConfigEntry.dataandConfigEntry.optionscorrectlydependency-transparency- done: clear dependency on ephem 4.1.6 given in manifest.json:11docs-actions- done: no service actions to document.docs-high-level-description- exempt: is an internal integration, and does not interact with any external devices or services.docs-installation-instructions- done: automatic and manual installation instructions provided at https://www.home-assistant.io/integrations/season#configurationdocs-removal-instructions- done: removal instructions provided at https://www.home-assistant.io/integrations/season#removing-the-integrationentity-event-setup- done: no entity events to subscribe to.entity-unique-id- done: season sensor entity id setup at config_flow.py:28has-entity-name- done: season sensor sets _attr_has_entity_name to True at sensor.py:101runtime-data- todo: integration does not currrently store runtime data.test-before-configure- exempt: integration does not connect to device/service.test-before-setup- done: integration does not test for any failure paths during async_setup_entry.unique-config-entry- done: Handling for duplicate configurations at config_flow.py:29Silver
action-exceptions- done: no service actions in integration.config-entry-unloading- done: integration unloading support at init.py:15docs-configuration-parameters- done: Configuration for season definition defined at https://www.home-assistant.io/integrations/season#supported-functionality.docs-installation-parameters- done: season parameter defined at https://www.home-assistant.io/integrations/season#configurationentity-unavailable- done: integration does not need to fetch any data.integration-owner- done: integration owner specified at manifest.json:4.log-when-unavailable- done: integration has no external dependencies it needs to log.parallel-updates- todo: number of parallel updates is not specified.reauthentication-flow- exempt: integration does not authenticate with any external devices or services.test-coverage- done: 100% test coverage across all modules in integration (ran pytest ./tests/components/season/ --cov=homeassistant.components.season --cov-report term-missing).Gold
devices- done: sensor properly creates device and associated info.diagnostics- todo: no diagnositics.py implemented.discovery-update-info- exempt: integration is not discoverable and has no discovery information.discovery- exempt: integration is not discoverable and has no discovery information.docs-data-update- todo: while the data update rate is given in documentation, it is non-specific and not reflected in the code. Kind of depends on the appropriate-polling rule.docs-examples- done: examples of automations are specified at https://www.home-assistant.io/integrations/season#examplesdocs-known-limitations- todo: no examples of limitations provided.docs-supported-devices- exempt: integration does not connect to any external devices or services.docs-supported-functions- done: supported functionalities specified at https://www.home-assistant.io/integrations/season#supported-functionalitydocs-troubleshooting- todo: no troubleshooting information given.docs-use-cases- done: use cases provided at https://www.home-assistant.io/integrations/seasondynamic-devices- done: no dynamic devices are created after initialisation.entity-category- todo: season sensor not given appropriate category.entity-device-class- done: season sensor does not fall under any relevant device class, so ENUM with options attribute is suitable.entity-disabled-by-default- done: integration does not need to handle noisy entities.entity-translations- done: seasons and season types have translated names.exception-translations- done: no exception messages currently implemented.icon-translations- done: season translation key is state-defined depending on the season (sensor.py:104, icons.json).reconfiguration-flow- todo: no reconfiguration flow implemented.repair-issues- done: no user-intevention failure cases to repair.stale-devices- done: no dynamic devices to become stale.Platinum
async-dependency- todo: asyncio not implemented.inject-websession- exempt: integration does not make HTTP requests.strict-typing- todo: integration added to .strict-typing but no py.typed exists for the ephem dependency.Tests Done:
As I'm new to contributing to Home Assistant, any feedback on the PR is appreciated. I'm currently involved with a group of students who are contributing to Home Assistant for an open-source project, and we all look forward to contributing to the platform.
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: