python高手之路第三版_《Python高手之路(第3版)》——1.3 版本编号-阿里云开发者社区...
本節書摘來自異步社區《Python高手之路(第3版)》一書中的第1章,第1.3節,作者[法]Julien Danjou,王飛龍 譯,更多章節內容可以訪問云棲社區“異步社區”公眾號查看。
1.3 版本編號
可能你已經有所了解,Python生態系統正在對包的元數據進行標準化。其中一項元數據就是版本號。
PEP 440(http://www.python.org/dev/peps/pep-0440/) 針對所有的Python包引入了一種版本格式,并且在理論上所有的應用程序都應該使用這種格式。這樣,其他的應用程序或包就能簡單而可靠地識別它們需要哪一個版本的包。
PEP440中定義版本號應該遵從以下正則表達式的格式:
N[.N]+[{a|b|c|rc}N][.postN][.devN]
它允許類似1.2或1.2.3這樣的格式,但需注意以下幾點。
1.2等于1.2.0,1.3.4等于1.3.4.0,以此類推。
與N[.N]+相匹配的版本被認為是最終版本。
基于日期的版本(如2013.06.22)被認為是無效的。針對PEP440格式版本號設計的一些自動化工具,在檢測到版本號大于或等于1980時就會拋出錯誤。
最終即將發布的組件也可以使用下面這種格式。
N[.N]+aN(如1.2a1)表示一個alpha版本,即此版本不穩定或缺少某些功能。
N[.N]+bN(如2.3.1b2)表示一個beta版本,即此版本功能已經完整,但可能仍有bug。
N[.N]+cN或N[.N]+rcN(如0.4rc1)表示候選版本(常縮寫為RC),通常指除非有重大的bug,否則很可能成為產品的最終發行版本。盡管rc和c兩個后綴含義相同,但如果二者同時使用,rc版本通常表示比c更新一點。
通常用到的還有以下這些后綴。
.postN(如1.4.post2)表示一個后續版本。通常用來解決發行過程中的細小問題(如發行文檔有錯)。如果發行的是bug修復版本,則不應該使用.postN而應該增加小的版本號。
.devN(如2.3.4.dev3)表示一個開發版本。因為難以解析,所以這個后綴并不建議使用。它表示這是一個質量基本合格的發布前的版本,例如,2.3.4.dev3表示2.3.4版本的第三個開發版本,它早于任何的alpha版本、beta版本、候選版本和最終版本。
這一結構可以滿足大部分常見的使用場景。
注意
你可能已經聽說過語義版本(http://semver.org/) ,它對于版本號提出了自己的規則。這一規范和PEP 440部分重合,但二者并不完全兼容。例如,語義版本對于預發布版本使用的格式1.0.0.-alpha+001就與PEP 440不兼容。
如果需要處理更高級的版本號,可以考慮一下PEP 426(http://www.python.org/dev/ peps/pep-0426)中定義的源碼標簽,這一字段可以用來處理任何版本字符串,并生成同PEP要求一致的版本號。
許多分布式版本控制系統(Distributed Version Control System,DVCS)平臺,如Git和Mercurial,都可以使用唯一標識的散列字符串①作為版本號。但遺憾的是,它不能與PEP 440中定義的模式兼容:問題就在于,唯一標識的散列字符串不能排序。不過,是有可能通過源碼標簽這個字段維護一個版本號,并利用它構造一個同PEP 440兼容的版本號的。
提示
pbr(即Python Build Reasonableness,https://pypi.python.org/pypi/pbr) 將在6.2節中討論,它可以基于項目的Git版本自動生成版本號。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的python高手之路第三版_《Python高手之路(第3版)》——1.3 版本编号-阿里云开发者社区...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果 iPhone 14 不小心被打湿怎
- 下一篇: python 接收邮件服务器地址_Pyt