-
-
Notifications
You must be signed in to change notification settings - Fork 32.3k
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
Conversation
48b6b6c
to
7233e03
Compare
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.
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.
d019d1a
to
0a105f8
Compare
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
comment: Not applicable. Only one device per config entry. Removed together with the config entry. | ||
|
||
# Platinum | ||
async-dependency: done |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No?
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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: |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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: |
There was a problem hiding this comment.
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
Proposed change
Bronze
config-flow
- Integration needs to be able to be set up via the UIdata-description
to give context to fieldsConfigEntry.data
andConfigEntry.options
correctlytest-before-configure
- Test a connection in the config flowunique-config-entry
- Don't allow the same device or service to be able to be set up twiceconfig-flow-test-coverage
- Full test coverage for the config flowruntime-data
- Use ConfigEntry.runtime_data to store runtime datatest-before-setup
- Check during integration initialization if we are able to set it up correctlyappropriate-polling
- If it's a polling integration, set an appropriate polling intervalentity-unique-id
- Entities have a unique IDhas-entity-name
- Entities use has_entity_name = Trueentity-event-setup
- Entities event setupdependency-transparency
- Dependency transparencyaction-setup
- Service actions are registered in async_setupcommon-modules
- Place common patterns in common modulesdocs-high-level-description
- The documentation includes a high-level description of the integration brand, product, or servicedocs-installation-instructions
- The documentation provides step-by-step installation instructions for the integration, including, if needed, prerequisitesdocs-removal-instructions
- The documentation provides removal instructionsdocs-actions
- The documentation describes the provided service actions that can be usedbrands
- Has branding assets available for the integrationSilver
config-entry-unloading
- Support config entry unloadinglog-when-unavailable
- If internet/device/service is unavailable, log once when unavailable and once when back connectedentity-unavailable
- Mark entity unavailable if appropriateaction-exceptions
- Service actions raise exceptions when encountering failuresreauthentication-flow
- Reauthentication flowparallel-updates
- Set Parallel updatestest-coverage
- Above 95% test coverage for all integration modulesintegration-owner
- Has an integration ownerdocs-installation-parameters
- The documentation describes all integration installation parametersdocs-configuration-parameters
- The documentation describes all integration configuration optionsGold
entity-translations
- Entities have translated namesentity-device-class
- Entities use device classes where possibledevices
- The integration creates devicesentity-category
- Entities are assigned an appropriate EntityCategoryentity-disabled-by-default
- Integration disables less popular (or noisy) entitiesdiscovery
- Can be discoveredstale-devices
- Clean up stale devicesdiagnostics
- Implements diagnosticsexception-translations
- Exception messages are translatableicon-translations
- Icon translationsreconfiguration-flow
- Integrations should have a reconfigure flowdynamic-devices
- Devices added after integration setupButton entities for casting skills are created/removed dynamically
discovery-update-info
- Integration uses discovery info to update network informationrepair-issues
- Repair issues and repair flows are used when user intervention is neededdocs-use-cases
- The documentation describes use cases to illustrate how this integration can be useddocs-supported-devices
- The integration documents known supported / unsupported devicesdocs-supported-functions
- The documentation describes the supported functionality, including entities, and platformsdocs-data-update
- The documentation describes how data is updateddocs-known-limitations
- The documentation describes known limitations of the integration (not to be confused with bugs)docs-troubleshooting
- The documentation provides troubleshooting informationdocs-examples
- The documentation provides automation examples the user can use.Platinum
async-dependency
- Dependency is asyncinject-websession
- The integration dependency supports passing in a websessionstrict-typing
- Strict typingType 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: