СИТУАЦИЯ:
У меня есть библиотека python, управляемая git и связанная с distutils / setuptools. И я хочу автоматически генерировать номер версии на основе тегов git, как для setup.py sdist
и подобных команд, так и для самой библиотеки.
Для первой задачи я могу использовать git describe
или подобные решения (см. Как я могу получить версию, определенную в setup.py (setuptools) в моем пакете? ).
И когда, например, я нахожусь в теге '0.1 'и вызываю' setup.py sdist ', я получаю' mylib-0.1.tar.gz '; или mylib-0.1-3-abcd.tar.gz, если я изменил код после добавления тегов. Это нормально.
ПРОБЛЕМА:
Проблема возникает, когда я хочу, чтобы этот номер версии был доступен для самой библиотеки, чтобы она могла отправлять его в HTTP-заголовке User-Agent как 'mylib / 0.1-3- adcd '.
Если я добавлю команду setup.py version
, как в Как я могу получить версию, определенную в setup.py (setuptools) в моем пакете? , то эта версия .py генерируется ПОСЛЕ создания тега, поскольку он использует тег как значение. Но в этом случае мне нужно сделать еще одну фиксацию после создания тега версии, чтобы код был согласован. Что, в свою очередь, требует нового тега для дальнейшего объединения.
ВОПРОС:
Как разорвать этот круг зависимостей (generate-commit-tag-generate-commit-tag -...)?