Совместим ли `versioneer` с упаковкой `PyPI`?

Я использовал versioneer для контроля версий мой пакет, и сейчас я пытаюсь загрузить его в PyPI. Однако я получаю следующую ошибку при запуске

python -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*

Uploading distributions to https://test.pypi.org/legacy/
Uploading xomega-0.0.1+25.g7c6a208.dirty-py3-none-any.whl
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████| 11.5k/11.5k [00:00<00:00, 22.5kB/s]
NOTE: Try --verbose to see response content.
HTTPError: 400 Client Error: '0.0.1+25.g7c6a208.dirty' is an invalid value for Version. Error: Can't use PEP 440 local versions. See https://packaging.python.org/specifications/core-metadata for url: https://test.pypi.org/legacy/

Номер версии, автоматически присвоенный versioneer, не совместим с PyPI или я что-то элементарное здесь упускаю?


person takachanbo    schedule 03.04.2019    source источник


Ответы (2)


Версия 0.0.1+25.g7c6a208.dirty не является допустимым номером версии для PyPI. Это указывает на то, что ваш дистрибутив был сделан в тот момент, когда ваш репозиторий имел 25 коммитов после тега 0.0.1, имел уникальный идентификатор версии g7c6a208 и был «грязным» (в нем есть незафиксированные изменения).

Вам нужно зафиксировать свои изменения и сделать тег 0.0.2, чтобы получить действительный номер версии, прежде чем вы сможете загрузить их в PyPI.

person Dustin Ingram    schedule 03.04.2019
comment
Спасибо за быстрый ответ. - person takachanbo; 03.04.2019
comment
Можно ли как-то загрузить в TestPyPi? Вроде такое же ограничение. Но я хочу пометить свой коммит только после того, как убедился, что полученный пакет можно опубликовать на PyPi. - person DerWeh; 18.01.2020
comment
Нет извини. TestPyPI такой же. - person Dustin Ingram; 19.01.2020

Вы можете использовать стиль pep440-pre для версионера вместо pep440 в setup.cfg. Это должно дать вам что-то вроде 0.0.1.post0.dev25, которое можно использовать при загрузке в pypi.

person renefritze    schedule 17.02.2021