SuperAPI AI 工具集

assessing-breaking-changes

通用与其它

查看项目

更新于 10-16 05:06

技能介绍

用途:评估 MSBuild 变更的向后兼容风险。核心原则是向后兼容为默认要求,任何可能改变现有构建行为的改动都必须有明确理由。

主要能力:提供“爆炸半径”检查清单,逐项判断改动是否改变构建内容或方式、是否新增警告、是否更改属性默认值、是否调整目标执行顺序、是否改变控制台或 binlog 输出格式;并给出何时不需要 ChangeWave 的情形,如无可观察行为变化的内部重构、不改变语义的性能优化、由新属性或开关控制的新可选功能、影响范围有限的明确缺陷修复。

关键规则:新增警告即破坏性变更,因为使用 -WarnAsError 或 <TreatWarningsAsErrors>true</TreatWarningsAsErrors> 的构建会失败,应通过 ChangeWave 门控或改用 Message 重要性输出。输出格式变化也属于行为变更,可能破坏解析 MSBuild 输出的下游工具。移除 CLI 开关、公共 API 或属性名几乎不可行,应先弃用并警告,再经多个发布周期后由 ChangeWave 门控移除。

弃用流程:添加弃用警告(影响广泛时置于 ChangeWave 之后)、在发行说明中记录、至少保留两个主要 .NET 版本,待 ChangeWave 轮换后再移除。

兼容性测试矩阵:多目标项目、混合项目类型解决方案、增量构建、设计时构建、跨平台路径与大小写差异、WarnAsError 构建。

决策框架:用户不可见则直接发布;新可选功能直接发布;低影响缺陷修复直接发布并加回归测试;行为变更或新增警告则置于 ChangeWave 之后并测试退出路径。应在 PR 描述中记录兼容性决策。ChangeWave 实现机制参见 changewaves 技能及相关文档。