從舊的穩定分支發布

除了從預設的 master 分支切出版本之外,Jekyll Core 有時可能會切出包含安全程式修補程式和舊版本重大錯誤修正的版本,以進行維護。這些版本會從特別命名的分支切出,遵循 [x].[y]-stable 的模式,其中 [x] 表示 semver 主要版本,[y] 表示 semver 次要版本。例如,分支 3.9-stable 指的是作為 jekyll-3.9.x 系列一部分發布的提交。

協調從 *-stable 分支發布版本很複雜,主要是因為預設分支不可避免地也必須反映該版本。

需求

  • 維護人員必須對相關的 *-stablemaster 分支擁有寫入權限
  • 維護者需要使用其本機 CLI 程式來完成任務,而不是透過 GitHub 網頁 UI 派送。
  • 維護者已掌握 master 發佈 的工作流程。下文中記載的程序是 master 工作流程的簡化改編。
  • 已撰寫好發佈貼文,且等待透過已核准的 pull request 發佈到 master
  • 穩定的網路連線。

觸發發佈工作流程

  1. 請務必已簽出相關的 *-stable 分支,且已更新至 GitHub 上 jekyll/jekyll 的對應版本。
  2. lib/jekyll/version.rb 中調整 VERSION 字串。
  3. 更新歷史文件,如 此處 所述。
    重要:請勿在 stable 分支上執行 rake site:generate)。
  4. 複製與目前發佈相關的整個歷史區段,並貼到文字編輯器的新的分頁或視窗中。我們會在後續階段使用這個暫時片段。
  5. 提交對版本檔案和歷史文件的變更,並附上提交訊息 Release :gem: v[CURRENT_VERSION]
  6. 將提交推送到 GitHub 上的 upstream 遠端 jekyll/jekyll

發佈發佈貼文

  1. 請務必已成功完成 Release Gem 工作流程。
  2. 將發佈貼文 pull request 合併到 master

更新預設分支以反映從 stable 分支發佈

  1. 在本地,檢出 master 並確保它與 GitHub 上 jekyll/jekyll 的遠端對應版本保持最新。
  2. 使用先前建立的暫時分頁/視窗中的程式碼片段更新歷史記錄文件。歷史記錄文件中的各個區段主要以反向時間順序排列,其次是 semver 主要版本範圍。例如,v3.9.2 的發行區段會列在 v3.9.1 的區段上方,但會在 v4.x 的發行區段下方。先前儲存的程式碼片段必須手動插入正確的位置。
  3. 選擇性地更新 lib/jekyll/version.rb 中的 VERSION 字串。(如果現有版本低於最新版本)。
  4. 現在 執行 rake site:generate 以更新各種元檔案
    • docs/_config.yml
    • docs/_docs/history.md
    • docs/latest_version.txt
  5. 提交對各種元檔案的變更,提交訊息為 Release :gem: v[CURRENT_VERSION]
  6. 將提交推送到上游遠端。

發布 GitHub 發行版本

與從 master 分支切斷的發行版本不同,我們的 JekyllBot 不會自動為從非預設分支建立的標籤建立並發布 GitHub 發行版本。因此,維護人員必須手動建立並發布相關的 GitHub 發行版本。

  1. 選擇新推出的標籤。
  2. 標題與所選標籤的名稱相同。
  3. 先前儲存的發行版本程式碼片段構成內文。
  4. 從發行版本內文中刪除程式碼片段的標題 (## x.y.z / YYYY-MM-DD)。
  5. 發布。

注意:在更新預設分支之前,GitHub 發行版本可以選擇草稿,然後在將更新提交推送到預設分支後立即發布,以簡化程序。