最小版本控制工具

miniver的Python项目详细描述


迷你版

license: CC0-1.0PyPI versionTravis buildAppveyor build

类似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.pyminiver/_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许可下位于公共域中。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
传递Java处理类类型参数的方式的参数   java安卓中间层admob在logcat中导致大量GC_FOR_ALLOC释放消息   java Vert。x Http请求未将参数分配为配置   java中多线程的输出不正确   如何减少java本地线程的冗余   java不完全分块结果   使用OpenCv时java中的Mat数据类型不受支持错误   Java中的正则表达式不工作,而同一正则表达式在shell中工作   java如何从数组中删除元素?   JDBCJava。sql。SQLException:[Microsoft][ODBC Microsoft Access驱动程序]操作必须使用可更新的查询   java如何以对角线打印字符串变量的字符?   SonarQube 5.2的java自定义插件生成NoClassDefFoundError   macos使用Java应用程序打开浏览器选项卡