Clarify major/minor/maintainance releases

Signed-off-by: Bogdan Dobrelya <bogdando@mail.ru>
pull/887/head
Bogdan Dobrelya 2017-01-12 11:22:22 +01:00
parent c63cda7c21
commit d332502d3d
1 changed files with 22 additions and 9 deletions

View File

@ -14,14 +14,27 @@ The Kargo Project is released on an as-needed basis. The process is as follows:
branches, and there are no backports. Therefore, there is no need for merge
freezes as well.
* Fixes for major releases (vX.Y.0) are delivered via minor releases (vX.Y.Z)
and assigned to the corresponding open milestone (vX.Y). That milestone
remains open for the release support lifetime, which ends once the milestone
closed. Then only a next major release can be done.
* Fixes for major releases (vX.x.0) and minor releases (vX.Y.x) are delivered
via maintenance releases (vX.Y.Z) and assigned to the corresponding open
milestone (vX.Y). That milestone remains open for the major/minor releases
support lifetime, which ends once the milestone closed. Then only a next major
or minor release can be done.
* Kargo major releases are bound to the given ``kube_version`` and other components'
versions, like etcd or network plugins. Older or newer versions are not
supported and not tested for the given release.
* Kargo major and minor releases are bound to the given ``kube_version`` major/minor
version numbers and other components' arbitrary versions, like etcd or network plugins.
Older or newer versions are not supported and not tested for the given release.
* Minor releases can change components' versions, but not the ``kube_version``.
Greater ``kube_version`` requires a new major release.
* There is no unstable releases and no APIs, thus Kargo doesn't follow
[semver](http://semver.org/). Every version describes only a stable release.
Breaking changes, if any introduced by changed defaults or non-contrib ansible roles'
playbooks, shall be described in the release notes. Other breaking changes, if any in
the contributed addons or bound versions of Kubernetes and other components, are
considered out of Kargo scope and are up to the components' teams to deal with and
document.
* Minor releases can change components' versions, but not the major ``kube_version``.
Greater ``kube_version`` requires a new major or minor release. For example, if Kargo v2.0.0
is bound to ``kube_version: 1.4.x``, ``calico_version: 0.22.0``, ``etcd_version: v3.0.6``,
then Kargo v2.1.0 may be bound to only minor changes to ``kube_version``, like v1.5.1
and *any* changes to other components, like etcd v4, or calico 1.2.3.
And Kargo v3.x.x shall be bound to ``kube_version: 2.x.x`` respectively.