Jupyter 项目发布基本模板#

Jupyter 由许多小项目和一些大项目组成。本文概述了发布小项目的基本流程,该流程也适用于大项目,尽管大项目可能会有一些额外的步骤。

里程碑#

大多数 Jupyter 项目使用 GitHub 里程碑系统来标记发布中的问题和拉取请求。每个发布都应该有一个与之关联的里程碑。准备发布的第一步是确保每个问题和拉取请求都具有正确的里程碑。

  1. 查看所有标记有当前里程碑的未解决问题和拉取请求。如果有,需要解决或将其推迟到下一个里程碑。推迟问题是可以的——它们通常被标记为最早可行的里程碑,但在发布时,许多乐观标记的任务尚未完成。总有下次机会!

  2. 使用里程碑过滤器“无里程碑的问题”检查已关闭问题和拉取请求。不应该有任何没有里程碑的已关闭问题或拉取请求。如果找到任何问题,请根据需要将其标记为当前里程碑或“无操作”。

当发布没有未解决问题或拉取请求时,就可以发布了。

发布说明#

处理完所有问题和拉取请求后,是时候制作发布说明了。较小的项目通常在 docs 目录中有一个 changelog.rst 文件,您可以在其中为新版本添加一个部分。查看当前里程碑合并的拉取请求(这就是我们使用里程碑的原因),并简要总结此版本中的主要更改。通常应该有一个指向里程碑本身的链接,以获取更多详细信息。

用这些说明创建一个拉取请求。将 @willingc 添加为审查此 PR 的审阅人是一个好主意。确保将此 PR 标记为您的发布里程碑!

制作发布#

现在您的更新日志已合并,我们可以实际构建并发布版本。我们假设 V 已声明为包含发布版本的 shell 变量

export V=5.1.2

首先,确保您有一个干净的 master 分支检出,没有额外文件

git pull
git clean -xfd

首先,更新包的版本,通常在文件 <pkg>/_version.py 或类似文件中。

提交该更改

git commit -am "release $V"

注意

此时,我喜欢运行测试,以确保设置版本没有引起任何混淆。

构建分发

python setup.py sdist --formats=gztar
python setup.py bdist_wheel

标记提交

git tag -am "release $V" $V

最后,使用 twine 将所有内容发布到 GitHub 和 PyPI

twine upload dist/*
git push origin
git push origin --tags

我们发布了一个版本!现在您可以再次编辑 <pkg>/_version.py(或类似文件)将版本升级到下一个“.dev”版本,然后提交

git commit -am "back to dev"
git push origin

注意

推送假设 origin 指向主 jupyter/ipython 仓库。根据您使用 git 的方式,这可能是 upstream 或其他名称。