发布新版本
本指南适用于维护人员。这些特殊人员对一个或多个 Jekyll 存储库拥有写入权限,并帮助合并其他人的贡献。你可能会发现此处编写的内容很有趣,但它绝对不适合所有人。
在发布之前需要了解的最重要的事情是,不必感到紧张。大多数事情都是可逆的,即使你确实发布了不完整的 gem 版本,我们也可以随时跳过该版本。如果你感到不确定或不知道下一步该做什么,请随时联系其他维护人员。
增加版本
唯一需要手动增加版本的重要位置是 lib/jekyll/version.rb
。调整该位置,其他所有内容都应正常工作。
版本大多为 "major.minor.patch"
格式。有时,我们可能会决定发布预发布版本,其格式为 "major.minor.patch.suffix"
。 suffix
未标准化,可以是 pre.alpha1
、pre.rc2
或 beta3
等任何内容。
要确定正确的版本,首先查阅我们的历史文档 History.markdown
中的 ## HEAD
部分。
- 如果有一个名为
Major Enhancements
的小节- 递增版本字符串的
major
组件,并将minor
和patch
组件都重置为0
。 - 如果适用,添加
suffix
。 - 例如,
"3.9.1" => "4.0.0"
或"3.9.1 => "4.0.0.alpha1"
。 - 跳到发布过程的下一步。
- 递增版本字符串的
- 如果有一个名为
Minor Enhancements
的小节- 仅递增
minor
组件,并将补丁组件重置为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 会在发布工作流发布新标签时处理此问题。
然后,如果工作流已成功完成,您就完成了! 尽情庆祝吧!
如果您有权访问 @jekyllrb Twitter 帐户,您应该从那里发布发布帖子。如果没有,请让另一位维护者执行此操作或授予您访问权限。
构建文档
我们将文档打包为 Gem 以供离线使用。
这是使用 jekyll-docs 存储库完成的,并且在那里提供了更详细的说明。
对于非核心 gem
如果您不是 jekyll/jekyll
的维护者,那么在很多情况下,该过程会简单得多。通常,该过程仍然如下所示
- 手动增加 gem 版本,通常在
lib/<plugin_name>/version.rb
中 - 调整历史文件
- 最好使用消息
"Release :gem: v[CURRENT_VERSION]"
提交对默认分支的更改 - 推送到远程仓库
- 欢呼
如果您不确定,请务必询问您项目的维护者!