Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Habitica quality scale record #131429

Merged
merged 13 commits into from
Dec 16, 2024
Merged

Conversation

tr4nt0r
Copy link
Contributor

@tr4nt0r tr4nt0r commented Nov 24, 2024

Proposed change

Bronze

  • config-flow - Integration needs to be able to be set up via the UI
    • Uses data-description to give context to fields
    • Uses ConfigEntry.data and ConfigEntry.options correctly
  • test-before-configure - Test a connection in the config flow
  • unique-config-entry - Don't allow the same device or service to be able to be set up twice
  • config-flow-test-coverage - Full test coverage for the config flow
  • runtime-data - Use ConfigEntry.runtime_data to store runtime data
  • test-before-setup - Check during integration initialization if we are able to set it up correctly
  • appropriate-polling - If it's a polling integration, set an appropriate polling interval
  • entity-unique-id - Entities have a unique ID
  • has-entity-name - Entities use has_entity_name = True
  • entity-event-setup - Entities event setup
    • exempt: No events are registered by the integration.
  • dependency-transparency - Dependency transparency
  • action-setup - Service actions are registered in async_setup
  • common-modules - Place common patterns in common modules
  • docs-high-level-description - The documentation includes a high-level description of the integration brand, product, or service
  • docs-installation-instructions - The documentation provides step-by-step installation instructions for the integration, including, if needed, prerequisites
  • docs-removal-instructions - The documentation provides removal instructions
  • docs-actions - The documentation describes the provided service actions that can be used
  • brands - Has branding assets available for the integration

Silver

  • config-entry-unloading - Support config entry unloading
  • log-when-unavailable - If internet/device/service is unavailable, log once when unavailable and once when back connected
  • entity-unavailable - Mark entity unavailable if appropriate
  • action-exceptions - Service actions raise exceptions when encountering failures
  • reauthentication-flow - Reauthentication flow
  • parallel-updates - Set Parallel updates
  • test-coverage - Above 95% test coverage for all integration modules
  • integration-owner - Has an integration owner
  • docs-installation-parameters - The documentation describes all integration installation parameters
  • docs-configuration-parameters - The documentation describes all integration configuration options
    • exempt: There is no options flow.

Gold

  • entity-translations - Entities have translated names
  • entity-device-class - Entities use device classes where possible
  • devices - The integration creates devices
  • entity-category - Entities are assigned an appropriate EntityCategory
    • Default categories are appropriate for currently available entities.
  • entity-disabled-by-default - Integration disables less popular (or noisy) entities
  • discovery - Can be discovered
    • exempt: Integration represents a service
  • stale-devices - Clean up stale devices
    • Only one device per config entry. Removed together with the config entry.
  • diagnostics - Implements diagnostics
  • exception-translations - Exception messages are translatable
  • icon-translations - Icon translations
  • reconfiguration-flow - Integrations should have a reconfigure flow
  • dynamic-devices - Devices added after integration setup
    • exempt: Integration is a service, no devices that could be added at runtime.
      Button entities for casting skills are created/removed dynamically
  • discovery-update-info - Integration uses discovery info to update network information
    • Integration represents a service
  • repair-issues - Repair issues and repair flows are used when user intervention is needed
  • docs-use-cases - The documentation describes use cases to illustrate how this integration can be used
  • docs-supported-devices - The integration documents known supported / unsupported devices
    • exempt: Integration represents a service, there are no devices.
  • docs-supported-functions - The documentation describes the supported functionality, including entities, and platforms
  • docs-data-update - The documentation describes how data is updated
  • docs-known-limitations - The documentation describes known limitations of the integration (not to be confused with bugs)
  • docs-troubleshooting - The documentation provides troubleshooting information
  • docs-examples - The documentation provides automation examples the user can use.

Platinum

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New integration (thank you!)
  • New feature (which adds functionality to an existing integration)
  • Deprecation (breaking change to happen in the future)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

  • This PR fixes or closes issue: fixes #
  • This PR is related to issue:
  • Link to documentation pull request:

Checklist

  • The code change is tested and works locally.
  • Local tests pass. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • I have followed the perfect PR recommendations
  • The code has been formatted using Ruff (ruff format homeassistant tests)
  • Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.

To help with the load of incoming pull requests:

@home-assistant
Copy link

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍

Learn more about our pull request process.

@home-assistant home-assistant bot marked this pull request as draft November 24, 2024 04:57
@tr4nt0r tr4nt0r marked this pull request as ready for review November 24, 2024 13:33
@home-assistant home-assistant bot requested a review from allenporter November 24, 2024 13:33
Copy link
Contributor

@allenporter allenporter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me on first pass, though will let core member review/merge.

frenck
frenck previously requested changes Nov 26, 2024
homeassistant/components/habitica/quality_scale.yaml Outdated Show resolved Hide resolved
homeassistant/components/habitica/quality_scale.yaml Outdated Show resolved Hide resolved
@home-assistant home-assistant bot marked this pull request as draft November 26, 2024 20:21
@tr4nt0r tr4nt0r changed the title Record status quo on integration quality scale for Habitica Add Habitica quality scale record Nov 28, 2024
@tr4nt0r tr4nt0r marked this pull request as ready for review December 4, 2024 23:59
@home-assistant home-assistant bot requested a review from allenporter December 4, 2024 23:59
@home-assistant home-assistant bot requested a review from frenck December 4, 2024 23:59
comment: Not applicable. Only one device per config entry. Removed together with the config entry.

# Platinum
async-dependency: done
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Habitipy uses aiohttp for async requests. Only the class init is not thread-safe, is that the reason?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh right, I saw that executor job and this was the first comment I made

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's set it to todo for now, since I know you are working on a replacement and creating an executor job on boot isn't really the epitome of integration quality IMO

@@ -0,0 +1,80 @@
rules:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't the button press work in execute in the coordinator?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe? Not quite sure, there was a reason for that but I think it got obsolete meanwhile.

common-modules: done
config-flow-test-coverage: done
config-flow: done
dependency-transparency: done
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The dependency habitipy is not built in the CI

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True. And this means this rule isn't fullfillable until the habitipy dependency has been removed, that will be at least until 2025.6.0

@@ -0,0 +1,80 @@
rules:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note:

    async_add_entities(entities, True)

You can remove the True as the integration already has enough data to get a state

homeassistant/components/habitica/quality_scale.yaml Outdated Show resolved Hide resolved
homeassistant/components/habitica/quality_scale.yaml Outdated Show resolved Hide resolved
homeassistant/components/habitica/quality_scale.yaml Outdated Show resolved Hide resolved
@home-assistant home-assistant bot marked this pull request as draft December 11, 2024 12:48
@tr4nt0r tr4nt0r marked this pull request as ready for review December 11, 2024 18:15
@home-assistant home-assistant bot requested a review from joostlek December 11, 2024 18:15
@joostlek joostlek merged commit 34911a7 into home-assistant:dev Dec 16, 2024
34 checks passed
@tr4nt0r tr4nt0r deleted the habitica_iqs branch December 16, 2024 13:21
@github-actions github-actions bot locked and limited conversation to collaborators Dec 17, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants