跳至主要内容

使用scm标签管理版本的神器包

项目描述

setuptools_scm

github ci Documentation Status tidelift

关于

setuptools-scmgithg 元数据中提取Python包版本,而不是将其声明为版本参数或在SCM管理的文件中。

此外,setuptools-scm 为setuptools提供了一组由SCM管理的文件列表
(即它自动将所有SCM管理的文件添加到sdist)。
不需要的文件必须通过 MANIFEST.in 排除。

pyproject.toml 的使用

配置 setuptools-scm 的首选方式是在 pyproject.tomltool.setuptools_scm 部分编写设置。

此功能需要 setuptools 61 或更高版本。首先,确保在项目构建步骤中通过将其指定为构建要求之一来包含 setuptools-scm

[build-system]
requires = ["setuptools>=64", "setuptools_scm>=8"]
build-backend = "setuptools.build_meta"

这将足以要求支持 PEP 518 的项目,如 pipbuild 使用 setuptools-scm

要启用版本推断,您需要在 pyproject.tomlproject 部分动态设置版本

[project]
# version = "0.0.1"  # Remove any existing version parameter.
dynamic = ["version"]

[tool.setuptools_scm]

此外,可以通过指定来写入版本文件

[tool.setuptools_scm]
version_file = "pkg/_version.py"

其中 pkg 是您包的名称。

如果您需要确认正在生成哪个版本字符串或调试配置,可以直接在您的开发环境中安装 setuptools-scm 并运行

$ python -m setuptools_scm
# To explore other options, try:
$ python -m setuptools_scm --help

有关进一步配置,请参阅 文档

与企业发行版的交互

一些企业发行版,如 RHEL7,附带较旧的 setuptools 版本。

在这些情况下,通常可以通过使用针对 setuptools_scm<2.0 的 sdist 来构建。由于那些旧 setuptools 版本缺少合理的版本类型,现代 setuptools-scm 无法合理地支持它们。

强烈建议使用现代 Python 和 setuptools 构建轮件,然后安装该轮件,而不是尝试在旧 setuptools 版本上运行。

行为准则

setuptools-scm 项目的代码库、问题跟踪器、聊天室和邮件列表中互动的所有人都应遵守 PSF 行为准则

安全联系

要报告安全漏洞,请使用 Tidelift 安全联系。Tidelift 将协调修复和披露。

项目详情


发布历史 发布通知 | RSS 源

下载文件

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

源代码分发

setuptools_scm-8.1.0.tar.gz (76.5 kB 查看哈希值)

上传时间: 源代码

构建分发

setuptools_scm-8.1.0-py3-none-any.whl (43.7 kB 查看哈希值)

上传时间: Python 3

支持者