Skip to content

🌱 Clarify our versioning scheme #3264

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 28, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ The full documentation can be found at [VERSIONING.md](VERSIONING.md), but TL;DR

Users:

- We follow [Semantic Versioning (semver)](https://semver.org)
- Use releases with your dependency management to ensure that you get compatible code
- The main branch contains all the latest code, some of which may break compatibility (so "normal" `go get` is not recommended)
- We stick to a zero major version
- We publish a minor version for each Kubernetes minor release and allow breaking changes between minor versions
- We publish patch versions as needed and we don't allow breaking changes in them

Contributors:

Expand Down
10 changes: 10 additions & 0 deletions VERSIONING.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,16 @@ For the purposes of the aforementioned guidelines, controller-runtime
counts as a "library project", but otherwise follows the guidelines
exactly.

We stick to a major version of zero and create a minor version for
each Kubernetes minor version and we allow breaking changes in our
minor versions. We create patch releases as needed and don't allow
breaking changes in them.

Publishing a non-zero major version is pointless for us, as the k8s.io/*
libraries we heavily depend on do breaking changes but use the same
versioning scheme as described above. Consequently, a project can only
ever depend on one controller-runtime version.

[guidelines]: https://sigs.k8s.io/kubebuilder-release-tools/VERSIONING.md

## Compatibility and Release Support
Expand Down