This document defines the release process for WorkflowGuard. The goal is to ensure that the binary published on GitHub, its checksum, the source tag, and the release notes all refer to the same build.
- Update the Gradle project version and create matching
docs/release-notes-X.Y.Z.md. - Merge all intended changes to
mainand require a green Build workflow. - A version change in
build.gradle.ktsonmaintriggers.github/workflows/tag-release.yml, which creates the annotatedvX.Y.Ztag at that exact release commit. - Do not create the GitHub release manually.
- The tag workflow explicitly dispatches
.github/workflows/release.ymlafter creating the tag. Manually pushed release tags can also trigger the release workflow directly. The release workflow builds, tests, verifies, checksums, and publishes the release artifacts. - Download the published JAR and
.sha256file and verify them independently before submitting or updating the BApp Store entry.
The tag workflow only creates a release tag when the project version actually changes. The release workflow fails if the tag version does not match the Gradle project version, if more than one WorkflowGuard JAR is produced, if Montoya API classes are bundled, if duplicate JAR entries are present, or if release notes are missing.
The validation record created on 2026-07-31 refers to a build with:
- size: 2,852,241 bytes;
- SHA-256:
8FB9CD29EC79CE5B9489A55F7BCAC321393E7B4426CE63BD84A0B9E5D29955DD.
The JAR currently attached to the GitHub v0.3.3 release was uploaded on
2026-08-25 and GitHub reports:
- size: 2,854,635 bytes;
- SHA-256:
84422c6751fd05574b5e3cdfd20bc64c2a5fd7a6d74be28b0d2d8ccd0df8d043.
These are different binary builds. The July validation checksum must therefore not be used to verify the currently attached release asset. The release page body should be corrected manually to remove the stale size and checksum.
Starting with 0.3.4, the automated tag/release workflows are the canonical
release path and the release workflow is the canonical producer of both the JAR
and its checksum.