发布 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-devx.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) 打开新的里程碑,如果它还不存在的话

10. 庆祝一下!#