IREE cuts automated releases via a workflow that is triggered daily. The only constraint placed on the commit that is released is that it has passed certain CI checks. These are published on GitHub with the “pre-release” status. For debugging this process, see the Release debugging playbook.
We periodically promote one of these candidates to a “stable” release by removing the “pre-release” status. This makes it show up as a “latest” release on GitHub. We also push the Python packages for this release to PyPI.
Package | Release status |
---|---|
GitHub release (stable) | |
GitHub release (nightly) | |
Python iree-base-compiler | |
Python iree-base-runtime | |
Python iree-compiler (deprecated) | |
Python iree-runtime (deprecated) |
A pinned issue tracking the next release should be filed like https://github.com/iree-org/iree/issues/18380. Developers authoring patches that include major or breaking changes should coordinate merge timing and contribute release notes on those issues.
After approximately one month since the previous release, a new release should be promoted from nightly release candidates.
When selecting a candidate we aim to meet the following criteria:
When you've identified a potential candidate, comment on the tracking issue with the proposal and solicit feedback. People may point out known regressions or request that some feature make the cut.
(Authorized users only) Push to PyPI using pypi_deploy.sh
Create a new release on GitHub:
Set the tag to be created and select a target commit. For example, if the candidate release was tagged iree-3.1.0rc20241119
at commit 3ed07da
, set the new release tag iree-3.1.0
and use the same commit.
Set the title to Release vX.Y.Z
.
Paste the release notes from the release tracking issue.
Upload the .whl
files produced by the pypy_deploy.sh
script (look for them in your /tmp/
directory). These have the stable release versions in them.
Download the iree-dist-.*.tar.xz
files from the candidate release and upload them to the new stable release.
Uncheck the option for “pre-release”, and check the option for “latest”.
Complete any remaining checkbox items on the release tracking issue then close it and open a new one for the next release.