We (mostly) follow the common Kubebuilder versioning guidelines, and use the corresponding tooling and PR process described there.
For the purposes of the aforementioned guidelines, Kubebuilder counts as a "CLI project".
Note that we generally do not support older release branches, except in extreme circumstances.
Bear in mind that changes to scaffolding generally constitute breaking changes -- see below for more details.
When releasing, you'll need to:
-
to update references in the build directory to the latest version of the envtest tools before tagging the release.
-
reset the book branch: see below
You may also want to check that the book is generating the marker docs off the latest controller-tools release. That info is stored in docs/book/install-and-build.sh.
The book's main version (https://book.kubebuilder.io) is published off of the book-v3 (a version built off the main branch can be found at https://master.book.kubebuilder.io).
Docs changes that aren't specific to a new feature should be cherry-picked to the aforementioned branch to get them to be published. The cherry-picks will automatically be published to the book once their PR merges.
When you publish a Kubebuilder release, be sure to also submit a PR that merges the main branch into book-v3, so that it describes the latest changes in the new release.
In order to update the envtest tools, you'll need to do an update to the tools-releases branch. Simply submit a PR against that branch that changes all references to the current version to the desired next version. Once the PR is merged, Google Cloud Build will take care of building and publishing the artifacts.