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 a fake release version, v1.2.3
, or v1.2.3-rc1
as an example. Replace with
the appropriate release candidate or final release version.
Important
Any changes to app/*/VERSION
files is required to take place prior to the release process.
Update the version variables in the bundle version file
VERSION
file located in the root of the Git repository to match the version for this release. TheEXTRAVERSION
variable is used to identify release candidates. It is left empty for final releases.EXTRAVERSION = rc1
Post a PR with the updated
VERSION
file usingrelease: 1.2.3-rc1
orrelease: 1.2.3
as the commit subject. Merge the PR 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 show
for the tag must contain a signature (look for theBEGIN PGP SIGNATURE
orBEGIN SSH SIGNATURE
marker 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,
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.md
into the release-notes area.Announce the release via official Tenstorrent channels and provide a link to the GitHub release page.
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-firmware
repository (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>.fwbundle
file in the associated release.wget https://github.com/tenstorrent/tt-zephyr-platforms/releases/download/v1.2.3/fw_pack-1.2.3.fwbundle
Change the
latest.fwbundle
symbolic 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.md
file 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
main
branch, 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-firmware
release from the new tag by copying the contents ofdoc/release/release-notes-1.2.3.md
into the release notes for the newtt-firmware
release.