一个小型库,用于版本控制您的Python项目。
项目描述
Incremental是一个小型库,用于版本控制您的Python项目。
API文档可以在这里找到。
快速入门
使用setuptools
将Incremental添加到您的pyproject.toml
[build-system]
requires = [
"setuptools",
"incremental>=24.7.2", # ← Add incremental as a build dependency
]
build-backend = "setuptools.build_meta"
[project]
name = "<projectname>"
dynamic = ["version"] # ← Mark the version dynamic
dependencies = [
"incremental>=24.7.2", # ← Depend on incremental at runtime
]
# ...
[tool.incremental] # ← Activate Incremental's setuptools plugin
如果[tool.incremental]表为空,则没关系,但它必须存在。
删除任何 [项目] 版本 = 条目和任何 [tool.setuptools.dynamic] 版本 = 条目。
接下来,初始化项目。
使用Hatchling
如果您使用 Hatchling 打包项目,通过修改您的 pyproject.toml 来激活 Incremental 的 Hatchling 插件。
[build-system]
requires = [
"hatchling",
"incremental>=24.7.2", # ← Add incremental as a build dependency
]
build-backend = "hatchling.build"
[project]
name = "<projectname>"
dynamic = ["version"] # ← Mark the version dynamic
dependencies = [
"incremental>=24.7.2", # ← Depend on incremental at runtime
]
# ...
[tool.hatch.version]
source = "incremental" # ← Activate Incremental's Hatchling plugin
Incremental 可以在可选的 [tool.incremental] 表中像往常一样进行配置。
hatch version 命令将报告 Incremental 管理的版本。使用 python -m incremental.update 命令来更改版本(不支持使用 hatch version 设置版本)。
接下来,初始化项目。
使用setup.py
Incremental 可以在 setup.py 中使用,而不是 pyproject.toml。将此添加到您的 setup() 调用中,删除任何其他版本参数
setup(
use_incremental=True,
setup_requires=['incremental'],
install_requires=['incremental'], # along with any other install dependencies
...
}
然后 初始化项目。
初始化项目
使用 pip install incremental[scripts] 在您的本地环境中安装 Incremental。然后运行 python -m incremental.update <项目名称> --create。它将在您的包中创建一个名为 _version.py 的文件,如下所示
from incremental import Version
__version__ = Version("<projectname>", 24, 1, 0)
__all__ = ["__version__"]
然后,为了让项目用户找到您的版本,在您的根包的 __init__.py 中添加
from ._version import __version__
随后安装的项目将使用 Incremental 进行版本管理。
Incremental版本
incremental.Version 是一个表示给定项目版本的类。它由以下元素组成(在实例化时给出)
package(必需),表示此 Version 的包名称。
major、minor、micro(全部必需),表示项目 Version 的 X.Y.Z。
release_candidate(可选),设置为 0 或更高以标记此 Version 为发布候选版本(有时也称为“预发布版本”)。
post(可选),设置为 0 或更高以标记此 Version 为后续版本。
dev(可选),设置为 0 或更高以标记此 Version 为开发版本。
您可以使用 .public() 方法提取一个与 PEP-440 兼容的版本字符串,该方法返回包含完整版本的字符串。这是您应提供给用户或公开使用的版本。输出示例可能为 "13.2.0"、"17.1.2dev1" 或 "18.8.0rc2"。
使用 repr() 调用一个 Version 将给出其 Python 源代码表示,而调用 str() 将产生类似 '[Incremental, version 16.10.1]' 的字符串。
更新
Incremental 包含一个工具,可以自动化更新使用 Incremental 的项目的版本,称为 incremental.update。它更新 _version.py 文件,并自动将一些 Incremental 版本的用法从不确定版本更新到当前版本。它需要来自 PyPI 的 click。
python -m incremental.update <项目名称> 将对该包执行更新。之后的命令将确定下一个版本是什么。
--newversion=<version>,将项目版本设置为完全指定的版本(如 1.2.3 或 17.1.0dev1)。
--rc,如果当前版本不是发布候选版本,则将项目版本设置为 <year-2000>.<month>.0rc1,或者如果它是,则将发布候选版本号增加 1。
--dev,如果项目不是开发版本,则将项目开发版本号设置为0,如果是开发版本,则将开发版本号增加1。
--patch,增加发布版本的补丁号。这也会重置候选版本号,同时传递 --rc 来增加补丁号并将其设置为候选版本。
--post,如果项目不是发布版本,则将项目发布后版本号设置为0,如果是发布版本,则增加发布后版本号1。这也会重置候选版本和开发版本号。
如果没有提供参数,将删除候选版本号,使其成为“完整发布”。
增量支持“不确定”版本,作为下一个“完整”版本的替代品。当未知将要显示给最终用户的版本时(例如“引入于”或“弃用于”),可以使用此功能。增量支持以下不确定版本
Version("<projectname>", "NEXT", 0, 0)
<projectname> NEXT
当你运行 python -m incremental.update <projectname> --rc 时,这些将更新为实际版本(假设目标最终版本是17.1.0)
Version("<projectname>", 17, 1, 0, release_candidate=1)
<projectname> 17.1.0rc1
一旦创建最终版本,它将变为
Version("<projectname>", 17, 1, 0)
<projectname> 17.1.0
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
incremental-24.7.2.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | fb4f1d47ee60efe87d4f6f0ebb5f70b9760db2b2574c59c8e8912be4ebd464c9 |
|
MD5 | d946fb1a369c77693b4dab8ac9b13596 |
|
BLAKE2b-256 | 2787156b374ff6578062965afe30cc57627d35234369b3336cf244b240c8d8e6 |
incremental-24.7.2-py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 8cb2c3431530bec48ad70513931a760f446ad6c25e8333ca5d95e24b0ed7b8fe |
|
MD5 | 14a9e17d860d3ad0437e90aa180313a7 |
|
BLAKE2b-256 | 0d38221e5b2ae676a3938c2c1919131410c342b6efc2baffeda395dd66eeca8f |