Skip to content

Commit c348438

Browse files
docs: Add versioning proposal
1 parent dea6d70 commit c348438

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

docs/versioning.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Proposal: New Versioning Scheme for Node Problem Detector
2+
3+
This document proposes a new versioning scheme for the Node Problem Detector to align more closely with Kubernetes releases.
4+
5+
## Current Versioning Scheme
6+
7+
The current versioning scheme is `vX.Y.Z`, where X, Y, and Z are major, minor, and patch versions respectively. This does not reflect the project's dependency or compatibility with Kubernetes versions.
8+
9+
## Proposed Versioning Scheme: `v0.<k8s_minor>.<patch>`
10+
11+
The proposed new versioning scheme is `v0.<k8s_minor>.<patch>`.
12+
13+
* **v0**: The major version will remain 0, as we are not ready to declare the project as stable.
14+
* **`<k8s_minor>`**: This part of the version will be the minor version of the supported Kubernetes release. For example, for Kubernetes v1.34, this would be `34`.
15+
* **`<patch>`**: This is a patch number for bug fixes and other small changes within the same supported Kubernetes version.
16+
17+
For example, with the release of Kubernetes v1.34, the next version of the Node Problem Detector would be `v0.34.0`.
18+
19+
This scheme is not ambiguous and will work for the foreseeable future. Kubernetes v1.100 is not expected until approximately 2047.
20+
21+
## Reasoning
22+
23+
This new versioning scheme will provide the following benefits:
24+
25+
* **Clarity**: It will be immediately clear which version of Node Problem Detector is compatible with which version of Kubernetes.
26+
* **Consistency**: It aligns the project with the release cycle of Kubernetes, which it is tightly coupled with.
27+
* **Predictability**: Users can better predict when new releases will be available.
28+
* **Easier Maintenance**: By having separate version lines for each Kubernetes minor version (e.g., `v0.34.x`, `v0.35.x`), we can easily backport critical bug fixes and CVEs to older, still-supported release lines without being forced to also backport newer features.
29+
30+
## Implementation
31+
32+
To implement this change, we will:
33+
34+
1. Update `version.txt` to the new version format.
35+
2. Update the release process documentation in `docs/release_process.md`.
36+
3. Update the `hack/tag-release.sh` script to handle the new versioning scheme.

0 commit comments

Comments
 (0)