Jupyter 项目发布基本模板#
Jupyter 由许多小项目和一些大项目组成。本文概述了发布小项目的基本流程,该流程也适用于大项目,尽管大项目可能会有一些额外的步骤。
里程碑#
大多数 Jupyter 项目使用 GitHub 里程碑系统来标记发布中的问题和拉取请求。每个发布都应该有一个与之关联的里程碑。准备发布的第一步是确保每个问题和拉取请求都具有正确的里程碑。
查看所有标记有当前里程碑的未解决问题和拉取请求。如果有,需要解决或将其推迟到下一个里程碑。推迟问题是可以的——它们通常被标记为最早可行的里程碑,但在发布时,许多乐观标记的任务尚未完成。总有下次机会!
使用里程碑过滤器“无里程碑的问题”检查已关闭问题和拉取请求。不应该有任何没有里程碑的已关闭问题或拉取请求。如果找到任何问题,请根据需要将其标记为当前里程碑或“无操作”。
当发布没有未解决问题或拉取请求时,就可以发布了。
发布说明#
处理完所有问题和拉取请求后,是时候制作发布说明了。较小的项目通常在 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 或其他名称。