[Proposal] SemVer versioning scheme for the charts.
This was split out as a separate discussion from the overall versioning proposal I have here: https://gitlab.com/charts/gitlab/issues/473
- Needs to support us releasing security releases of past GitLab versions
- Needs to support a release frequency that is possibly more frequent than gitlab patch releases
Last deprecated gitlab
chart version was 0.1.9
, so our new chart needs to use a version after that.
Major Releases
Major releases will be for breaking changes and significant milestones in the chart or GitLab release. We will start at 0, and bump it to 1 for our GA release of the charts.
We will bump it for:
- significant additions/changes (let's say we add pages by default, or we drop nginx completely)
- breaking changes in GitLab or in the charts (requiring manual interaction to your existing install to upgrade)
- Major updates in the GitLab image. (the release of 12.0.0)
Minor Releases:
Minor releases will iterate with GitLab image minor releases, and at our own discretion for changes here in the chart.
We will bump it for:
- all minor version updates of GitLab
- changes to our default values in the charts that may increase resource usage (addition of subcharts/pods, additional services or ingresses added)
- Other functionality changes that we feel warrants more visibility.
Patch Releases
Patch releases for changes that are considered to be very stable updates to the previous release. This includes patch release of the GitLab image.
We will bump it for:
- Patch releases of the GitLab image
- Any collection of changes that doesn't cause us to bump the minor or major versions.
Example release scenarios:
Chart Version | GitLab Version | Release Scenario |
---|---|---|
0.2.0 |
11.0.0 |
GitLab 11 release, and Chart beta |
0.2.1 |
11.0.1 |
GitLab patch release |
0.2.2 |
11.0.1 |
Chart changes released |
0.2.3 |
11.0.2 |
GitLab patch release, with some accompanying chart changes |
0.3.0 |
11.1.0 |
GitLab minor release, along with new chart changes |
0.4.0 |
11.1.0 |
Chart change that we feel makes sense to include as a minor version bump |
0.2.4 |
11.0.3 |
Security release |
0.3.1 |
11.1.1 |
|
0.4.1 |
11.1.1 |
Security release *1 |
... | ... | ... |
1.0.0 |
11.x.0 |
GitLab minor release, along with Chart GA |
2.0.0 |
11.x.x |
Introduced some breaking change to the chart |
3.0.0 |
12.0.0 |
GitLab 12 release |
*1 If we have two chart version that both would need to be upgraded to the same image version for a security release, we will just update the newer one. Otherwise automating release logic will be overly complicated. Users can workaround if needed by manually specifying the image version, or upgrading their chart.
Future iteration
While we considered just using the GitLab version as our own, we are not yet in lockstep with gitlab releases to the point where we would make a breaking change here in the chart, and require gitlab to bump the version number to 12 for instance. For now we will move forward with a chart specific version scheme, until we get to the point where we have the charts stable enough that we are comfortable with sharing the same version, and a chart update being a reasonable reason to bump GitLab's core version.