blog-post

关于 Manticore 的版本控制

我们版本控制策略的演变

随着 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),并有明确规则:

  1. MAJOR 版本在进行不兼容的 API 更改时增加
  2. MINOR 版本在以向后兼容的方式添加功能时增加
  3. PATCH 版本在进行向后兼容的错误修复时增加

我们新方法的好处

1. 更清晰的沟通

每个版本号现在传达了有关变更性质的有意义信息。当您看到版本提升时,您会立即理解会期望到什么样的变更:

  • 主要版本变化?请准备可能的破坏性变更
  • 次要版本变化?期待不会破坏现有代码的新功能
  • 补丁版本变化?保持兼容性的错误修复

2. 独立的软件包版本控制

每个软件包现在都有自己的版本号,独立递增。这意味着:

  • 更细粒度地跟踪生态系统中的变化
  • 更好的依赖管理在使用 Manticore 组件的项目中

3. 简化的开发跟踪

开发版本现在拥有独特的、递增的版本号,清晰地表明其在开发时间线中的位置,同时仍保留提交哈希和时间戳以便精确跟踪。这提供了更好的可视性,以便了解开发版本的进展。

4. 更好的自动化支持

标准化版本控制启用了:

  • 软件包管理器中更可靠的依赖解析
  • 更容易与 CI/CD 管道集成
  • 自动化兼容性检查
  • 简化的发布流程

5. 与行业标准的对齐

通过采用 SemVer,我们与广泛接受的行业实践保持一致,使 Manticore 对已熟悉此版本控制方案的开发者更易接近。

6. 改进的稳定性信号

用户现在可以更明智地做出升级决策:

  • 补丁更新可以在最低风险下应用
  • 次要更新带来向后兼容的新功能
  • 主要更新则信号需更仔细的测试和潜在的代码更改

展望未来

这一过渡到语义版本控制代表了我们提供更加开发者友好体验的承诺。我们相信这些变化将使与 Manticore 的工作更加可预测和愉快。

对于现有项目,这一变化应是无缝的,但这意味着您将对每个更新包含的内容有更好的了解,并能做出更明智的升级决策。

过渡期

虽然我们已为从 Manticore 7.4.6 开始的发布版本全面实施了语义版本控制,但我们仍在将所有组件迁移到新的版本控制架构的过程中。在此过渡期,某些开发版本可能仍会遵循之前共享版本号的架构。然而,所有发布版本将始终遵循新的语义版本控制方法。

我们预计将在接下来的几个月内完成所有组件的迁移,届时开发版本和发布版本将全面遵循语义版本控制原则。

我们对这一改进感到兴奋,并欢迎您的反馈,因为我们将继续为所有用户提升 Manticore。

安装Manticore Search

安装Manticore Search