mirror of https://github.com/linkerd/linkerd2.git
Update RELEASE.md with helm versioning rules (#9407)
* Update RELEASE.md with helm versioning rules The idea behind these rules is to keep a linear sequence of versions even when jumping between stable and edge. Does it sound convoluted? LMKWYT!
This commit is contained in:
parent
69a2d9d533
commit
4503aed44e
65
RELEASE.md
65
RELEASE.md
|
|
@ -92,23 +92,66 @@ Each step might result in conflicts that you'll need to address.
|
|||
All the Helm charts (linkerd-crds, linkerd-control-plane, linkerd2-cni,
|
||||
linkerd-multicluster, linkerd-jaeger and linkerd-viz) have a `version` entry
|
||||
with a semver format `major.minor.patch[-edge]` that needs to be updated
|
||||
according to the following rules:
|
||||
according to the rules below.
|
||||
|
||||
- patch bump for minor changes
|
||||
- minor bump for additions/removals
|
||||
- major bump for backwards-incompatible changes, most notably changes that
|
||||
change the structure of `values.yaml`
|
||||
|
||||
Note that edge releases require the `-edge` suffix, which should be removed when
|
||||
releasing stable releases.
|
||||
|
||||
Also note that the `appVersion` entry (for those charts that have it) is handled
|
||||
Note that the `appVersion` entry (for those charts that have it) is handled
|
||||
automatically by CI.
|
||||
|
||||
Finally, keep in mind chart version changes require updating the charts README
|
||||
Also keep in mind chart version changes require updating the charts README
|
||||
files (through `bin/helm-docs`) and golden files (through `go test ./...
|
||||
-update`).
|
||||
|
||||
Example:
|
||||
|
||||
```text
|
||||
Stable release:
|
||||
1.9.0
|
||||
|
||||
Subsequent edges:
|
||||
1.10.0-edge
|
||||
1.10.1-edge
|
||||
|
||||
Stable maintenance release:
|
||||
1.9.1
|
||||
|
||||
Subsequent edges:
|
||||
1.10.2-edge
|
||||
1.10.3-edge
|
||||
|
||||
Stable release:
|
||||
1.11.0
|
||||
|
||||
Subsequent edges:
|
||||
1.12.0-edge
|
||||
1.12.1-edge
|
||||
```
|
||||
|
||||
### Edge releases
|
||||
|
||||
When making the first edge release right after a stable one, bump the minor and
|
||||
reset the patch. This leaves room for eventual maintenance stable release
|
||||
versions.
|
||||
|
||||
MOST COMMON CASE: If making an edge release after another edge release, just
|
||||
bump the minor.
|
||||
|
||||
In any case remember to keep the `-edge` suffix.
|
||||
|
||||
### Stable releases
|
||||
|
||||
When making a new stable release off of `main` (new major `2.x.0` release):
|
||||
|
||||
- reset patch
|
||||
- If there are breaking changes, most notably changes to the structure of
|
||||
`values.yaml`: bump major and reset minor
|
||||
- If the changes are non-breaking: bump minor (with respect to previous edge)
|
||||
- remove the `-edge` suffix
|
||||
|
||||
When making a stable maintenance release off of a `release/stable-2.x` branch
|
||||
(new `2.x.y` release), just bump the minor.
|
||||
|
||||
In any case remember to remove the `-edge` suffix.
|
||||
|
||||
### linkerd-crds
|
||||
|
||||
Almost all the charts are always updated, at least because the docker image
|
||||
|
|
|
|||
Loading…
Reference in New Issue