最小版本控制工具
miniver的Python项目详细描述
迷你版
类似versioneer,但较小
mini ver是一个minimal versioning工具,具有相同的用途 作为Versioneer,除了它只适用于git和 多平台支持仍处于试验阶段。
我为什么要用这个?如果您正在git存储库中开发一个python包,并且 希望直接从git标记获取版本,而不是硬编码 到处都是版本字符串。
这与versioner解决的问题相同,但miniver解决的问题更少 超过200行代码,而versioner超过2000行。权衡 miniver只适用于git和python 3.5(或更高版本),并且 在Debian Linux和MacOSX(Travis自动化)上测试,并在Windows上测试 在Appveyor上。
对Python2的支持并不是一个目标,因为Python2正在快速接近 生命终结(2020),我们希望鼓励人们使用python 3! 也就是说,克里斯蒂安·马夸德有一个fork that also works with Python 2
用法
使用miniver的最简单方法是在项目根目录中运行以下命令:
curl https://raw.githubusercontent.com/jbweston/miniver/master/install-miniver | python - <your_package_directory>
这将从github获取最新的文件,并为您的项目设置miniver。
我得到一个unknown
版本!
当没有有效的标记时,版本报告为unknown
(加上当前的git散列)
在git历史上。你应该创建一个annotated tag
所以Miniver报告了一个合理的版本。
如果您的项目使用unnotated tags进行版本控制(尽管这不是 recommended way) 然后您需要运行以下命令来修改miniver的行为:
curl https://raw.githubusercontent.com/jbweston/miniver/master/unannotated-tags.patch | patch <your_package_directory>/_version.py
我不想每次使用这个
你可以pip install miniver
,这将给你install-miniver
脚本。
然后,您只需从项目根目录运行以下命令即可使用miniver:
install-miniver <your_package_directory>
我能在不从网上执行随机代码的情况下使用它吗?
当然!从中复制miniver/_version.py
和miniver/_static_version.py
将存储库复制到包目录中,然后将以下代码片段复制到
相应的文件:
# Your package's __init__.pyfrom._versionimport__version__del_version
# Your project's setup.py# Loads _version.py module without importing the whole package.defget_version_and_cmdclass(package_name):importosfromimportlib.utilimportmodule_from_spec,spec_from_file_locationspec=spec_from_file_location('version',os.path.join(package_name,'_version.py'))module=module_from_spec(spec)spec.loader.exec_module(module)returnmodule.__version__,module.cmdclassversion,cmdclass=get_version_and_cmdclass('my_package')setup(name='my_package',version=version,cmdclass=cmdclass,)
# Your project's .gitattributes
my_package/_static_version.py export-subst
用包的名称替换上面的'my_package'
(这应该与目录名相同
你复制了miniver
的内容。
就这样!
许可证
Miniver在CC0许可下位于公共域中。