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*.*.* (standard) or v*.*.*.* (release revision).
- For a normal SemVer release, update all
Cargo.tomlpackage versions, installer configuration, and documentation version headers. - For a release revision such as
v2.0.0.1, keep workspace Cargo packages at2.0.0; update the installer and release-facing documentation to the revision identifier. - Commit version and documentation changes:
git commit -am "chore: bump version to 2.0.0.1" - Tag the commit:
git tag -a v2.0.0.1 -m "Release v2.0.0.1" - 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 and uploaded to the published GitHub Release.
Before publishing the 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.
- Use
docs/ReleaseNotes.mdas the GitHub Release description. - Select "Pre-release" only for alpha, beta, or release-candidate tags.
- Publish the Release after all build artifacts finish successfully.
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.