docs/_docs/maintaining/releasing-off-stable-branches.md
Apart from having releases cut from the default master branch, Jekyll Core may occasionally cut releases containing security patches and
critical bug-fixes for older versions under maintenance. Such releases are cut from specially named branches, following the pattern
[x].[y]-stable where [x] denotes semver-major-version and [y], the semver-minor-version. For example, the branch 3.9-stable refers to
commits released as part of jekyll-3.9.x series.
Co-ordinating a release off a *-stable branch is complicated mainly because the default branch has to inevitably reflect the release as well.
*-stable and master branches.master]({{ 'docs/maintaining/releasing-a-new-version/' | relative_url }}). The
procedure documented in the following section is an abridged adaptation of the workflow for master.master via an approved pull request.Ensure that you've checked out the concerned *-stable branch and is up-to-date with its counterpart at jekyll/jekyll at GitHub.
Bump the VERSION string in lib/jekyll/version.rb.
Update the History document as documented [here]({{ 'docs/maintaining/releasing-a-new-version/#update-the-history-document' | relative_url }}).
(IMPORTANT: Do not run rake site:generate on the stable branch though).
Copy the entire History section pertaining to current release and paste into a new tab / window of your text-editor. We will use this temporary snippet at a future stage.
Commit changes to the version-file and History document with commit message Release :gem: v[CURRENT_VERSION].
Push commit to upstream remote jekyll/jekyll at GitHub.
Release Gem workflow has completed successfully.master.master and ensure it is up-to-date with its remote counterpart at jekyll/jekyll at GitHub.v3.9.2
will be listed above the section for v3.9.1 but under release sections for v4.x.
The snippet stashed earlier has to be injected into the correct location manually.VERSION string in lib/jekyll/version.rb. (If existing version is lesser than latest version).rake site:generate to update various meta files:
Release :gem: v[CURRENT_VERSION].Unlike releases cut off the master branch, our JekyllBot does not automatically create and publish a GitHub Release for tags created from
non-default branches. Therefore, the maintainer has to manually create and publish the concerned GitHub Release.
## x.y.z / YYYY-MM-DD) from the release body.Note: The GitHub Release may optionally be drafted prior to updating the default branch and then published immediately after pushing the update commit to the default branch to streamline the procedure.