跳转到主要内容

最小化版本工具

项目描述

Miniver

license: CC0-1.0 PyPI version CI status

类似于 versioneer,但更小

Miniver是一个 最小版本 工具,它服务于与Versioneer相同的目的,但只适用于Git,且跨平台支持仍然是实验性的。

为什么我会使用这个?

如果您在Git仓库内部开发Python包,并希望直接从Git标签获取版本,而不是在各个地方都硬编码版本字符串。

这正是Versioneer解决的问题,但Miniver只有不到200行代码,而Versioneer则有超过2000行。权衡是Miniver只适用于Git和Python 3.5(或更高版本)。

支持Python 2不是一个目标,因为Python 2即将结束其生命周期(2020年),我们希望鼓励人们使用Python 3!也就是说,Christian Marquardt有一个分支也支持Python 2

用法

使用Miniver最简单的方法是在项目根目录中运行以下命令

curl https://raw.githubusercontent.com/jbweston/miniver/master/miniver/app.py | python - install <your_package_directory>

这将从GitHub获取最新文件并为您的项目设置Miniver。

我得到一个 unknown 版本!

当git历史中没有有效标签时,版本被报告为 unknown(加上当前的git哈希值)。您应该创建一个 标注标签,这样Miniver就能报告一个合理的版本。

如果你的项目使用未标记的标签进行版本控制(尽管这不是推荐的方式),那么你需要运行以下命令来修改Miniver的行为

curl https://raw.githubusercontent.com/jbweston/miniver/master/unannotated-tags.patch | patch <your_package_directory>/_version.py

我不想每次都输入这个URL

你可以使用pip install miniver安装miniver,这将为你提供miniver命令。然后,你只需从项目的根目录运行以下命令即可使用Miniver

miniver install <your_package_directory>

我能否在不执行互联网上的随机代码的情况下使用它?

当然可以!从本存储库将miniver/_version.pyminiver/_static_version.py复制到你的包目录中,然后将以下代码段复制到相应的文件中

# Your package's __init__.py
from ._version import __version__
del _version
# Your project's setup.py

from setuptools import setup

# Loads _version.py module without importing the whole package.
def get_version_and_cmdclass(pkg_path):
    import os
    from importlib.util import module_from_spec, spec_from_file_location
    spec = spec_from_file_location(
        'version', os.path.join(pkg_path, '_version.py'),
    )
    module = module_from_spec(spec)
    spec.loader.exec_module(module)
    return module.__version__, module.get_cmdclass(pkg_path)


version, 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许可证下属于公共领域。

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源代码分发

miniver-0.8.0.tar.gz (11.0 kB 查看哈希值)

上传时间: 源代码

构建分发

miniver-0.8.0-py3-none-any.whl (11.2 kB 查看哈希值)

上传时间: Python 3

由以下机构支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面