Releasing Brigade 2
Releasing Brigade 2
Releasing Brigade 2 is, generally speaking, easy, and mostly automated. Some complications are introduced in the rare event that the API version supported by the server is changing.
This document breaks down the steps for cutting a release of Brigade 2 into:
- Pre-release steps
- Release steps
- Post release steps
Pre-Release
For the common case (API version supported by the server is not changing), only the following files require updates. They should be updated to reflect the version number we intend to assign to the release.
README.mddocs/content/intro/quickstart.mddocs/content/topics/operators/deploy.md
Submit a PR
All pre-release changes should be incorporated into a PR opened by a maintainer and signed off upon by another maintainer.
Release
When the PR containing pre-release changes have been merged and post-merge CI
has completed without error on the v2 branch, it is safe to cut the release
through application of a semver tag.
The safest way to do this is through the GitHub UI since that helps mitigate the possibility of accidentally tagging the wrong commit.
- Go to https://github.com/brigadecore/brigade/releases/new.
- Apply the desired semver tag to the head of the
v2branch. - Use the same value as the title of the release.
- Click Publish release.
Release automation should take everything from there.
To release the SDK for Go, a special tag has to be applied to the same commit as
the semver tag. Without this tag, Go’s dependency management will be unable to
locate this release of the SDK for Go. For lack of a better alternative, this
really needs to be done via the git CLI.
- Make sure your local
v2branch is up to date with respect to the remotegithub.com/brigadecore/brigaderepository. - On the head of the
v2branch, rungit tag sdk/<semver>where<semver>is equal to the semantic version applied to this release, including the leadingv.
Post-Release
Post-release, all examples having a package.json should be updated to use the
newly released @brigadecore/brigadier NPM package. This is not strictly
necessary because the worker component substitutes its own alternative version
of that package at runtime anyway, but these changes are still advised merely
for the sake of keeping examples tidy and up to date.
For every example having a package.json file:
- Update
package.jsonto reference the latest version of the@brigadecore/brigadierpackage (the one we just released). - If the example utilizes
npmas a package manager, runnpm installfrom the example’s.brigade/directory. - If the example utilizes
yarnas a package manager, runyarn installfrom the example’s.brigade/directory.
Submit a PR
All post-release changes should be incorporated into a PR opened by a maintainer and signed off upon by another maintainer.