從舊的穩定分支發布
除了從預設的 master
分支切出版本之外,Jekyll Core 有時可能會切出包含安全程式修補程式和舊版本重大錯誤修正的版本,以進行維護。這些版本會從特別命名的分支切出,遵循 [x].[y]-stable
的模式,其中 [x]
表示 semver 主要版本,[y]
表示 semver 次要版本。例如,分支 3.9-stable
指的是作為 jekyll-3.9.x
系列一部分發布的提交。
協調從 *-stable
分支發布版本很複雜,主要是因為預設分支不可避免地也必須反映該版本。
需求
- 維護人員必須對相關的
*-stable
和master
分支擁有寫入權限。 - 維護者需要使用其本機 CLI 程式來完成任務,而不是透過 GitHub 網頁 UI 派送。
- 維護者已掌握 從
master
發佈 的工作流程。下文中記載的程序是master
工作流程的簡化改編。 - 已撰寫好發佈貼文,且等待透過已核准的 pull request 發佈到
master
。 - 穩定的網路連線。
觸發發佈工作流程
- 請務必已簽出相關的
*-stable
分支,且已更新至 GitHub 上jekyll/jekyll
的對應版本。 - 在
lib/jekyll/version.rb
中調整VERSION
字串。 - 更新歷史文件,如 此處 所述。
(重要:請勿在 stable 分支上執行rake site:generate
)。 - 複製與目前發佈相關的整個歷史區段,並貼到文字編輯器的新的分頁或視窗中。我們會在後續階段使用這個暫時片段。
- 提交對版本檔案和歷史文件的變更,並附上提交訊息
Release :gem: v[CURRENT_VERSION]
。 - 將提交推送到 GitHub 上的 upstream 遠端
jekyll/jekyll
。
發佈發佈貼文
- 請務必已成功完成
Release Gem
工作流程。 - 將發佈貼文 pull request 合併到
master
。
更新預設分支以反映從 stable 分支發佈
- 在本地,檢出
master
並確保它與 GitHub 上jekyll/jekyll
的遠端對應版本保持最新。 - 使用先前建立的暫時分頁/視窗中的程式碼片段更新歷史記錄文件。歷史記錄文件中的各個區段主要以反向時間順序排列,其次是 semver 主要版本範圍。例如,
v3.9.2
的發行區段會列在v3.9.1
的區段上方,但會在 v4.x 的發行區段下方。先前儲存的程式碼片段必須手動插入正確的位置。 - 選擇性地更新
lib/jekyll/version.rb
中的VERSION
字串。(如果現有版本低於最新版本)。 - 現在 執行
rake site:generate
以更新各種元檔案- docs/_config.yml
- docs/_docs/history.md
- docs/latest_version.txt
- 提交對各種元檔案的變更,提交訊息為
Release :gem: v[CURRENT_VERSION]
。 - 將提交推送到上游遠端。
發布 GitHub 發行版本
與從 master
分支切斷的發行版本不同,我們的 JekyllBot 不會自動為從非預設分支建立的標籤建立並發布 GitHub 發行版本。因此,維護人員必須手動建立並發布相關的 GitHub 發行版本。
- 選擇新推出的標籤。
- 標題與所選標籤的名稱相同。
- 先前儲存的發行版本程式碼片段構成內文。
- 從發行版本內文中刪除程式碼片段的標題 (
## x.y.z / YYYY-MM-DD
)。 - 發布。
注意:在更新預設分支之前,GitHub 發行版本可以選擇草稿,然後在將更新提交推送到預設分支後立即發布,以簡化程序。