Skip to content

Commit

Permalink
docs: update semantic versioning (#1203)
Browse files Browse the repository at this point in the history
* update semantic versioning

* Update CONTRIBUTING.md

Co-authored-by: Shawn <[email protected]>

* add clarification on API breaking

* Update CONTRIBUTING.md

Co-authored-by: Shawn <[email protected]>

---------

Co-authored-by: Shawn <[email protected]>
  • Loading branch information
mpoke and shaspitz authored Aug 16, 2023
1 parent a8ebd4a commit cca008d
Showing 1 changed file with 4 additions and 10 deletions.
14 changes: 4 additions & 10 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down

0 comments on commit cca008d

Please sign in to comment.