[x] Change the Unreleased section to the new version and add date obtained via date +%Y-%m-%d (e.g. ## [3.2.1] - 2019-10-11)
[x] Check if we didn't forget anything important
[x] Remove empty subsections
[x] Update the list of links in the bottom of the file
[x] Add new Unreleased section:
## [Unreleased]
Added
Changed
Deprecated
Removed
Fixed
Security
[x] Once complete, you can add the file to staging
$ git add CHANGELOG.md
[x] If releasing a new minor version, update the SECURITY.md file and stage it for commit.
$ git add SECURITY.md
[x] Bump version
[ ] Run the necessary mage bump commands based on the type of release
$ tools/bin/mage version:bumpMajor # bumps a major version (from 3.4.5 -> 4.0.0).
$ tools/bin/mage version:bumpMinor # bumps a minor version (from 3.4.5 -> 3.5.0).
$ tools/bin/mage version:bumpPatch # bumps a patch version (from 3.4.5 -> 3.4.6).
$ tools/bin/mage version:bumpRC # bumps a release candidate version (from 3.4.5-rc1 -> 3.4.5-rc2).
$ tools/bin/mage version:bumpRelease # bumps a pre-release to a release version (from 3.4.5-rc1 -> 3.4.5).
# These bumps can be combined (i.e. `version:bumpMinor version:bumpRC` bumps 3.4.5 -> 3.5.0-rc1).
[x] Write the version files
$ tools/bin/mage version:files
[x] Commit the version bump
$ tools/bin/mage version:commitBump
[x] Create a pull request targeting v3.${minor}.
Check 1 (for reviewers)
[x] The Changelog is complete i.e., contains only the changes that are in the release (not more/less).
[x] SECURITY.md is updated.
[x] The version files are correctly updated.
Release
[x] Once this PR is approved and merged, checkout the latest v3.${minor} branch locally.
[x] Create a version tag
$ tools/bin/mage version:bumpXXX version:tag
# For RCs, make sure to use the same bumping combination (ex: `version:bumpXXX version:bumpYYY`) as used in the bump step above.
[x] Push the version tag. Once this is done, CI automatically starts building and pushing to package managers. When this is done, you'll find a new release on the releases page.
$ git push origin ${version}
Post Release
[x] Edit the release notes on the Github releases page, which is typically copied from CHANGELOG.md.
[x] For non RC releases, push the Docker latest tag.
[x] The new release contains only the intended commits. This can be checked using https://github.com/TheThingsNetwork/lorawan-stack/compare/v<previous-version>...v<current-version>
Blocking PRs
Overview
Release is necessary to include #3604 for https://github.com/TheThingsIndustries/lorawan-stack-support/issues/242
This is a checklist for releases. This is filled in by both the releaser and the reviewer where necessary.
Preparation
[x] Create a
release/v3.${minor}.${patch}
branch off thev3.${minor}
branch.[x] Update the
CHANGELOG.md
filedate +%Y-%m-%d
(e.g.## [3.2.1] - 2019-10-11
)Added
Changed
Deprecated
Removed
Fixed
Security
[x] Once complete, you can add the file to staging
[x] If releasing a new minor version, update the
SECURITY.md
file and stage it for commit.[x] Bump version
[ ] Run the necessary
mage
bump commands based on the type of release[x] Write the version files
[x] Commit the version bump
[x] Create a pull request targeting
v3.${minor}
.Check 1 (for reviewers)
SECURITY.md
is updated.Release
[x] Once this PR is approved and merged, checkout the latest
v3.${minor}
branch locally.[x] Create a version tag
[x] Push the version tag. Once this is done, CI automatically starts building and pushing to package managers. When this is done, you'll find a new release on the releases page.
Post Release
CHANGELOG.md
.Check 2 (for reviewers)
https://github.com/TheThingsNetwork/lorawan-stack/compare/v<previous-version>...v<current-version>