mirror of
https://github.com/home-assistant/developers.home-assistant.git
synced 2025-07-08 18:06:29 +00:00
Add quality scale (#92)
* Add quality scale * Rephrase intro * Address comments * Add translations for sensors only * Typo * Few more styling tweaks * Update integration_quality_scale_index.md * Typo
This commit is contained in:
parent
96017841e6
commit
e4ab6fdc82
49
docs/integration_quality_scale_index.md
Normal file
49
docs/integration_quality_scale_index.md
Normal file
@ -0,0 +1,49 @@
|
||||
---
|
||||
title: "Integration Quality Scale"
|
||||
sidebar_label: "Introduction"
|
||||
---
|
||||
|
||||
The Integration Quality Scale scores each integration based on the code quality and user experience. Each level of the quality scale consists of a list of requirements. If an integration matches all requirements, it's considered to have reached that level.
|
||||
|
||||
> Suggestions for changes can be done by creating an issue in the [architecture repo](https://github.com/home-assistant/architecture/issues/).
|
||||
|
||||
# No score
|
||||
|
||||
This integration passes the bare minimum requirements to become part of the index.
|
||||
|
||||
- Satisfy all requirements for [creating components](creating_component_code_review.md) and [creating platforms](creating_platform_code_review.md).
|
||||
- Configurable via `configuration.yaml`
|
||||
|
||||
# Silver 🥈
|
||||
|
||||
This integration is able to cope when things go wrong. It will not print any exceptions nor will it fill the log with retry attempts.
|
||||
|
||||
- Set an appropriate `SCAN_INTERVAL` (if a polling integration)
|
||||
- Raise `PlatformNotReady` if unable to connect during platform setup (if appropriate)
|
||||
- Handles expiration of auth credentials. Refresh if possible or print correct error and fail setup. If based on a config entry, should trigger a new config entry flow to re-authorize.
|
||||
- Handles internet unavailable. Log a warning once when unavailable, log once when reconnected.
|
||||
- Handles device/service unavailable. Log a warning once when unavailable, log once when reconnected.
|
||||
- Set `available` property to `False` if appropriate ([docs](entity_index.md#generic-properties))
|
||||
- Entities have unique ID (if available) ([docs](entity_registry_index.md#unique-id-requirements))
|
||||
|
||||
# Gold 🥇
|
||||
|
||||
This is a solid integration that is able to survive poor conditions and can be configured via the user interface.
|
||||
|
||||
- Configurable via config entries.
|
||||
- Don't allow configuring already configured device/service (example: no 2 entries for same hub)
|
||||
- Tests for the config flow
|
||||
- Discoverable (if available)
|
||||
- Entities have device info (if available) ([docs](device_registry_index.md#defining-devices))
|
||||
- States are translated in the frontend (sensors only, [docs](internationalization_index.md))
|
||||
- Tests for reading data from/controlling the integration ([docs](development_testing.md))
|
||||
- Has a code owner
|
||||
|
||||
# Platinum 🏆
|
||||
|
||||
Best of the best. The integration is completely async, meaning it's super fast. Integrations that reach platinum level will require approval by the code owner for each PR.
|
||||
|
||||
- Set appropriate `PARALLEL_UPDATES` constant
|
||||
- Support config entry unloading (called when config entry is removed)
|
||||
- Integration + dependency are async
|
||||
- Uses aiohttp and allows passing in websession (if making HTTP requests)
|
File diff suppressed because it is too large
Load Diff
@ -68,7 +68,7 @@ class Versions extends React.Component {
|
||||
{versions.map(
|
||||
version =>
|
||||
version !== latestVersion && (
|
||||
<tr>
|
||||
<tr key={version}>
|
||||
<th>{version}</th>
|
||||
<td>
|
||||
<a href={versionUrl(this.props.language, version)}>Documentation</a>
|
||||
|
@ -84,6 +84,9 @@
|
||||
"dev_101_services",
|
||||
"dev_101_config"
|
||||
],
|
||||
"Integration Quality Scale": [
|
||||
"integration_quality_scale_index"
|
||||
],
|
||||
"Creating Platforms": [
|
||||
"creating_platform_index",
|
||||
"creating_platform_code_review",
|
||||
|
Loading…
x
Reference in New Issue
Block a user