从较旧的稳定分支发布

除了从默认 master 分支中截取的版本之外,Jekyll Core 偶尔还会截取包含安全补丁和针对维护中的较旧版本的关键错误修复的版本。此类版本是从特别命名的分支中截取的,遵循 [x].[y]-stable 的模式,其中 [x] 表示 semver 主要版本,[y] 表示 semver 次要版本。例如,分支 3.9-stable 指的是作为 jekyll-3.9.x 系列的一部分发布的提交。

协调从 *-stable 分支发布版本很复杂,主要是因为默认分支不可避免地也必须反映该版本。

要求

  • 维护者必须对相关的 *-stablemaster 分支都具有写访问权限
  • 维护者需要使用其本地 CLI 程序完成任务,而不是通过 GitHub Web UI 分派。
  • 维护者了解 master 发布 的工作流。下一部分中记录的过程是 master 工作流的简要改编。
  • 已起草发布帖子,并且正在等待通过已批准的拉取请求发布到 master
  • 稳定的互联网连接。

触发发布工作流

  1. 确保你已签出相关的 *-stable 分支,并且它与 GitHub 上 jekyll/jekyll 中的对应分支保持最新状态。
  2. 增加 VERSION 字符串在 lib/jekyll/version.rb 中。
  3. 更新历史记录文档,如 此处 所述。
    重要:不要运行 rake site:generate 在稳定分支上)。
  4. 复制与当前版本相关的整个历史记录部分,并粘贴到文本编辑器的新的标签页/窗口中。我们将在未来阶段使用此临时片段。
  5. 使用提交信息 Release :gem: v[CURRENT_VERSION] 提交对版本文件和历史记录文档的更改。
  6. 将提交推送到 GitHub 上游远程 jekyll/jekyll

发布版本帖子

  1. 确保 Release Gem 工作流已成功完成。
  2. 将发布帖子合并请求合并到 master 中。

更新默认分支以反映稳定分支的版本

  1. 在本地签出 master 并确保它与 GitHub 上 jekyll/jekyll 中的远程对应版本保持最新。
  2. 使用之前创建的临时标签页/窗口中的片段更新历史记录文档。历史记录文档中的各个部分主要按时间倒序列出,其次是 semver 主要版本范围。例如,v3.9.2 的版本部分将列在 v3.9.1 的部分上方,但位于 v4.x 的版本部分下方。之前保存的片段必须手动注入到正确的位置。
  3. 如果现有版本低于最新版本)可以选择更新 VERSION 字符串在 lib/jekyll/version.rb 中。
  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 发布可以作为可选的草稿,然后在将更新提交推送到默认分支后立即发布,以简化该过程。