From 52878d80d73147dc21ead8c96a6f10a0855b5854 Mon Sep 17 00:00:00 2001 From: Alexey Orlenko Date: Mon, 6 Feb 2017 18:32:19 +0200 Subject: [PATCH] doc: document protocol versioning policy In order to communicate with developers of alternative implementations and be reasonable about compatibility, we need to assign versions to the protocol too. This commit documents the protocol versioning policy. --- doc/VERSIONING.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/doc/VERSIONING.md b/doc/VERSIONING.md index 8a7aa4bf..d05fb40a 100644 --- a/doc/VERSIONING.md +++ b/doc/VERSIONING.md @@ -1,5 +1,7 @@ # Versioning +## Package versioning + When we reach 1.0, we will just adhere to [semantic versioning](http://semver.org/) strictly, but semver says nothing about versions `<1.0.0`. Thus we extend semver's rules applying them to these @@ -10,3 +12,18 @@ a feature or a bugfix. Accordingly, if labels named `semver-major` or `semver-minor` are added to any issue or pull request before we have released `v1.0.0`, they actually assume minor and patch subversions. + +## Protocol versioning + +Before the package reaches version 1.0.0, the protocol version is bound to the +first version of the `metarhia-jstp` package that implements the specific +specification of the protocol. It would be nice to have it versioned +independently, but it's too late to do it, since we haven't been versioning it +from the beginning and we have made changes to the specification multiple +times. + +When the package reaches 1.0.0, the protocol version will be unconditionally +bumped to 1.0.0 too, regardless of whether `metarhia-jstp@1.0.0` brings any +changes to the protocol. We will then take this as a starting point and the +protocol specification will be versioned with semver independently from the +package.