Oasis Core (as a whole) uses a CalVer (calendar versioning) scheme with the following format:
YY.MINOR[.MICRO][-MODIFIER]
where:
-
YY
represents short year (e.g.19
,20
,21
, ...), -
MINOR
represents the minor version starting with zero (e.g.0
,1
,2
,3
, ...), -
MICRO
represents (optional) final number in the version (sometimes referred to as the "patch" segment) (e.g.0
,1
,2
,3
, ...).If the
MICRO
version is0
, it will be omitted. -
MODIFIER
represents (optional) build metadata, e.g.git8c01382
.
The YY
version must be bumped after each new calendar year.
When a regularly scheduled release is made, the MINOR
version should be
bumped.
If there is a major fix that we want to back-port from an upcoming next release
and release it, then the MICRO
version should be bumped.
The MODIFIER
should be used to denote a build from an untagged (and
potentially unclean) git source. It should be of the form:
gitCOMMIT_SHA[+dirty]
where:
COMMIT_SHA
represents the current commit’s abbreviated SHA.
The +dirty
part is optional and is only present if there are uncommitted
changes in the working directory.
Oasis Core’s protocol versions use SemVer (semantic versioning) 2.0.0 with the following format:
MAJOR.MINOR.PATCH
where:
MAJOR
represents the major version,MINOR
represents the minor version,PATCH
represents the patch version.
Whenever a backward-incompatible change is made to a protocol, the MAJOR
version must be bumped.
If a new release adds a protocol functionality in a backwards compatible manner,
the MINOR
version must be bumped.
When only backwards compatible bug fixes are made to a protocol, the PATCH
version should be bumped.
With the release of Oasis Core 20.10, we bumped the protocol versions to version 1.0.0 which signified that they are ready for production use.