Versioning schemelink
A shared version format is used for the packages
iree-base-compiler(formally namediree-compiler)iree-base-runtime(formally namediree-runtime)iree-turbine
Overviewlink
| Type of build | Version format | Version example | 
|---|---|---|
| Stable release (PyPI) | X.Y.Z | 
3.0.0 | 
Nightly release (GitHub schedule) | 
X.Y.ZrcYYYYMMDD | 
3.0.0rc20241029 | 
Dev release (GitHub pull_request) | 
X.Y.Z.devNN | 
3.0.0.dev+6d55a11 | 
| Local build | X.Y.Z.devNN | 
3.0.0.dev+6d55a11 | 
Keylink
| Identifier | Explanation | 
|---|---|
X | 
Major version | 
Y | 
Minor version | 
Z | 
Patch version | 
rc | 
release candidate (main branch) | 
dev | 
developer build (code on pull request branches) | 
YYYY | 
Year, e.g. 2024 | 
MM | 
Month, e.g. 10 | 
DD | 
Day, e.g. 29 | 
NN | 
git commit hash, e.g. 6d55a11 | 
Composition of version numberslink
A release number is in the format of X.Y.Z (MAJOR.MAJOR.PATCH)
XandYare defined as shared version numbers between all packages.- The patch level 
ZMAY be incremented individually. - A PATCH release contains only bug fixes and the version 
Z(x.y.Z) MUST be incremented. A bug fix is an internal change that fixes incorrect behavior and MUST NOT introduce breaking changes. - A MINOR release (unlike SemVer) as well as a MAJOR release MAY contain backwards-incompatible, breaking changes, like API changes and removals and furthermore bug fixes and new features.
 
Development and nightly releaseslink
- Development builds (e.g. from a regular CI) MUST be released with a version
  number defined as 
X.Y.Z.dev+NN, whereNNis the git commit hash. - Nightly releases MUST be released with a version number defined as 
X.Y.ZrcYYYYMMDD. - The intent is to promote a recent, high quality release candidate to a final version.
 
Binary stamps and tools will continue to report the original release candidate version.
Semanticslink
The following semantics apply:
- If the version 
X(X.y.z) is increased for one package, the version number change MUST be adopted by all (other) packages. The same applies for the versionY(x.Y.Z). - If the version 
XorYare changed,ZMUST be set0. - After a regular (non-patch) release, 
YMUST be increased to ensure precedence of nightly builds. For example:- The latest stable release published on November 15th 2024 is versioned as
  version 
3.0.0. - The next nightly builds are released as 
3.1.0rc20241116. - The next stable release is released as 
3.1.0or4.0.0. 
 - The latest stable release published on November 15th 2024 is versioned as
  version