跳转到主要内容

一个小型库,用于版本控制您的Python项目。

项目描述

gha pypi coverage

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 的包名称。

  • majorminormicro(全部必需),表示项目 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 (28.2 kB 查看散列)

上传时间

构建分布

incremental-24.7.2-py3-none-any.whl (20.5 kB 查看散列)

上传时间 Python 3

支持者:

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