Release Process
This page is intended for Release Managers and describes the release process used by Tenstorrent firmware.
Release Procedure
The following steps are required to be followed by firmware release engineers when creating a new Tenstorrent firmware release.
Release Checklist
Create an issue with the title Release Checklist v1.2.3. If the issue does not already exist,
then create it using the previous release checklist as a template. The checklist will list the
steps required before tagging a final release.
Tagging
Note
This section uses an script to generate commits. Always check that the commits are correct.
Important
Any changes to app/*/VERSION files is required to take place prior to the release process.
Run
scripts/update_versions.sh rcto increment the minor version of the FW, SMC and DMC, and to setEXTRAVERSION = rc1. Major version bumps or RC2 candidates must be done manually.Below is an example of how each
VERSIONfile should look after the script ran.VERSION_MAJOR = 19 VERSION_MINOR = 4 PATCHLEVEL = VERSION_TWEAK = 0 EXTRAVERSION = rc1
Post a PR with the updated
VERSIONfiles and merge after CI is successful.Tag and push the version, using an annotated tag:
git tag -s -m "tt-zephyr-platforms 1.2.3-rc1" v1.2.3-rc1
Verify that the tag has been signed correctly,
git showfor the tag must contain a signature (look for theBEGIN PGP SIGNATUREorBEGIN SSH SIGNATUREmarker in the output):git show v1.2.3-rc1
Push the tag:
git push git@github.com:tenstorrent/tt-zephyr-platforms.git v1.2.3-rc1
Lastly, for final releases,
Run
scripts/update_versions.sh pre-releaseto setEXTRAVERSIONback to blank. Post a PR and merge after CI is successful.Find the generated draft release, edit the release notes, and publish the release. It is recommended to copy the contents of
doc/release/release-notes-1.2.3.mdinto the release-notes area.Run
scripts/update_versions.sh post-releaseto setPATCHLEVELback to99. Post a PR and merge after CI is successful.Announce the release via official Tenstorrent channels and provide a link to the GitHub release page.
Run
scripts/generate-release-docs.pyto generate the release notes and migration guide files for the next release. Post a PR with the generated files and merge after CI is successful.
Publishing a Combined Firmware Bundle to tt-firmware
Make a pull request to tt-firmware with the new combined firmware bundle and accompanying required changes.
As part of the pull request:
Clone the
tt-firmwarerepository (if it has not already been cloned).if [ ! -d ~/tt-firmware ]; then git clone git@github.com:tenstorrent/tt-firmware.git ~/tt-firmware cd ~/tt-firmware fi
Create a branch to make modifications for the release.
git checkout -b release-v1.2.3
Download the
fw_pack-<version>.fwbundlefile in the associated release.wget https://github.com/tenstorrent/tt-zephyr-platforms/releases/download/v1.2.3/fw_pack-1.2.3.fwbundleChange the
latest.fwbundlesymbolic link to point to the new firmware bundle and remove the older version, staging the files for commit.git rm -f $(readlink latest.fwbundle) latest.fwbundle ln -sf fw_pack-1.2.3.fwbundle latest.fwbundle git add *.fwbundle
Edit the
README.mdfile following the existing structure. Update the “Available Firmware” and “Release Notes” sections, staging the file for commit.$EDITOR README.md git add README.md
Make a signed commit (
git commit -s) for the changes using the commit subject and body below.release: fw bundle v1.2.3 Release FW Bundle v1.2.3 Signed-off-by: Your Name <your@email.com>
Create a pull request for the changes. After the PR has been merged, refresh the
mainbranch, and tag the release with a signed commit.git checkout main git pull git tag -s -m "tt-firmware 1.2.3" v1.2.3 git push git@github.com:tenstorrent/tt-firmware.git v1.2.3
Create a new
tt-firmwarerelease from the new tag by copying the contents ofdoc/release/release-notes-1.2.3.mdinto the release notes for the newtt-firmwarerelease.