You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Issue #399 discusses about the possibility of allowing YAML configuration. On this issue, we discuss one of the possible ways of implementing YAML Support with minimal cost.
As I understand, YAML Configuration is still required for some integrations. As such, YAML entry points like async_setup_platform will still be supported by core. Hence, the main cost of supporting YAML is the specific cost of each component to add a config flow.
This issue proposes a solution which significantly minimizes and centralizes the cost.
Proposal
The overall proposal is that YAML configuration leverages all the same infrastructure that UI flows leverages. In more detail:
YAML and .storage entities will use the same data structure for all static configuration data.
Dynamic data (e.g. refresh tokens) can be stored in .storage. Config flows may require merging dictionaries.
YAML will add version as a parameter, which will allow to translate set up between versions with the same async_migrate_entry.
UI Config Flow can/will be used to do a first set up of integrations if not all data is known. For advanced users, the final data can be shown by config flow. See example for Hue.
async_setup_platform and async_setup_entry will read the configuration and use the same flow to start the device. (Similar to how cast works today or this PS4 example).
Consequences
First of all, this solves all the problems introduced by the deprecation of YAML on device integrations which is being discussed on this issue.
Second, this improves the issues and cost for contributors to maintain YAML configuration by:
Maintain a single data structure for both .storage and YAML entities.
Leverage and maintain one single device entry flow.
Allow YAML to work across versions even when underlying schema changes.
Reducing or eliminating documentation on how to obtain data for YAML, as UI provides that.
The text was updated successfully, but these errors were encountered:
Hi @balloob, in order to respect the time that has been invested in bringing this proposal, could you kindly elaborate what's wrong with this proposal or why is this "not something that we would consider right now"?
If this is related to ADR-0010, there's an open discussion on #399 on this topic and this is a very needed complement to it, as the HOW matters for the IF.
Additionally, even if it's not something that you would consider right now, where's a good place for discussions? Community does not seem the right place and this is the official channel for architecture decisions.
Thanks for caring about the Open Source community.
Context
Issue #399 discusses about the possibility of allowing YAML configuration. On this issue, we discuss one of the possible ways of implementing YAML Support with minimal cost.
As I understand, YAML Configuration is still required for some integrations. As such, YAML entry points like
async_setup_platform
will still be supported by core. Hence, the main cost of supporting YAML is the specific cost of each component to add a config flow.This issue proposes a solution which significantly minimizes and centralizes the cost.
Proposal
The overall proposal is that YAML configuration leverages all the same infrastructure that UI flows leverages. In more detail:
.storage
entities will use the same data structure for all static configuration data..storage
. Config flows may require merging dictionaries.version
as a parameter, which will allow to translate set up between versions with the same async_migrate_entry.async_setup_platform
andasync_setup_entry
will read the configuration and use the same flow to start the device. (Similar to how cast works today or this PS4 example).Consequences
First of all, this solves all the problems introduced by the deprecation of YAML on device integrations which is being discussed on this issue.
Second, this improves the issues and cost for contributors to maintain YAML configuration by:
.storage
and YAML entities.The text was updated successfully, but these errors were encountered: