语义版本控制 - 向后兼容性和版本 0.x.y

Semantic Versioning - Backward compatibility and version 0.x.y

这是关于 IBM mainframes 的摘录:

The IBM Z family maintains full backward compatibility. This means that current systems are the direct, lineal descendants of System/360 announced in 1964, and System/370 from the 1970s. Many applications written for these systems can still run unmodified on the newest IBM Z system over five decades later!

我相信,关于向后兼容性的声明会有免责声明,'ifs','buts'。但是,为了争论起见,如果 IBM Z 支持语义版本控制,它会超越 0.y.z 吗?因此,如果发布了主要功能并且完整版本仍然向后兼容,主要整数是否可以递增?

I am sure that, there will be disclaimers, 'ifs', 'buts' around the claim of backward compatibility. But, for argument sake, if IBM Z were to support semantic versioning, would it have made beyond 0.y.z ever?

是的,但他们为什么要那样做?他们自己的宣传声称向后兼容,而 0.y.z 形式明确没有这样的声明。来自 SemVer 2.0.0:

[4](https://semver.org/#spec-item-4) Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.

不完全是 IBM 传达的消息。

...can the major integer be incremented if a major feature is released and the complete release is still backward compatible?

是的。规范中没有任何内容表明您不能出于任何任意原因修改主要版本。规范说如果你做了一个重大的改变,你必须撞它,而不是因为那个原因它只能被撞。


我要补充一点,Z 机器自 60 年代以来就没有出现过。 IBM 声称它与过去生产的其他机器向后兼容。说一个语义版本历史,跨不同的产品,真的没有任何意义。他们真正在说的是,那些早期产品中的每一个都有一个接口(机器语言),今天的 Z 机器能够执行。