發佈新版本

此指南適用於維護人員。這些特別的人員擁有對一個或多個 Jekyll 儲存庫的寫入權限,並協助合併他人的貢獻。您可能會發現這裡寫的內容很有趣,但它絕對不適合所有人。

在發佈版本之前最重要的注意事項是,沒有必要感到緊張。大多數事情都是可還原的,即使您確實發佈了不完整的寶石版本,我們也可以隨時跳過該版本。如果您感到不確定或不知道下一步該怎麼做,請隨時聯絡其他維護人員。

升級版本

您需要手動升級版本的唯一重要位置是 lib/jekyll/version.rb。調整它,其他所有內容都應該正常運作。

版本大多數會採用 "major.minor.patch" 格式。有時,我們可能會決定發佈預先發佈版本,其格式為 "major.minor.patch.suffix"suffix 沒有標準化,可以是 pre.alpha1pre.rc2 或僅是 beta3 等任何內容。

要確定正確的版本,請先查閱我們的歷史文件 ## HEAD 部分,History.markdown

  • 如果有一個標題為 Major Enhancements 的小節
    • 增加版本字串的 major 組成部分,並將 minorpatch 組成部分都重設為 0
    • 如果適用,加上 suffix
    • 例如,"3.9.1" => "4.0.0""3.9.1 => "4.0.0.alpha1"
    • 跳到發布程序的下一步。
  • 如果有一個標題為 Minor Enhancements 的小節
    • 只增加 minor 組成部分,並將 patch 組成部分重設為 0
    • 如果適用,加上 suffix
    • 例如,"4.0.2" => "4.1.0""4.1.0" => "4.2.0.pre"
    • 跳到發布程序的下一步。
  • 對於其他任何情況,只增加 patch 組成部分或 suffix 組成部分(如果適用)。例如,"4.0.2" => "4.0.3""4.1.0.beta3" => "4.1.0.rc"

撰寫發布文章

如果尚未執行此操作,您可以使用附帶的 rake 指令產生新的發布文章架構

bundle exec rake site:releases:new[3.8.0]

其中 3.8.0 應替換為新版本。

接著撰寫文章。務必感謝自上次發布以來做出貢獻的所有合作者和維護人員。您可以使用下列指令產生他們名稱的記錄

git shortlog -sn master...v3.7.2

其中 v3.7.2 是前次發布的 git 標籤。如果您的儲存庫中不存在該標籤,請執行

git pull

完成發布文章後,務必開啟一個拉取請求。

更新歷史文件

History.markdown 的第一個標題替換為版本里程碑。如下所示

- ## HEAD
+ ## 3.7.1 / 2018-01-25

調整版本號碼和日期。下次合併拉取請求時,## HEAD 標題將會重新產生。

根據優先順序遞減,重新排列小節(整體),如下所示

## 4.2.0 / 2020-12-14

### Major Enhancements

...

### Minor Enhancements

...

### Bug Fixes

...

### Security Fixes

...

### Optimization Fixes

...

### Development Fixes

...

### Site Enhancements

...

完成後,執行下列指令更新網站

bundle exec rake site:generate

這會更新網站的變更日誌,並在其他各種位置推送版本。

建議您手動再次檢閱 History.markdown 檔案,以防有任何拼寫錯誤或類似問題。您可以手動修正這些問題,並在產生網站變更日誌後提交您的變更。

推送版本

在執行此步驟之前,請確認已完成下列事項

  • 已準備好發布文章,並理想上已透過先前的拉取請求上線。
  • 已完成所有先前的步驟,特別是 lib/jekyll/version.rb 的變更已分段提交。
  • 優先使用提交訊息 "Release :gem: v[CURRENT_VERSION]" 將已分段變更提交至本機 master 分支。

現在唯一要做的事就是執行這個指令

git push upstream master

其中 upstream 參照 git@github.com:jekyll/jekyll.git

這將觸發 GitHub Actions 工作流程,它會自動建置新的 Gem,標記發行提交,將標籤推送到 GitHub,然後最後將新的 Gem 推送到 RubyGems。不用擔心建立 GitHub 發行,@jekyllbot 會在發行工作流程發布新標籤時處理這件事。

然後,如果工作流程已成功完成,你就完成了! :tada: 盡情慶祝吧!

如果你有權存取 @jekyllrb Twitter 帳戶,你應該從那裡發布發行文章。如果沒有,請其他維護人員這樣做或給你權限。

建置文件

我們將文件打包為 :gem: Gem 以供離線使用。

這是透過 jekyll-docs 儲存庫完成的,並在那裡提供更詳細的說明。

對於非核心 Gem

如果你不是 jekyll/jekyll 的維護人員,在許多情況下,程序會簡單得多。通常,程序仍然像這樣

  • 手動增加 Gem 版本,通常在 lib/<plugin_name>/version.rb
  • 調整歷史記錄檔
  • 優先使用訊息 "Release :gem: v[CURRENT_VERSION]" 將變更提交至預設分支
  • 推送到遠端儲存庫
  • 歡呼

如果你不確定,請務必詢問專案的維護人員!