我该如何设置版本之间的版本号?

时间:2014-06-18 18:54:12

标签: python git github versioning

我在GitHub上有一个Python项目(ModelicaRes)。我试图关注Semantic Versioning。我发布主项目站点并将它们上传到PyPI。对于发行版,我在主__init__.py文件(__version__=...)中编写版本号。在发布之间,我将更新推送到GitHub(通常在主分支上 - 没什么特别的。)

如何设置这些版本间更新的版本号?提交通常是工作副本。它们尚未经过全面测试,但其他人可能会下载并使用这些副本(通过GitHub)。通常,我还没准备好确定新的版本号。最近我一直在将版本号设置为 None ,并将自动生成的"UNRELEASED COPY" file放在基本文件夹中,并附上提交日期和其他信息。但是,我不相信这是最好的方法。

这可能适用于其他语言,但现在我只对Python感兴趣。

我想我可以尝试使用" alpha"," beta"或" rc"下一版本号后缀,但我再也不知道下一个版本号(可能只是主要或次要或错误修正)。我也想保持这个简单 - 不是很多分支等等。

谢谢!

3 个答案:

答案 0 :(得分:8)

目前关于Python包/发行版版本化的建议总结在Python Packaging User Guide here中:

1.2.0.dev1  # Development release
1.2.0a1     # Alpha Release
1.2.0b1     # Beta Release
1.2.0rc1    # Release Candidate
1.2.0       # Final Release
1.2.0.post1 # Post Release
15.10       # Date based release
23          # Serial release

遵循draft PEP 440的建议。

答案 1 :(得分:0)

Daniel不太对劲:Semantic versioning确实支持预发布(强调我的):

  

(11)优先级是指在订购时如何将版本相互比较。必须通过按顺序将版本分为主要,次要,补丁和预发布标识符来计算优先级(构建元数据不会优先)。当从左到右比较每个标识符时,优先级由第一个差异确定,如下所示:主要版本,次要版本和补丁版本始终以数字方式进行比较。示例:1.0.0< 2.0.0< 2.1.0< 2.1.1。 当major,minor和patch相同时,预发行版本的优先级低于普通版本。示例:1.0.0-alpha< 1.0.0。具有相同主要版本,次要版本和补丁版本的两个预发行版本的优先级必须通过从左到右比较每个点分隔标识符来确定,直到找到差异如下:仅由数字组成的标识符在数字上进行比较并且带有字母或连字符的标识符以ASCII排序顺序进行词法比较。数字标识符的优先级始终低于非数字标识符。如果所有前述标识符相等,则更大的预发布字段集合具有比较小集合更高的优先级。示例:1.0.0-alpha< 1.0.0-alpha.1< 1.0.0-alpha.beta< 1.0.0-beta< 1.0.0-beta.2< 1.0.0-beta.11< 1.0.0-rc.1< 1.0.0。

答案 2 :(得分:-2)

如果您正在推送没有发布的代码,那么您就不会遵循语义版本控制。使用SemVer,每个更新都是一个版本:次要版本 - 2. 1 .0 - 在新的向后兼容功能的情况下,或补丁 - 2.1。 1 - 在修复错误的情况下。