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.md
docs/content/intro/quickstart.md
docs/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 main
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
main
branch. - 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
main
branch is up to date with respect to the remotegithub.com/brigadecore/brigade
repository. - On the head of the
main
branch, 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.json
to reference the latest version of the@brigadecore/brigadier
package (the one we just released). - If the example utilizes
npm
as a package manager, runnpm install
from the example’s.brigade/
directory. - If the example utilizes
yarn
as a package manager, runyarn install
from 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.