如何使用Mercurial自动更新`__version__`?
可能重复的问题:
如何在PHP页面上显示hg仓库的当前工作副本版本
类似于如何用git重写python的__version__?,有什么好的方法可以在python文件中存储一个自动更新的版本号呢?
我用Mercurial钩子将版本号嵌入应用程序的方法好不好?以及Mercurial关键字计划都表明,使用svn风格的方法自动更新$Revision$
或$Id$
并不是一个好主意,应该由构建系统来完成这个工作。不过这是python,没有构建系统,而且这个程序完全在一个文件中,所以没有打包的需求。
1 个回答
2
无论你用什么编程语言写程序,都可以添加一个构建系统。你可能会说“但是语言X不需要构建系统”,但这个问题就说明了它其实是需要的:它需要处理一些在发布之前必须完成的重复性工作。这些工作包括生成文档、运行测试,以及把结果上传到某个地方。
一个简单的Makefile或者一个shell脚本就足够了:
all: version
version:
hg id > __version__
test: version
@echo -n "running tests... "
@sleep 1
@echo " done."
doc: version
@echo -n "building documentation... "
@sleep 1
@echo "done."
upload: test doc
@echo -n "creating tarball... "
@sleep 1
@echo "done."
@echo -n "publishing on website... "
@sleep 1
@echo "done."
.PHONY: version test upload doc