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 文件和 wheel。它将它们发布到 archive.ipython.org,并向 PyPI 注册发布。

这将要求你拥有当前的 wheel、Python 3.4 和 Python 2.7。

7. 更新 IPython 网站#

  • 发布公告(新闻,公告)

  • 更新当前版本和下载链接

  • (如果重大发布) 更新文档页面上的链接

8. 起草一份简短的发布公告#

这应包括 i) 亮点和 ii) 指向文档 新增内容 部分的 HTML 版本的链接。

发布到邮件列表,并从Twitter链接。

9. 在GitHub上更新里程碑#

  • 关闭你刚刚发布的里程碑

  • 如果尚不存在,则为 (x, y+1) 开启新的里程碑

10. 庆祝!#