发布 IPython 的步骤#
注意
这是从旧 IPython wiki 中逐字复制的,目前正在开发中。开发指南的这部分中的许多信息已过时。
此文档包含有关用于发布 IPython 的流程的说明。我们当前的发布流程不是很正式,可以改进。
大多数发布流程都是由我们主存储库的 tools
目录中的 release
脚本自动完成的。此文档只是发布管理者的便捷提醒。
0. 环境变量#
您可以设置一些环境变量来记录以前的发布标记和当前发布里程碑、版本和 git 标记
PREV_RELEASE=rel-1.0.0
MILESTONE=1.1
VERSION=1.1.0
TAG="rel-$VERSION"
BRANCH=master
如果您想复制/粘贴,将在稍后使用这些变量,或者您可以在适当的时候键入适当的命令。脚本不使用这些变量(因此没有 export
)。
1. 完成发行说明#
如果是主要版本
将任何拉取请求说明合并到新内容中
python tools/update_whatsnew.py
更新
docs/source/whatsnew/development.rst
,以确保它涵盖主要要点。将
development.rst
的内容移动到versionX.rst
生成 GitHub 贡献的摘要,可以使用以下命令完成
python tools/github_stats.py --milestone $MILESTONE > stats.rst
可能需要一些手动清理。添加清理后的结果并将其添加到 docs/source/whatsnew/github-stats-X.rst
(创建一个新文件,或将其添加到顶部,具体取决于它是否是主要版本)。您可以使用
git log --format="%aN <%aE>" $PREV_RELEASE... | sort -u -f
查找重复项并更新 .mailmap
。在生成 GitHub 统计信息之前,请验证所有已关闭的问题和拉取请求 具有适当的里程碑。 此搜索 不应返回任何结果。
2. 运行 tools/build_release
脚本#
这将执行实际发布脚本将执行的所有文件检查和构建。这将允许您进行测试安装,检查构建过程是否正常运行,等等。您可能还想对文档进行测试构建。
3. 创建并推送新标记#
编辑 IPython/core/release.py
以获得当前版本。
提交对 release.py 和 jsversion 的更改
git commit -am "release $VERSION"
git push origin $BRANCH
创建并推送标记
git tag -am "release $VERSION" "$TAG"
git push origin --tags
将 release.py 更新回 x.y-dev
或 x.y-maint
,并推送
git commit -am "back to development"
git push origin $BRANCH
4. 获取标记的新克隆以构建版本:#
cd /tmp
git clone --depth 1 https://github.com/ipython/ipython.git -b "$TAG"
5. 运行 release
脚本#
cd tools && ./release
这会制作 tarball、zip 文件和轮子。它将它们发布到 archive.ipython.org 并向 PyPI 注册版本。
这需要您拥有当前的轮子、Python 3.4 和 Python 2.7。
7. 更新 IPython 网站#
发布公告(新闻、公告)
更新当前版本和下载链接
(如果是主要版本)更新文档页面上的链接
8. 起草简短的发布公告#
这应包括 i) 亮点和 ii) 文档的新增功能部分的 html 版本的链接。
发布到邮件列表,并从 Twitter 链接。
9. 在 GitHub 上更新里程碑#
关闭你刚刚发布的里程碑
为 (x, y+1) 打开新的里程碑,如果它还不存在的话