从 -stable 分支发布新版本

除了默认的 master 分支会发布正式版本之外,Jekyll Core 有时也会为仍在维护的旧版本发布包含安全补丁和关键 Bug 修复的版本。 这些版本会从专门命名的分支发布,命名规则如下:

[x].[y]-stable

其中 [x] 表示 semver 主版本号(major version),[y] 表示 semver 次版本号(minor version)。 例如,3.9-stable 分支对应的是 jekyll-3.9.x 系列版本中的提交内容。

由于默认分支最终也必须同步这些发布内容,因此从 *-stable 分支协调发布流程会更加复杂。

Requirements

Trigger release workflow

  1. 确保你已经 切换到对应的 *-stable 分支,并且已经同步到 GitHub 上 jekyll/jekyll 仓库中的最新状态。
  2. 更新 lib/jekyll/version.rb 中的 VERSION 字符串。
  3. 按照这里的说明更新 History 文档
    重要:不要在 stable 分支上运行 rake site:generate
  4. 将当前版本对应的整个 History 更新内容复制出来,粘贴到文本编辑器的新标签页或新窗口中。 后面的步骤还会用到这段临时内容。
  5. 提交版本文件和 History 文档修改,提交信息使用:Release 💎 v[CURRENT_VERSION]
  6. 将提交推送到 GitHub 上游仓库 jekyll/jekyll

Publish release post

  1. 确认 Release Gem 工作流已经成功执行完成。
  2. 将发布公告对应的 Pull Request 合并到 master 分支。

Update default branch to reflect release off the stable branch

  1. 在本地切换到 master 分支,并确保它已经同步到 GitHub 上 jekyll/jekyll 仓库中的最新状态。
  2. 使用之前临时保存的内容更新 History 文档。 History 文档中的各个版本记录,主要按照时间倒序排列,其次再按 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 💎 v[CURRENT_VERSION]
  6. 将提交推送到上游仓库。

Publish GitHub Release

与从 master 分支发布版本不同,JekyllBot 不会自动为从 非默认分支 创建的标签生成并发布 GitHub Release。 因此,维护者需要 手动创建并发布 对应的 GitHub Release。

  1. 选择刚刚推送的新标签。
  2. 标题与所选标签名称保持一致。
  3. 使用之前保存的发布内容作为正文。
  4. 删除正文中的标题部分(## x.y.z / YYYY-MM-DD)。
  5. 点击发布。

注意:为了简化流程,可以选择先提前创建 草稿版 GitHub Release,等默认分支更新提交推送完成后,再立即正式发布。