СИТУАЦИЯ:
У меня есть библиотека 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) в моем пакете?, то эта версия .ppy генерируется ПОСЛЕ создания тега, поскольку он использует тег в качестве значения. Но в этом случае мне нужно сделать еще одну фиксацию после того, как тег версии сделан, чтобы сделать код согласованным. Который, по очереди, требует нового тега для дальнейшего связывания.
ВОПРОС:
Как разбить этот круг зависимостей (generate-commit-tag-generate-commit-tag -...)?