我们版本控制策略的演变
随着 Manticore 7.4.6 的发布 ,我们很高兴地宣布在软件版本控制方面的重大改进。这一变化标志着我们致力于提供更透明、可预测和开发者友好体验的重要一步。
旧方式:几乎但不完全的语义版本控制
之前,我们的版本控制方法有几个怪癖,造成了混淆:
- 版本号的增加基于对变更重要性的主观评估,而不是遵循一致的模式
- 我们使用奇数/偶数编号来区分开发版本(奇数,例如 1.2.3)和发布版本(偶数,例如 1.2.4)
- 开发构建在发布之间共享相同的版本号,依赖提交哈希和时间戳进行识别
例如,开发版本可能看起来像:
7.0.1-25021913-e4b93ef47
7.0.1-25021915-e2c41b2e5
7.0.1-25021917-b8f605339
7.0.1-25021919-b4b3611db
7.0.1-25022103-101e878ef
这种方法使得以下事情变得困难:
- 跟踪开发构建的进展
- 理解版本之间变更的性质
- 自动化依赖管理
- 清晰地沟通兼容性
新方式:真正的语义版本控制
从 Manticore 7.4.6 开始,我们采用了正式的 语义版本控制 (SemVer)。这种标准化的方法使用三部分版本号(MAJOR.MINOR.PATCH)并有明确的规则:
- MAJOR 版本在我们进行不兼容的 API 更改时增加
- MINOR 版本在我们以向后兼容的方式添加功能时增加
- PATCH 版本在我们进行向后兼容的错误修复时增加
我们新方法的好处
1. 更清晰的沟通
每个版本号现在传达了有关变更性质的有意义信息。当您看到版本提升时,您会立即理解可以期待什么样的变更:
- 主要版本更改?准备好潜在的破坏性更改
- 次要版本更改?期待不会破坏现有代码的新功能
- 修补版本更改?保持兼容性的错误修复
2. 独立的包版本控制
每个包现在都有自己的版本号,独立递增。这意味着:
- 更细粒度地跟踪生态系统中的变更
- 更好的依赖管理在使用 Manticore 组件的项目中
3. 简化的开发跟踪
开发构建现在具有唯一的、递增的版本号,清楚地指示它们在开发时间线中的位置,同时仍然保持提交哈希和时间戳以进行精确跟踪。这提供了更好的可见性,以了解开发版本的进展。
4. 更好的自动化支持
标准化的版本控制使得:
- 在包管理器中更可靠的依赖解析
- 更容易与 CI/CD 管道集成
- 自动化兼容性检查
- 精简的发布流程
5. 与行业标准的一致性
通过采用 SemVer,我们与广泛接受的行业实践保持一致,使 Manticore 对于已经熟悉这种版本控制方案的开发者更具可访问性。
6. 改进的稳定性信号
用户现在可以更明智地做出升级决策:
- 修补更新可以在风险最小的情况下应用
- 次要更新带来向后兼容的新功能
- 主要更新信号需要更仔细的测试和潜在的代码更改
展望未来
这一向语义版本控制的过渡代表了我们致力于提供更友好的开发者体验。我们相信这些变化将使与 Manticore 的工作变得更加可预测和愉快。
对于现有项目,这一变化应该是无缝的,但这确实意味着您将获得关于每次更新包含内容的更好信息,并可以更明智地决定何时升级。
过渡期
虽然我们已经完全实施了从 Manticore 7.4.6 开始的发布版本的语义版本控制,但我们仍在将所有组件迁移到新的版本控制架构的过程中。在此过渡期间,一些开发版本可能仍会遵循之前的架构,使用共享版本号。然而,所有发布版本将始终遵循新的语义版本控制方法。
我们预计在未来几个月内完成所有组件的迁移,届时开发和发布版本将完全遵循语义版本控制原则。
我们对这一改进感到兴奋,并欢迎您的反馈,因为我们继续为所有用户增强 Manticore。
