From cca008d856e3ffc60ec1a486871d0faa702abe26 Mon Sep 17 00:00:00 2001 From: Marius Poke Date: Wed, 16 Aug 2023 12:09:23 +0200 Subject: [PATCH] docs: update semantic versioning (#1203) * update semantic versioning * Update CONTRIBUTING.md Co-authored-by: Shawn <44221603+smarshall-spitzbart@users.noreply.github.com> * add clarification on API breaking * Update CONTRIBUTING.md Co-authored-by: Shawn <44221603+smarshall-spitzbart@users.noreply.github.com> --------- Co-authored-by: Shawn <44221603+smarshall-spitzbart@users.noreply.github.com> --- CONTRIBUTING.md | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e9a3c092ae..8975d37269 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -245,17 +245,11 @@ ICS adheres to the [trunk based development branching model](https://trunkbasedd ### Semantic Versioning -ICS uses a variation of [semantic versioning](https://semver.org/). +ICS follows [semantic versioning](https://semver.org), but with the following deviations (similar to [IBC-Go](https://github.com/cosmos/ibc-go/blob/main/RELEASES.md)): -Note that state breaking changes are a subset of consensus breaking changes. Therefore we'll only refer to the latter when talking about versioning. - -ICS is a distributed, IBC based protocol in which multiple blockchains could be affected by a version bump. Therefore incrementing a MAJOR version number indicates that the PR updates, or is a breaking change to the way that the provider and consumer(s) communicate with one another over IBC. If a PR is consensus breaking to both the provider and consumer(s), then it requires a MAJOR version bump. - -Incrementing a MINOR version number indicates that a PR is only consensus breaking to the provider, or only to the consumers, where IBC communication remains unchanged. - -Incrementing a PATCH version number indicates that a PR is not consensus breaking to the provider or consumers. This could include node API changes, or other miscellaneous and often rare changes. - -Pure documentation, testing, and refactoring PRs do not require a version bump. +- A library API breaking change will result in an increase of the MAJOR version number (X.y.z | x > 0). +- A state breaking change (change requiring coordinated upgrade and/or state migration for the consumer, the provider, or both) will result in an increase of the MINOR version number (x.Y.z | x > 0). +- Any other changes (including node API breaking changes) will result in an increase of the PATCH version number (x.y.Z | x > 0). ### Backwards Compatibility