Skip to content

Commit 66d71dd

Browse files
committed
docs: document our branching / versioning process
We want to be more systematic about our branching / versioning. Document the process we were (trying to) follow. We can also automate some of the toil here.
1 parent a17da32 commit 66d71dd

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Branching and versioning strategy
2+
3+
## Versioning
4+
5+
kubebuilder-declarative-pattern is a library, that works with controller-runtime and kubernetes.
6+
7+
We follow semantic versioning, similar to other tooling in the kubernetes ecosystem.
8+
9+
Because both controller-runtime and client-go introduce changes that require code changes, we follow their versioning.
10+
Specifically we align with the controller-runtime version, which itself aligns with kubernetes versioning.
11+
12+
Thus:
13+
14+
| kdp version | controller-runtime version | client-go version |
15+
|---|---|---|
16+
| v0.20 | v0.20 | v0.32 |
17+
| v0.19 | v0.19 | v0.31 |
18+
| v0.18 | v0.18 | v0.30 |
19+
| ... | ... | ... |
20+
| v0.x | v0.x | v0.x+12 |
21+
22+
23+
TODO: Should we align with client-go version?
24+
25+
## Branches
26+
27+
We maintain a `release-0.x` branch for the kdp major version `0.x`. Patch versions are cherry-picked to the branch and released.
28+
29+
We cut the release branch with the beta release (i.e. we create `release-1.100` when we tag `1.100.0-beta.1`).
30+
31+
Before beta releases, the master branch is for the next minor version. If we tag a version, it would be (for example) `1.101.0-alpha.1` (and then `1.101.0-alpha.2` etc), assuming the most recent release branch was `1.100`
32+
33+
TODO: Should we rename master to main now?
34+
35+
TODO: Do we want to do a bulk catch up, where we create releases aligned with each version we missed?

0 commit comments

Comments
 (0)