Python's pip
и easy_install
следуют некоторым правилам для сортировки пакетов по номерам выпуска. Каковы правила для нумерации выпусков бета-версии/выпуска/исправления, чтобы эти инструменты знали, что является самым новым?Что такое стандартный порядок сортировки для номеров выпуска/версии Python?
ответ
Это больной момент для многих людей. setuptools
и easy_install
имеют некоторые довольно странные правила, пытаясь поиграть со всеми. Вы можете прочитать полные правила в parse_version
методы setuptools
«s, но вот резюме:
номер версии разбиты точками в кортеж, что многие сегменты. 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.
Предполагается, что строки, которые приходят до «окончательного» в алфавитном порядке, являются предварительно выпущенными версиями, поэтому 2.4.5b предшествует, а не после, 2.4.5.
И, наконец, «pre», «preview» и «rc» обрабатываются так, как если бы они были «c». Слово «dev» заменяется на «@», так что оно происходит раньше всего с той же версией. То есть
x.y.z-dev
гарантированно будет проходить до любой другой версииx.y.z
.
Есть целый ряд предложений по организации вещи немного больше, из которых наиболее популярным является, вероятно, PEP 386.
См. documentation или посмотрите на источник: doc string в pkg_resources.py function parse_version().
Используйте 1.0a1 и 1.0b2 до 1.0.
Предстоящий стандарт:
- 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/
Текущие Setuptools: http://peak.telecommunity.com/DevCenter/setuptools#specifying-your-project-s-version
PEP 386 теперь принята и реализуется в упаковке (Python 3 .3 stdlib) и distutils2 (автономная версия для 2.4-3.2). –