From d332502d3d4b32c2f089720b88fc5c852aa8f7dc Mon Sep 17 00:00:00 2001
From: Bogdan Dobrelya <bogdando@mail.ru>
Date: Thu, 12 Jan 2017 11:22:22 +0100
Subject: [PATCH] Clarify major/minor/maintainance releases

Signed-off-by: Bogdan Dobrelya <bogdando@mail.ru>
---
 RELEASE.md | 31 ++++++++++++++++++++++---------
 1 file changed, 22 insertions(+), 9 deletions(-)

diff --git a/RELEASE.md b/RELEASE.md
index a4ebc9658..56f0b2e0f 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -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.
-- 
GitLab