Release Guide¶
This project publishes standalone Windows, macOS, and Linux builds through
.github/workflows/release.yml. Pushing a tag named v* or V* creates a
public GitHub Release, generates notes from the latest 20 commit subjects, and
uploads the platform ZIP files.
Prerequisites¶
- Use the canonical lowercase tag format
vMAJOR.MINOR.PATCH, for examplev1.4.4. - Start from a clean
mainbranch synchronized withorigin/main. - Confirm the intended version does not already exist locally or remotely.
- Confirm the current
mainCI and documentation workflows are successful. - Ensure Git can push to
origin. GitHub CLI authentication is optional; it is useful for monitoring but is not required when Git HTTPS credentials work. - Never paste a GitHub token into chat or commit it to the repository. Repair
GitHub CLI access locally with
gh auth login -h github.comwhen needed.
Prepare the release commit¶
- Change
APP_VERSIONinannotation_tool/app_info.pyto the new tag value, including the leadingv. - Run the relevant test suites and release checks:
- Commit only the version bump:
-
Land the commit on
mainthrough the repository's normal pull-request policy. A maintainer may push directly only when intentionally using their branch-rule bypass permission. -
Wait for the
mainworkflows to complete successfully before tagging.
Publish¶
Existing releases use lightweight tags. Tag the exact version commit and push only that tag:
git tag vMAJOR.MINOR.PATCH
git show -s --format='%H %s' vMAJOR.MINOR.PATCH
git push origin vMAJOR.MINOR.PATCH
The tag push starts Build and Release Standalone GUI. The release record is created before the platform builds finish, so an initially empty asset list is normal. Builds commonly take 10–15 minutes, with Windows sometimes completing last.
Verify completion¶
Do not consider the release complete until the workflow succeeds and all three non-empty assets appear on the release:
VideoAnnotationTool-win.zipVideoAnnotationTool-mac.zipVideoAnnotationTool-linux.zip
Each uploaded asset should report a SHA-256 digest. Also verify that local and remote tags resolve to the intended commit:
With an authenticated GitHub CLI, monitor and inspect the release with:
The public release is available at:
Failure handling¶
- For a transient runner or upload failure, rerun only the failed GitHub Actions jobs and verify all three assets afterward.
- If released code needs a correction, prefer a new patch release rather than moving or replacing a published tag.
- Do not delete a release, overwrite assets, or force-move a tag without an explicit maintainer decision; those actions invalidate published references and checksums.