发布 Jupyter 项目的基本模板#

Jupyter 由一些小项目和一些大项目组成。这规定了发布较小项目的流程,也适用于较大的项目,尽管它们可能有一些附加步骤。

里程碑#

大多数 Jupyter 项目使用 GitHub 里程碑系统来标记发布中的问题和 Pull Request。每个版本都应与其关联一个里程碑。准备发布的第一步是确保每个问题和 Pull Request 都有正确的里程碑。

  1. 查看标记为当前里程碑的任何打开问题和 Pull Request。如果有任何问题,则需要解决或推迟到下一个里程碑。推迟问题是可以的 - 它们通常标记为最早可行的里程碑,但许多如此乐观标记的任务在发布时并未完成。总有下次!

  2. 使用里程碑筛选器“没有里程碑的问题”检查已关闭问题和 Pull Request。永远不应该有任何没有里程碑的已关闭问题或 Pull Request。如果您发现任何问题,请查看并根据需要标记为当前里程碑或“无操作”。

当没有打开的问题或 Pull Request 时,版本可能已准备就绪。

发行说明#

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

使用这些说明进行 Pull Request。最好抄送 @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 或其他内容。