Jupyter 專案釋出基本模板#

Jupyter 由許多小專案和一些大專案組成。本文概述了釋出小專案的基本流程,該流程也適用於大專案,儘管大專案可能會有一些額外的步驟。

里程碑#

大多數 Jupyter 專案使用 GitHub 里程碑系統來標記釋出中的問題和拉取請求。每個釋出都應該有一個與之關聯的里程碑。準備釋出的第一步是確保每個問題和拉取請求都具有正確的里程碑。

  1. 檢視所有標記有當前里程碑的未解決問題和拉取請求。如果有,需要解決或將其推遲到下一個里程碑。推遲問題是可以的——它們通常被標記為最早可行的里程碑,但在釋出時,許多樂觀標記的任務尚未完成。總有下次機會!

  2. 使用里程碑過濾器“無里程碑的問題”檢查已關閉問題和拉取請求。不應該有任何沒有里程碑的已關閉問題或拉取請求。如果找到任何問題,請根據需要將其標記為當前里程碑或“無操作”。

當釋出沒有未解決問題或拉取請求時,就可以釋出了。

釋出說明#

處理完所有問題和拉取請求後,是時候製作釋出說明了。較小的專案通常在 docs 目錄中有一個 changelog.rst 檔案,您可以在其中為新版本新增一個部分。檢視當前里程碑合併的拉取請求(這就是我們使用里程碑的原因),並簡要總結此版本中的主要更改。通常應該有一個指向里程碑本身的連結,以獲取更多詳細資訊。

用這些說明建立一個拉取請求。將 @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 或其他名稱。