组件所需的配置值可能会随时间而变化。由于某些配置字段可由其他组件修改,因此在更改组件的配置架构时请务必小心,以免破坏可能依赖该组件的其他组件。
需要进行软转换时
本指南仅适用于具有 mutability
说明符的配置字段。修改不含 mutability
的字段无需特别注意,因为这些值始终由组件的配置值文件提供。
添加新的可变字段,为现有字段增加可变性
无需特别注意,因为所有配置字段都需要在组件的配置值文件中包含一个基本/默认值,并且该组件外部不会有现有的配置提供程序。
移除可变配置字段,移除可变性说明符
若要从组件的架构中安全地移除可变配置字段,首先需要与配置提供程序合作,确保它们不再为要移除的字段传递任何替换项。
作为组件作者,如果您要从组件中移除具有 mutability
说明符的配置字段,请执行以下操作:
- 确定组件的所有运行时配置提供程序。例如,如果该字段具有
mutability: [ "parent" ]
,则您应标识为该字段提供值的所有父组件。 - 将您弃用并移除配置字段的意图告知上一步中确定的所有利益相关方。
- 配置的运行时提供程序应停止为该配置字段提供值。您可能需要执行一些操作,才能继续支持这些提供商的用例,而无需提供该字段。
- 确定所有运行时提供程序并且不再尝试替换该配置字段的值后,您可以安全地移除该字段或其
mutability
说明符。
重命名可变字段
重命名字段相当于添加新命名的字段并移除现有字段。
作为组件作者,如果您要重命名具有 mutability
说明符的配置字段,请执行以下操作:
- 使用新名称向配置添加一个字段,该值优先于组件实现中现有字段的值。
- 按照上述步骤移除字段,与利益相关方合作,为新命名的字段提供值。
更改可变字段的类型
如需更改可变字段的类型,您需要使用新名称,或者在更改类型之前移除所有替换器。
- 向配置添加一个具有新名称和正确类型的字段,在组件实现中,优先使用该值而非现有字段的值。
- 按照上述步骤移除字段,与利益相关方合作,为新命名的字段和新类型的字段提供值。
- (可选)移除上一个字段后,请按照上述步骤重命名字段,以使用执行上述步骤之前的名称。
更改可变字段的约束条件
增加字段的 max_len
或 max_size
约束条件始终是安全的。
仅当所有外部提供的值都在新范围内时,减小字段的 max_len
或 max_size
约束条件才是安全的。