发布指南
目录
发布指南¶
本指南记录了 dask-image
的发布流程。它基于 Kira Evans 创建的 napari
发布指南。
本指南主要面向 dask-image 的核心开发者。他们需要拥有一个对 dask-image
包具有上传权限的 PyPI 账户。他们还需要有权限合并 dask-image
的 conda-forge feedstock 仓库中的拉取请求:https://github.com/conda-forge/dask-image-feedstock。
您还需要以下额外的发布依赖项来完成发布流程
pip install "PyGithub>=1.44.1" "twine>=3.1.1" tqdm
将 PyPI 密码设置为 GitHub secret¶
的 dask/dask-image 仓库必须将 PyPI API token 作为 GitHub secret。
确定新的版本号¶
我们对 dask-image 使用日历版本控制 (CalVer)。这意味着版本号格式为 YYYY.MM.X。其中,YYYY 表示年份,MM 表示月份,X 是一个从零开始的整数计数器(用于区分同一月份进行多次发布的情况)。
setuptools-scm 根据以 v 开头的最新 git 标签确定确切的版本。因此,我们的 git 标签格式将是 vYYYY.MM.X。
例如,git 标签“v2030.01.0”将是 2030 年 1 月进行的首次发布。
生成发布说明¶
发布说明包含合并列表、贡献者和评审者。
在您的计算机上创建一个 GH_TOKEN 环境变量。
在 Linux/Mac 上
export GH_TOKEN=<your-gh-api-token>
在 Windows 上
set GH_TOKEN <your-gh-api-token>
如果您还没有个人 GitHub API token,可以从您的 GitHub 账户的开发者设置中创建一个:https://github.com/settings/tokens
2. 运行 python 脚本生成发布说明,包括自上次标记发布以来的所有更改。
注意:必须安装 PyGithub 包才能运行此脚本(https://github.com/PyGithub/PyGithub)
像这样调用脚本
python docs/release/generate_release_notes.py <last-version-tag> main --version <new-version-number>示例
python docs/release/generate_release_notes.py v2021.05.24 main --version 2021.06.03使用以下命令查看此脚本的帮助
python docs/release/generate_release_notes.py -h
扫描 PR 标题,查找亮点、弃用、API 更改和错误修复,并在说明的相关部分提及这些内容。尝试通过提及受影响的函数,详细阐述更改及其后果来以表达力强的方式呈现信息。如果可能,将语义上相近的 PRs 分组。
将您编辑好的发布说明复制到文件
HISTORY.rst
中。在继续下一步之前,创建一个并合并包含发布说明的 PR。
创建发布候选版本¶
前往 dask-image 发布页面:https://github.com/dask/dask-image/releases
点击“Draft Release”按钮创建一个新的发布候选版本。
标签版本和发布标题的格式都应为
vYYYY.MM.Xrc1
。将本次发布的
HISTORY.rst
中的发布说明复制粘贴到描述文本框中。勾选“Set as a pre-release”(设置为预发布版本)
注意,这里我们使用 rc
表示发布候选版本,以便在正式发布前创建一个可供测试的版本。
创建发布版本将触发一个 GitHub Actions 脚本,该脚本会自动将发布版本上传到 PyPI。
测试发布候选版本¶
发布候选版本可以使用以下命令进行测试
pip install --pre dask-image
建议在虚拟环境中测试发布候选版本,以隔离依赖项。
如果发布的候选版本不是您想要的,请进行更改,并从头开始重复此过程,但在 rc
后增加数字(例如 vYYYY.MM.Xrc1
)。
一旦您对发布的候选版本感到满意,就可以生成正式发布版本了。
生成正式发布版本¶
要生成正式发布版本,现在您将重复上述过程,但这次 - 从版本号中删除 rc
后缀。 - 勾选“Set as the latest release”(设置为最新发布版本)
这将自动将发布版本上传到 PyPI,同时也将自动开始在 conda-forge 上发布新版本的过程。
在 conda-forge 上发布¶
conda-forge 机器人 regro-cf-autotick-bot
通常需要大约一小时左右的时间才能发现 PyPI 上有新版本可用,并在 dask-image
的 conda-forge feedstock 中打开一个拉取请求:https://github.com/conda-forge/dask-image-feedstock
注意:conda-forge 机器人不会为任何发布候选版本打开 PR,只为最终发布版本打开。只会为最终发布打开一个 PR。
作为等待 conda-forge 机器人注意到新版本的替代方案,您可以在 dask-image feedstock 中提交一个新的 issue,并在 issue 标题中注明 @conda-forge-admin, please update version
。这将触发 <https://forge.conda.org.cn/docs/maintainer/infrastructure.html#conda-forge-admin-please-update-version>`_ 机器人检查新版本。
在合并拉取请求之前,您首先应该检查
此拉取请求在 CI 上的所有测试均已通过
是否有任何依赖项发生了更改,并且应该通过将更改提交到
recipe/meta.yaml
来更新到该拉取请求中
一旦一切正常,您可以合并拉取请求,最新版本的 dask-image
将自动在 conda-forge 上可用。我们就完成了!