Skip to content

Release Procedure

deadprogram edited this page Aug 31, 2026 · 21 revisions

This is a checklist for how to perform a release of TinyGo.

CI builds and publishes the release. The Release workflow (.github/workflows/release.yml) collects the artifacts that the Linux, macOS and Windows workflows already built for the tagged commit, and creates a draft release. It builds nothing, so what ships is what was tested. See the "Publish a release" section of BUILDING.md.

  • Make the release

    • Update CHANGELOG.md on the dev branch
    • Set const version in goenv/version.go to the new version, without a v prefix
    • Merge dev branch to release branch
    • Tag the commit on the release branch and push the tag, for example git tag v0.42.0 && git push origin v0.42.0. The tag must be v plus the version in goenv/version.go, because the release file names come from that constant.
    • Wait for the Release workflow. It waits for the three build workflows, collects the nine release files, and creates a draft release with the CHANGELOG.md entry as its notes.
    • Review the draft release and publish it

    To release again after a failure, delete the draft release and start the Release workflow from the Actions tab with the tag as its input.

  • Update the ecosystem

  • Update ecosystem packages

    • Update drivers
    • Update bluetooth
    • Update tinyfs
    • Update tinyterm
    • Update tinydraw
    • Update tinyfont
  • After the release

    • On the dev branch, set goenv/version.go to the next -dev version

Clone this wiki locally