|
AWK Minifier
Conservative AWK source minification
|
Accepted
The repository template already uses Conventional Commits and the bitshifted/git-auto-semver GitHub Action. The action can calculate semantic versions from commit history: feat increments the minor component, BREAKING CHANGE increments the major component, and supported maintenance commit types increment the patch component.
A release pipeline should validate the exact bytes it publishes. Creating a tag before build and validation makes failure recovery more awkward because an immutable-looking release marker can exist for artifacts that never passed the release contract.
The release workflow SHALL use bitshifted/git-auto-semver with create_tag: false to calculate the next version from Conventional Commits.
The versioning policy SHALL document that feat produces a minor increment, BREAKING CHANGE produces a major increment, and supported maintenance commit types such as fix, docs, test, refactor, perf, build, ci, chore, style, and revert produce a patch increment according to the action's contract.
The workflow SHALL prepare and verify repository dependencies, run maintained source validation, build the three artifacts using the calculated version, test the exact generated artifacts, verify checksums, and attest release files before creating the GitHub release/tag.
The release action SHALL create the tag only after validation succeeds. Release artifacts SHALL include all three executable flavors and all three checksum companions.
feat MUST be documented as a minor increment.BREAKING CHANGE MUST be documented as a major increment.Patch-only automatic versioning was rejected because the selected action already supports meaningful major and minor semantics. Early tag creation was rejected because validation should precede publication. Manual version files were rejected as the starter default because they duplicate information derivable from release history and commit semantics.
Commit messages become part of the release interface and require discipline. The workflow is longer because it validates exact release bytes before creating the release, but failed validation does not leave a premature release tag.
adrctl's current semantic release workflow already calculates with create_tag: false, validates exact artifacts, verifies checksums, and attests before softprops/action-gh-release creates the release/tag. The template's existing README already documents the major/minor/patch Conventional Commit mapping.