Steps#
- Run
python3 build/build.py --write-statsonce to refresh stored stats from the files (numpy; CI-class machine). BumpVERSION; editsrc/profiles.meta.json(released) anddocs/CHANGELOG.md(a## vX.Y.Zheading). - Run
python3 tools/ship.py --release. It buildsreleases/<ver>/with runtime acceptance, regenerates the derived site files, freezes the release and runs the gate. It must end withall checks passed. - Review
releases/<ver>/DIFF.mdandacceptance.json. There must be 0 failures; warn and not run entries stay visible. - Commit and merge to
main(Pages deploys). Then tagvX.Y.Zand push the tag. - The
releaseworkflow checks the tag againstVERSION, checks the tag is onmain, rebuilds, requires the frozen hashes to match, and publishes a GitHub Release with the zips,SHA256SUMS.txt,acceptance.jsonandDIFF.md.
To build on GitHub instead of locally, run the release workflow by hand with the version; it runs the same command and pushes a release/vX.Y.Z branch. Open the pull request yourself so CI runs on it.
Commands#
python3 tools/ship.py # regenerate derived files, then gate (before every commit) python3 tools/ship.py --release # full build, regenerate, freeze, gate git tag v<ver> && git push --tags
Guards#
build.pyrefuses to rebuild a release that has aFROZENfile.tests/check.pyfails if a frozen release'sSHA256SUMS.txtchanges.- The release notes are the
## v<ver>section of the changelog, so write it before you tag.