发布 Jupyter 项目的基本模板#
Jupyter 由一些小项目和一些大项目组成。这规定了发布较小项目的流程,也适用于较大的项目,尽管它们可能有一些附加步骤。
里程碑#
大多数 Jupyter 项目使用 GitHub 里程碑系统来标记发布中的问题和 Pull Request。每个版本都应与其关联一个里程碑。准备发布的第一步是确保每个问题和 Pull Request 都有正确的里程碑。
查看标记为当前里程碑的任何打开问题和 Pull Request。如果有任何问题,则需要解决或推迟到下一个里程碑。推迟问题是可以的 - 它们通常标记为最早可行的里程碑,但许多如此乐观标记的任务在发布时并未完成。总有下次!
使用里程碑筛选器“没有里程碑的问题”检查已关闭问题和 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 或其他内容。