Hatch插件,用于使用您首选的版本控制系统(如Git)进行版本管理
项目描述
hatch-vcs
CI/CD | |
包 | |
元数据 |
这为Hatch提供了一个插件,它使用您首选的版本控制系统(如Git)来确定项目版本。
目录
全局依赖
确保在您的pyproject.toml
文件中的build-system.requires
字段中定义了hatch-vcs
。
[build-system]
requires = ["hatchling", "hatch-vcs"]
build-backend = "hatchling.build"
版本源
版本源插件的名称是vcs
。
-
pyproject.toml
[tool.hatch.version] source = "vcs"
-
hatch.toml
[version] source = "vcs"
版本源选项
选项 | 类型 | 默认值 | 描述 |
---|---|---|---|
tag-pattern |
str |
见代码 | 用于从VCS标签中提取版本部分的正则表达式。该模式需要包含单个匹配组,或者一个名为version 的组,它捕获实际的版本信息。 |
fallback-version |
str |
如果没有其他版本检测方法成功,将使用的版本。如果没有指定,则未成功的版本检测将引发错误。 | |
raw-options |
dict |
一个表,其中包含setuptools-scm 参数,这些参数将覆盖上述列出的任何选项。参数write_to 和write_to_template 被忽略。 |
版本源环境变量
SETUPTOOLS_SCM_PRETEND_VERSION
:当定义且非空时,用作版本的主要来源,在这种情况下,它将是一个未解析的字符串。
构建钩子
构建钩子插件的名称是vcs
。
-
pyproject.toml
[tool.hatch.build.hooks.vcs] version-file = "_version.py"
-
hatch.toml
[build.hooks.vcs] version-file = "_version.py"
当最新标签是v1.2.3
时构建或安装将生成文件
-
_version.py
# coding: utf-8 # file generated by setuptools_scm # don't change, don't track in version control __version__ = version = '1.2.3' __version_tuple__ = version_tuple = (1, 2, 3)
构建钩子选项
选项 | 类型 | 默认值 | 描述 |
---|---|---|---|
version-file |
str |
REQUIRED | 文件相对于当前版本的相对路径,该文件会更新。 |
template |
str |
用于覆盖version-file 的模板。请参阅代码以获取每个文件扩展名的默认模板。 |
可编辑安装
版本文件仅在安装或构建时更新。因此,如果版本更改且项目未重新构建,则可编辑安装(Hatch的开发模式)中的版本号将不正确。有关保持版本号更新的不支持的解决方案,请参阅hatch-vcs-footgun-example。
元数据钩子
注意:仅支持Git
元数据钩子插件的名称是vcs
,用于将VCS数据(目前是提交哈希)插入除version
之外的元数据字段。
-
pyproject.toml
[tool.hatch.metadata.hooks.vcs]
-
hatch.toml
[metadata.hooks.vcs]
元数据钩子选项
URL
urls
选项等同于project.urls
,除了每个URL都支持以下字段的上下文格式化
commit_hash
- 最新提交哈希
请务必将urls
添加到project.dynamic
-
pyproject.toml
[project] dynamic = [ "urls", ]
示例
-
pyproject.toml
[tool.hatch.metadata.hooks.vcs.urls] Homepage = "https://www.example.com" source_archive = "https://github.com/org/repo/archive/{commit_hash}.zip"
-
hatch.toml
[metadata.hooks.vcs.urls] Homepage = "https://www.example.com" source_archive = "https://github.com/org/repo/archive/{commit_hash}.zip"
迁移技巧
如果您是从setuptools迁移,您可能希望访问版本而不执行完整的构建。
默认情况下,python -m setuptools_scm
将显示版本并执行任何副作用,如写入文件。"hatch"将这些功能分开。
显示版本
hatch version
将在不修改源目录的情况下将版本打印到终端。
$ hatch version
23.0.0.dev17+g462372ba
将版本写入文件
如果定义了version-file
,您可以使用build
命令将其写入源目录,使用--hooks-only
标志修改源树但跳过创建sdists或wheels。
$ hatch build --hooks-only
$ cat package/_version.py
# file generated by setuptools_scm
# don't change, don't track in version control
__version__ = version = '23.0.0.dev17+g462372ba'
__version_tuple__ = version_tuple = (23, 0, 0, 'dev17', 'g462372ba')
许可证
hatch-vcs
是在MIT许可下分发的。
项目详情
下载文件
下载适合您的平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
构建版本
hatch_vcs-0.4.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 093810748fe01db0d451fabcf2c1ac2688caefd232d4ede967090b1c1b07d9f7 |
|
MD5 | d801fe7c3e5955307748f2790bbb3488 |
|
BLAKE2b-256 | f5c954bb4fa27b4e4a014ef3bb17710cdf692b3aa2cbc7953da885f1bf7e06ea |
hatch_vcs-0.4.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b8a2b6bee54cf6f9fc93762db73890017ae59c9081d1038a41f16235ceaf8b2c |
|
MD5 | 82bee9889b95170e550c98f8dd11bc61 |
|
BLAKE2b-256 | 820f6cbd9976160bc334add63bc2e7a58b1433a31b34b7cda6c5de6dd983d9a7 |