setup.py(setuptools)和源代码中的自动版本号?
情况:
我有一个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标头中以“ mylib / 0.1-3-adcd”发送它。
如果按照我如何在程序包中的setup.py(setuptools)中定义的版本setup.py
version
那样添加命令?,然后会在制作完标记后生成version.py,因为它将标记用作值。但是在这种情况下,我需要在制作了version标签之后再进行一次提交,以使代码一致。反过来,这需要新的标签来进一步捆绑。
问题是:
如何打破这种依赖关系圈(generate-commit-tag-generate-commit-tag -…)?