Release Versioning
We use a 3-number version: major.default.patch
Example: 1.12.1
- major will be used for major changes, usually requiring a hard-fork
- default will be the default version increase when making a release. We will do our best to document breaking changes in the release notes.
- patch will be used only for small changes, usually fixing a regression in a default release or very minor changes.
An example of a patch release: https://github.com/iron-fish/ironfish/releases/tag/v1.0.1
This release had minor text changes to the CLI and a minor addition to one of the API payloads. It did not include any changes to the SDK or core logic of the node.
Backwards Compatibility
We aim to give a 2-week notice on deprecations. For example, if we add new fields to an RPC payload to replace existing ones, we will keep the existing ones for a minimum of 2 weeks. We will include these deprecation notices in the release notes of the release that counts as the starting point.