我们正在开源一个以前专有的 Java 软件系统。我们松散地遵循了 Tom Preston-Werner 的语义版本控制,其中:
- 错误修复意味着补丁更新(例如,1.0.X)
- 对向后兼容的公共 API 的更改意味着较小的更新(例如 1.X.0)
- 对向后不兼容的公共 API 的更改意味着重大更新(例如 X.0.0)
开源系统的任务需要我们重命名包。我们还认为我们应该整合以前存在的大部分模块。
重组任务不会改变公共 API,但会改变 API 用户的依赖关系。
重组/包重命名在哪里适合语义版本控制?在知名的开源项目中如何处理这样的重组?