Skip to content

Commit 8530d61

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 8530d61

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

Diff for: docs/project-management/branching-and-versioning.md

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
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+
If we need to release multiple versions of kdp for a single version of controller-runtime (for example if we want to fix a bug),
23+
we use patch versions for that.
24+
We want to avoid breaking changes, and we will only make breaking changes on minor version bumps (as far as possible).
25+
26+
## Branches
27+
28+
We maintain a `release-0.x` branch for the kdp major version `0.x`. Patch versions are cherry-picked to the branch and released.
29+
30+
We cut the release branch with the beta release (i.e. we create `release-1.100` when we tag `1.100.0-beta.1`).
31+
32+
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`

0 commit comments

Comments
 (0)