Python ではpip
、easy_install
いくつかの規則に従って、パッケージをリリース番号で並べ替えます。これらのツールが最新のものを認識できるように、ベータ版、リリース版、バグ修正版のリリースに番号を付ける規則は何ですか?
3 に答える
これは多くの人にとって痛い点です。setuptools
そしてeasy_install
、みんなとうまくやろうとして、かなり奇妙なルールがいくつかあります。setuptools
のメソッドで完全なルールを読むことができますがparse_version
、要約は次のとおりです。
バージョン番号はドットで分割され、その数のセグメントのタプルになります。4.5.6.7 は に等しいタプルに解析され
("4", "5", "6", "7")
ます。ダッシュまたは英数字の間の末尾のゼロは抑制されます。2.4.0 は 2.4 と同じです。2.4.05 は 2.4.5 と同じです。
英数字部分は小文字化されます。2.4.a5 は 2.4.A5 と同じです。
アルファベット順で「final」より前にある文字列はプレリリース バージョンと見なされるため、2.4.5b は 2.4.5 の後ではなく前になります。
最後に、「pre」、「preview」、および「rc」は、「c」であるかのように扱われます。「dev」という単語は「@」に置き換えられるため、同じバージョンの他の何よりも前に表示されます。つまり、
x.y.z-dev
他のどのx.y.z
バージョンよりも前に来ることが保証されています。
物事をもう少し整理するための多くの提案があり、その中で最も人気があるのはおそらくPEP 386です。
1.0 の前に 1.0a1 と 1.0b2 を使用します。
今後の標準:
- http://www.python.org/dev/peps/pep-0386/#the-new-versioning-algorithm
- http://tarekziade.wordpress.com/2009/11/18/distutils-and-distribute-status-part-1/
- http://bitbucket.org/tarek/distutilsversion/
現在のセットアップツール: http://peak.telecommunity.com/DevCenter/setuptools#specifying-your-project-s-version
ドキュメントを参照するか、ソースを参照してください: pkg_resources.py 関数 parse_version() の doc 文字列。