This document describes the workflow, checklist, and responsibilities for releasing new versions of TechScript. TechScript follows Semantic Versioning (see VERSIONING.md).
- Release Manager: Coordinates dates, reviews blockers, performs testing, tags releases, and runs the packaging/publishing pipeline.
- Maintainers: Approve pull requests, ensure CI status is green, and contribute to the release notes.
graph TD
A[Pre-Release Checks] --> B[Tagging & Versioning]
B --> C[CI/CD Build & Signing]
C --> D[Verification & Testing]
D --> E[GitHub Release Publication]
E --> F[Post-Release Announcement]
Before triggering a release, the Release Manager must ensure:
- The
mainbranch is fully stable. - All unit and integration tests pass successfully locally and on CI.
- All documentation matches the syntax and features of the incoming version.
- Cargo dependencies are up to date and audit/vulnerability checks pass.
- The
CHANGELOG.mdhas been updated with a list of user-facing changes since the last release.
Releases are marked with git tags in the format v*.*.*.
- Update version numbers in:
- All
Cargo.tomlfiles in the workspace crates. - Installer configurations.
- Documentation version headers.
- All
- Commit version bumps:
git commit -am "chore: bump version to 0.1.0" - Tag the commit:
git tag -a v0.1.0 -m "Release v0.1.0 (Alpha)" - Push the tag to GitHub:
git push origin main --tags
Once the tag is pushed:
- The
.github/workflows/release.ymlGitHub Action triggers automatically. - It builds binaries for:
- Windows x64 (Standalone executable and Installer)
- macOS x64/arm64
- Linux x86_64
- Artifacts are packaged, signed, and uploaded to the draft GitHub Release.
Before publishing the draft release:
- Download the Windows Installer and verify setup completes with PATH updates.
- Double-click a
.txsfile to test explorer association. - Open the REPL using
tech repl. - Run example scripts to ensure they compile and run correctly on the VM.
- Copy notes from
CHANGELOG.mdor use the format inRELEASE_NOTES_TEMPLATE.md. - Format the GitHub Release description.
- Select "Pre-release" if the version is an alpha or beta (e.g.,
v0.1.0orv0.5.0). - Publish the Release.
In case of a critical bug identified immediately post-release:
- Revert the offending commit on the
mainbranch. - Publish a patch release immediately (e.g.,
v0.1.1). - If necessary, yank/delete the broken release or mark it with a warning in the release description.