SuperAPI AI 工具集

changewaves

编程与开发

查看项目

更新于 10-15 21:12

技能介绍

用途:管理 MSBuild 的 Change Wave(变更波次)。Change Wave 是一种 opt-out 开关,把有风险的特性归组,用户通过设置环境变量 MSBUILDDISABLEFEATURESFROMVERSION 为对应波次版本即可关闭这些特性。本技能覆盖完整生命周期:创建波次、按波次条件化代码、测试、文档化与退役。

何时使用:当变更有价值但对现有构建存在明显兼容风险时使用,例如用户可见的行为变化、解析/求值/执行语义变化、需要客户适应期的变更。通常不用于纯 bug 修复、无外部可观察行为的内部重构或性能工作、以及已显式 opt-in 的新功能。不确定时默认安全,评估影响范围与回滚难度,并在 PR 说明中记录决策。

主要步骤:1) 确定正确的波次版本,查看当前 MSBuild 版本,若 src/Framework/ChangeWaves.cs 中已有对应波次则复用,否则新建。2) 用波次条件化功能,C# 与 MSBuild 示例见 ChangeWaves-Dev.md,建议内联检查而非抽象方法。3) 编写测试,除新行为测试外,至少加一个验证 opt-out 后旧行为保留的测试。4) 文档化,在 ChangeWaves.md 的 Current Rotation 部分添加条目,已有标题则加 bullet,否则在顶部新增 ### {Major}.{Minor} 标题,条目格式为带 PR 链接的 bullet。

退役:仅在被明确要求时退役过期波次,波次随新的 .NET 主版本发布而轮换,具体见 ChangeWaves-Dev.md。

检查清单:是否决定需要波次;从 eng/Versions.props 选择正确波次版本;在 ChangeWaves.cs 添加波次字段与 AllWaves 条目;用 AreFeaturesEnabled 包裹功能代码;添加验证 opt-out 禁用功能的测试;在 documentation/wiki/ChangeWaves.md 添加条目。

限制:资料未提供具体代码示例、命令与安装方式,相关细节需查阅 ChangeWaves-Dev.md 与 ChangeWaves.md。