Setuptools:从父目录中查找 SVN 修订版
Setuptools: find SVN revision from a parent directory
在我整理的 Python 包中,我使用以下 setup.cfg
文件:
[egg_info]
tag_build = dev
tag_date = 1
tag_svn_revision = 1
然而,当我 运行 python setup.py sdist
时,SVN 修订显示为 -r0
。这可能是因为我 运行 安装脚本没有 .svn
目录;事实上我的树是
main_dir/
.svn/
branches/
trunk/
setup.py
setup.cfg
如何让 setuptools
在父目录中查找 SVN 修订号?我仍然想继续使用我的包版本号码。
我目前的解决方案是合并 this answer 并像这样手动构建版本(减去 shell=True
选项):
# Hat tip:
import subprocess
def svnversion():
p = subprocess.Popen("svnversion", stdout=subprocess.PIPE, stderr=subprocess.PIPE)
(stdout, stderr) = p.communicate()
return stdout
_version = '{}-{}'.format(my_pkg_version, svnversion())
虽然 setup.cfg
文件包含:
[egg_info]
tag_build = dev
tag_date = 1
如果您愿意安装另一个软件包,您可以用不同的方式解决 -r0
问题。自版本 10 起,Setuptools 不支持 SVN 元数据。该功能已移至 setuptools_svn 包。
在我整理的 Python 包中,我使用以下 setup.cfg
文件:
[egg_info]
tag_build = dev
tag_date = 1
tag_svn_revision = 1
然而,当我 运行 python setup.py sdist
时,SVN 修订显示为 -r0
。这可能是因为我 运行 安装脚本没有 .svn
目录;事实上我的树是
main_dir/
.svn/
branches/
trunk/
setup.py
setup.cfg
如何让 setuptools
在父目录中查找 SVN 修订号?我仍然想继续使用我的包版本号码。
我目前的解决方案是合并 this answer 并像这样手动构建版本(减去 shell=True
选项):
# Hat tip:
import subprocess
def svnversion():
p = subprocess.Popen("svnversion", stdout=subprocess.PIPE, stderr=subprocess.PIPE)
(stdout, stderr) = p.communicate()
return stdout
_version = '{}-{}'.format(my_pkg_version, svnversion())
虽然 setup.cfg
文件包含:
[egg_info]
tag_build = dev
tag_date = 1
如果您愿意安装另一个软件包,您可以用不同的方式解决 -r0
问题。自版本 10 起,Setuptools 不支持 SVN 元数据。该功能已移至 setuptools_svn 包。