跳转到主要内容

未提供项目描述

项目描述

autocalver

PyPI version GitHub Actions Status Documentation Status

厌倦了“提升版本”?对提交、拉取请求、标签以及大量手动工作以发布已存在于主分支的代码感到厌烦吗?

autocalver 包就是为了自动生成“日历版本”,并嚼口香糖,而且口香糖都已经用完了。

它根据提交日志自动生成calver。版本依赖于提交的时间,而不是构建的时间。版本格式为 <年>.<月>.<日>.<一天开始以来的秒数>。时间总是先转换为UTC。

配置

确保 autocalver 已安装的正确方法是在 pyproject.toml 中要求它。

[build-system]
requires = ["setuptools>=45", "wheel", "autocalver"]

注意,默认情况下,autocalver不会 运行任何版本控制命令。在使用 autocalver 之前,运行一个命令以拉取提交日志的前缀,并将其保存到文件中。例如,使用 git,你可以使用

git log -n 1 --date=iso > git-log-head

将阶段分开的优势之一是,可以使得包构建器本身在一个无法访问版本控制元数据的环境中运行,只有源文件和提交日志的前缀。

该工具会覆盖 setup.cfg 中的版本(如果有的话)。配置是通过 pyproject.toml 完成的。例如,适合管道CI的配置可能如下所示

[tool.autocalver]
use = true
log = "git-log-head"
is_main_var = "BUILD_BRANCH_REF"
is_main_match = ".*/main$"

注意,如果你在 pyproject.toml 中使用 [project] 条目,它必须

  • 没有 version
  • 明确声明 dynamic = ["version"]

构建包

根据给定的环境变量及其值,版本会被生成为开发版、rc版或完整发布版。这允许检查分支、拉取请求或工作流名称的发布系统的环境变量。

在此配置下,将生成以下版本(假设最新提交的时间为2021年10月10日,太平洋时间8:39:44)。

本地构建

$ python -m build -n --wheel 2>& 1| tail -1
Successfully built fake_package-2021.10.10.56384.dev1-py3-none-any.whl

请注意,版本名称中包含dev1

模拟标记构建

$ GITHUB_REF=refs/tags/test-fix-PROJ-121 python -m build -n --wheel 2>& 1| tail -1
Successfully built fake_package-2021.10.10.56384rc1-py3-none-any.whl

此版本名称中包含rc1,表示它是一个预发布版。这允许推送标签以生成包和测试修复。然而,由于标签推送未经审查,因此不会生成发布版。

模拟合并到主分支

$ GITHUB_REF=refs/heads/main python -m build -n --wheel 2>& 1| tail -1
Successfully built fake_package-2021.10.10.56384-py3-none-any.whl

请注意,如果没有use = true,则工具不会替换版本。如果存在use = true,则缺失任何其他变量将在构建期间导致错误,因为不存在的构建比损坏的构建要好。

自动获取最新提交

定义可选字段log_command,如果包构建时间文件不可用,则运行该命令。它将为下次创建文件。请注意,如果文件“过时”,则需要手动删除。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

autocalver-2023.5.4.55367.tar.gz (6.5 kB 查看哈希值)

上传时间

构建分布

autocalver-2023.5.4.55367-py3-none-any.whl (5.6 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面