mirror of https://github.com/fluxcd/flux2.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.8 KiB
2.8 KiB
Flux release procedure
Shared packages release procedure
As a project maintainer, to release a package, tag the main
branch using semver,
and push the signed tag to upstream:
git clone https://github.com/fluxcd/pkg.git
git switch main
git tag -s -m "runtime/v1.0.0" "runtime/v1.0.0"
git push origin "runtime/v1.0.0"
Note that the Git tags must be cryptographically signed with your private key and your public key must be uploaded to GitHub.
Release candidates of a specific package can be cut from the main
branch or from an dev-<pkg-name>
branch:
git switch dev-runtime
git tag -s -m "runtime/v1.1.0-RC.1" "runtime/v1.1.0-RC.1"
git push origin "runtime/v1.1.0-RC.1"
Before cutting a release candidate, make sure the tests are passing on the dev
branch.
Controllers release procedure
As a project maintainer, to release a controller and its API:
- Checkout the
main
branch and pull changes from remote. - Create a new branch from
main
i.e.release-<next semver>
. This will function as your release preparation branch. - Update the
github.com/fluxcd/<NAME>-controller/api
version ingo.mod
- Add an entry to the
CHANGELOG.md
for the new release and change thenewTag
value inconfig/manager/kustomization.yaml
to that of the semver release you are going to make. Commit and push your changes. - Create a PR for your release branch and get it merged into
main
. - Create a
api/<next semver>
tag for the merge commit inmain
and push it to remote. - Create a
<next semver>
tag for the merge commit inmain
and push it to remote. - Confirm CI builds and releases the newly tagged version.
Note that the Git tags must be cryptographically signed with your private key and your public key must be uploaded to GitHub.
Distribution release procedure
As a project maintainer, to release a new Flux version and its CLI:
v2.X.Y-RC.Z
(Branch:release-2.X
)- When the
main
branch is feature-complete forv2.X
, we will cherrypick PRs essential tov2.X
to therelease-2.X
branch. - We will cut the first release candidate by tagging the
release-2.X
asv2.X.0-RC.0
. - If we're not satisfied with
v2.X.0-RC.0
, we'll keep releasing RCs until all issues are solved.
- When the
v2.X.0
(Branch:release-2.X
)- The final release is cut from the
release-2.X
branch and tagged asv2.X.0
.
- The final release is cut from the
v2.X.Y, Y > 0
(Branch:release-2.X
)- Patch releases are released as we cherrypick commits from
main
into therelease-2.X
branch. - Flux controller updates (patch versions of a controller minor release included in
v2.X.0
) PRs are merged directly into therelease-2.X
branch. - A patch release is cut from the
release-2.X
branch and tagged asv2.X.Y
.
- Patch releases are released as we cherrypick commits from