【发布时间】:2013-05-25 10:29:18
【问题描述】:
我真的很喜欢语义版本控制方案,但它真的只对 API 有意义,因为重点是突破性更改和向后兼容性。对于非 API,例如最终用户软件,许多规则不再有意义。例如,向后兼容的概念本身并没有任何意义。用户体验新功能或不体验,减少错误或不体验等。然而,我将从遵循语义版本控制精神的明确 xyz 版本控制方案中受益,以便用户可以对预期有所了解如果他们熟悉该方案,则从新版本号开始。
我试着画一些东西,比如:
- 如果对不改变用户体验的代码进行内部更改(例如错误修复、重构),则发生故障。可能包括新的“内部”功能。
- 如果添加的功能会改变用户体验,而不是对当前功能的错误修复,请点击 y。
- Bump x...???...对用户体验有根本不同的改变?有什么根本不同?
- 最初的 alpha 发展发生在 0.0.z
- 第一个 beta 测试版本设置为 0.1.0 并保持为 0.y.z
- 第一个用户版本设置为 1.0.0
另一个想法是当功能被删除时产生 x 颠簸,因为某些用户可能会依赖它们,但在某些情况下这似乎没有根据。 (假设您认识所有用户,他们都希望删除一个非常小的功能。从 1.0 升级到 2.0 有点违反直觉。)
这比语义版本控制更主观,因为它更容易客观地识别 API 的向后兼容功能和破坏性功能。是否有任何“标准化”版本控制方案可供我探索以获得更多指导?
【问题讨论】:
-
如您所见,语义版本控制不是关于管理代码的主观特性/营销质量,而是与客观兼容性有关。你为什么需要或想要这个?