setuptools-scm: текущая версия вместо следующей версии - PullRequest
1 голос
/ 04 июля 2019

Я хочу использовать setuptools-scm для управления моей версией пакета. Мой setup.py:

setuptools.setup(
...
    use_scm_version={'write_to': 'my-package/version.py'},
...
)

В настоящее время у меня есть v0.2 тег в моем репо. Я создал новую ветку и добавил несколько коммитов. Когда я запускаю python setup.py --version для создания my-package/version.py файла, я получаю следующий тег v0.3 вместо текущего v0.2:

$ SETUPTOOLS_SCM_DEBUG=1 python3 setup.py --version
...
cmd 'git describe --dirty --tags --long --match *.*'
out b'v0.2-1-gb13420a\n'
cmd 'git rev-parse --abbrev-ref HEAD'
out b'feature-version-system\n'
tag v0.2
tag 'v0.2' parsed to {'version': 'v0.2', 'prefix': '', 'suffix': ''}
version pre parse v0.2
version <Version('0.2')>
version v0.2 -> 0.2
scm version <ScmVersion 0.2 d=1 n=gb13420a d=False b=feature-version-system>
config {'version_scheme': 'guess-next-dev', 'local_scheme': 'node-and-date'}
ep ('setuptools_scm.version_scheme', 'guess-next-dev')
ep found: guess-next-dev
ep ('setuptools_scm.local_scheme', 'node-and-date')
ep found: node-and-date
version 0.3.dev1
local_version +gb13420a
0.3.dev1+gb13420a  # <- I want to see 0.2.dev1+gb13420a here
$ git tag

v0.1
v0.2

Я думаю, что это неверный путь, потому что мои изменения, на которые я работаю, относятся к тегу текущего выпуска v0.2, но setuptools_scm сказал, что они принадлежат v0.3. Как с этим бороться?

1 Ответ

0 голосов
/ 10 июля 2019

setuptools_scm работает правильно, поскольку создает предварительную версию следующей версии. Согласно разделу PEP440 о предварительных выпусках :

Сегмент предварительной версии состоит из алфавитного идентификатора для фазы предварительной версии вместе с неотрицательным целочисленным значением. Предварительные выпуски для данного выпуска упорядочиваются сначала по фазе (альфа, бета, версия-кандидат), а затем по числовому компоненту в этой фазе.

Они также показывают пример как:

X.YaN   # Alpha release
X.YbN   # Beta release
X.YrcN  # Release Candidate
X.Y     # Final release

Это означает, что 0.3.dev1+gb13420a является предварительной версией 0.3 и идет после 0.2. 0.2.dev1+gb13420a будет означать, что это предварительная версия 0.2, и будет старше 0.2.

...