为什么NuGET认为1.2.3.4是一个稳定的(发布)版本?
我在下面看到:为什么NuGET认为1.2.3.4是一个稳定的(发布)版本?,nuget,nuget-package,semantic-versioning,Nuget,Nuget Package,Semantic Versioning,我在下面看到: 1.2.3 // release 1.2.3+hash // release 1.2.3-alpha // pre-release 1.2.3-alpha.12 // pre-release 1.2.3.4 // why is this release version and not pre-release version or invalid? 1.2.3.4.5 // invalid nuget version 我不
1.2.3 // release
1.2.3+hash // release
1.2.3-alpha // pre-release
1.2.3-alpha.12 // pre-release
1.2.3.4 // why is this release version and not pre-release version or invalid?
1.2.3.4.5 // invalid nuget version
我不明白为什么1.2.3.4
被认为是下面提到的发行版本:
System.Version
作为之前的软件包版本,您可以从中看到它包含这个4段版本。SemVer.cs
的第一个版本包含:
SemVer的一种混合实现,支持如中所述的语义版本控制,但不严格强制执行
允许旧的4位版本控制方案继续工作
该文件后来被重命名为SemanticVersion
,后来被拆分为numetversion
,扩展了严格意义上的semver2SemanticVersion
,但是
结论
因此,尽管SemVer2对预发布的定义明确要求连字符立即跟随修补程序版本,但向后兼容性阻止NuGet(即使在初次发布1年后)完全转向严格遵守SemVer2
因此,需要对SemVer2进行一些重新解释,选择是使连字符成为预释放信号,不超过3段。9年后,这就是我们所拥有的,nuget.org上有数千个软件包使用了4个段版本,其中一些带有额外的预发布标签。简单的回答是,Microsoft希望采用SemVer,同时保持其4部分版本控制方案的向后兼容性,即使是发布版本也可以有4个部分。