釋出 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、zipfile 和 wheels。它將它們釋出到 archive.ipython.org 並向 PyPI 註冊釋出。

這將要求您擁有當前的 wheel、Python 3.4 和 Python 2.7。

7. 更新 IPython 網站#

  • 釋出公告(新聞、公告)

  • 更新當前版本和下載連結

  • (如果是主要版本)更新文件頁面上的連結

8. 起草簡短的釋出公告#

這應包括 i) 亮點和 ii) 文件中“新功能”部分的 HTML 版本連結。

釋出到郵件列表,並從 Twitter 連結。

9. 更新 GitHub 上的里程碑#

  • 關閉您剛剛釋出的里程碑

  • 如果尚不存在,則為 (x, y+1) 開啟新的里程碑

10. 慶祝!#