如何在我的项目和setup.py中添加版本/构建信息?
这里有一些关于如何在 setup.py
文件中获取版本字符串的问题。我的需求有点不同:
- 我需要一个版本号(比如
1.2.3
)和一个构建号(这个可以通过运行$ git describe --tags --always HEAD
得到) - 我希望在我的 Flask 应用中能使用这些版本信息(比如
app.config['VERSION'] = '1.2.3'
和app.config['BUILD'] = '1.2.3-33-g93abc32'
) - 我还需要在
setup.py
文件中能使用这个版本字符串
我并不太在意这些版本或构建字符串是否在版本控制中,虽然把版本信息放在那儿似乎是有意义的。
所以我想问的是,如何从 setup.py
文件中把一些构建信息注入到我的项目里呢?
1 个回答
1
我决定采取以下做法:
setup.py
:
# Stuff
import subprocess
__version__ = '1.2.3'
__build__ = subprocess.check_output('git describe --tags --always HEAD'
.split()).decode().strip()
with open('mypkg/_version.py', 'w') as f:
f.write('''\
# I will destroy any changes you make to this file.
# Sincerely,
# setup.py ;)
__version__ = '{}'
__build__ = '{}'
'''.format(__version__, __build__))
# other stuff
settings.update(
version=__version__,
# more stuff
)
我可能会使用 re
模块来简单地查找和替换 __version__
和 __build__
这两行,但目前来看,这样做已经很好了。