使用scm标签管理版本的神器包
项目描述
setuptools_scm
关于
setuptools-scm 从 git
或 hg
元数据中提取Python包版本,而不是将其声明为版本参数或在SCM管理的文件中。
此外,setuptools-scm 为setuptools提供了一组由SCM管理的文件列表
(即它自动将所有SCM管理的文件添加到sdist)。
不需要的文件必须通过 MANIFEST.in
排除。
pyproject.toml
的使用
配置 setuptools-scm 的首选方式是在 pyproject.toml
的 tool.setuptools_scm
部分编写设置。
此功能需要 setuptools 61 或更高版本。首先,确保在项目构建步骤中通过将其指定为构建要求之一来包含 setuptools-scm。
[build-system]
requires = ["setuptools>=64", "setuptools_scm>=8"]
build-backend = "setuptools.build_meta"
这将足以要求支持 PEP 518 的项目,如 pip 和 build 使用 setuptools-scm。
要启用版本推断,您需要在 pyproject.toml
的 project
部分动态设置版本
[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 将协调修复和披露。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。