2009-12-14 3 views
3

Python's pip и easy_install следуют некоторым правилам для сортировки пакетов по номерам выпуска. Каковы правила для нумерации выпусков бета-версии/выпуска/исправления, чтобы эти инструменты знали, что является самым новым?Что такое стандартный порядок сортировки для номеров выпуска/версии Python?

ответ

8

Это больной момент для многих людей. 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.

+1

PEP 386 теперь принята и реализуется в упаковке (Python 3 .3 stdlib) и distutils2 (автономная версия для 2.4-3.2). –

2

См. documentation или посмотрите на источник: doc string в pkg_resources.py function parse_version().