Rename the reusable workflows to release.yml and update-release.yml, add UPX compression for release binaries, and sync the standalone update-release workflow with the active release pipeline fixes. Update README, AGENTS, compliance notes, and changelog references to match the new workflow names and usage patterns.
11 KiB
11 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
A ### Breaking section is used in addition to Keep a Changelog's standard sections to explicitly document changes that are backwards-incompatible but would otherwise appear under ### Changed. Entries under ### Breaking trigger a major version bump in automated release recommendation logic.
Unreleased
Breaking
Added
Changed
Removed
Fixed
1.1.0 - 2026-03-21
Breaking
Added
- Added changelog gate validation to
decorate-praction for enforcing changelog updates on qualifying code changes. - Changelog gate modes:
strict(fails job on violation) andsoft(warns via PR comment). - Docs-only PR exemption with customizable glob patterns for documentation files.
- PR label-based exemptions for changelog gate (example:
skip-changelog). - Precise diff parsing: validates only added lines within the Unreleased section.
- Gate decision outputs:
gate-passed,docs-only,unreleased-additions-count,gate-failure-reasonfor reuse downstream. - Integrated remediation guidance in PR comments showing how to add changelog entries.
Changed
- Refactored
internal/vociferateto use a constructor-backed service with injected filesystem, environment, and git dependencies while preserving the existing package-level API. - Hardened
prepare-releasevalidation to enforce formatting checks, module hygiene,gosec, andgovulncheckbefore preparing a release. - Added matching local validation targets in
justfilefor formatting, module hygiene, tests, and security checks. decorate-prnow reads Unreleased changelog content through thevociferateGo CLI instead of maintaining separate shell parsing logic in the composite action.publishnow extracts tagged release notes through thevociferateGo CLI instead of duplicating changelog section parsing in shell.- Composite actions now share a centralized
run-vociferateorchestration flow, with binary-versus-source execution delegated through shared composite actions and single-use runtime/download logic folded back intorun-vociferate.binary. run-vociferatenow contains both binary and source execution flows directly in a single action implementation, removing nested local action wrappers for better runner compatibility.- Release automation now requires
secrets.RELEASE_PATfor prepare/publish/do-release operations instead of defaulting toGITHUB_TOKEN/GITEA_TOKEN. - Renamed the reusable Gitea workflows to
release.ymlandupdate-release.yml, and inlined release publication into the mainreleaseworkflow for clearer per-step job output. - Release binary builds now compress published linux artifacts with UPX before checksum generation and upload.
Removed
Fixed
- Prevented
govulncheck-actionfrom defaulting tosetup-goversionstableby explicitly settinggo-version-fileand disablingcheck-latest, avoiding unauthenticated GitHub API rate-limit failures on self-hosted/act-style runners. - Made
do-releaseversion resolution resilient toworkflow_callinput passing issues by adding a separate tag detection step that fetches and discovers the latest tag from origin as a fallback wheninputs.tagis empty, enabling proper operation even when Gitea's workflow_call doesn't pass inputs through correctly. - Fixed version resolution in
do-releaseworkflow by moving version calculation before checkout, resolving from inputs/git tags, and always passing explicit version topublishaction. - Fixed tag detection in
do-releaseto prioritize the tag at current HEAD (created byprepare-release) over the globally latest tag, ensuring correct version is detected when called fromprepare-releaseworkflow. - Fixed
do-releaseworkflow_call resolution on Teacup runners by explicitly falling back toneeds.prepare.outputs.tagand normalizing%!t(string=...)wrapped values before choosing a release tag. - Fixed release-chain triggering by using a PAT for release commit/tag pushes so downstream release workflows are triggered reliably.
- Made
publishaction version resolution more robust with clearer error messages when version input is missing and workflow is not running from a tag push. - Fixed
do-releaseworkflow to always checkout the resolved release tag, eliminating conditional checkout logic that could skip the checkout when called fromprepare-releaseworkflow. - Pinned
securego/gosecandgolang/govulncheck-actionto concrete version tags (v2.22.4andv1.0.4) so self-hosted Gitea runners can resolve them via direct git clone without relying on the GitHub Actions floating-tag API. - Restored explicit gosec caching by storing a pinned
v2.22.4binary under${{ runner.temp }}/gosec-binwithactions/cache@v4, so CI keeps fast security scans while still using the Go 1.26 toolchain fromsetup-go. - Replaced
securego/goseccomposite action with a directgo install github.com/securego/gosec/v2/cmd/gosec@v2.22.4 && gosec ./...run step so gosec uses the Go 1.26 toolchain installed bysetup-gorather than the action's bundled Go 1.24 binary which ignoresGOTOOLCHAIN=auto. - Fixed nested local composite-action references to use repository-local
./run-vociferatepaths so strict runners do not misparse parent-directory (../) action references as malformed remote coordinates. - Consolidated
run-vociferatebinary and source execution flows directly into the mainrun-vociferateaction to avoid nested local-action path resolution issues on strict runners. - Hardened workflow module hygiene by retrying
go mod verifyafter a module-cache refresh (go clean -modcache+go mod download) when runners report modified cached dependency directories. - Synced
update-release.ymlwith the active release pipeline fixes for Teacup-wrapped outputs, release-id normalization, upload endpoint validation, and accurate success or failure summaries.
1.0.2 - 2026-03-21
Breaking
Added
Changed
- Documented release/PR-decoration preflight token and API-access checks, including
GITHUB_TOKEN/GITEA_TOKENbehavior for self-hosted Gitea.
Removed
Fixed
1.0.1 - 2026-03-21
Breaking
Added
Changed
Removed
Fixed
- Enforced explicit
https://changelog reference links in prepare output for browser-safe markdown links.
1.0.0 - 2026-03-21
Breaking
Added
Changed
- Canonical changelog filename is now
CHANGELOG.md, and action/code defaults were updated to match. - README now uses
Ætherstylization in prose and corrects released-tag guidance wording.
Removed
Fixed
0.2.0 - 2026-03-21
Breaking
Added
- Added a project LICENSE file.
- Root and prepare actions now read
${{ vars.VOCIFERATE_REPOSITORY_URL }}and forward it toVOCIFERATE_REPOSITORY_URLfor repository URL override. - Added a published
coverage-badgecomposite action for generating and uploading coverage report/badge artefacts for reuse across repositories. - Added
AGENTS.md, an explicit integration guide for agentic coding partners using vociferate composite actions.
Changed
- Push validation now handles coverage artefact and badge generation in a dedicated
coverage-badgejob, with release recommendation isolated in a separate dependent job. - Push validation now calls the reusable
./coverage-badgecomposite action for coverage badge generation and publication.
Removed
Fixed
- Browser-facing URLs emitted in generated changelog links, workflow summaries, and markdown now use explicit
https://forms. - Release workflows now collect summary markdown into portable temp files and print it in explicit
Summarysteps instead of relying on unsupportedGITHUB_STEP_SUMMARYoutput. - Prepare now recreates the standard
Unreleasedsection headers after promoting notes into a tagged release entry. - First-release recommendation remains
v1.0.0when no prior releases exist in the changelog. - Do Release smoke validation now expects
--recommendto fail on tagged release checkouts whereUnreleasedis intentionally empty. - Changelog reference links now use compare URLs (
previous...currentfor releases andlatest...mainfor Unreleased), with first release links comparing from the repository's first commit short hash. - Repository URL derivation now supports
VOCIFERATE_REPOSITORY_URLas the highest-priority base-URL override for changelog link generation.
0.1.0 - 2026-03-20
Changed
- README workflow badges now link to the latest workflow run pages instead of the workflow definition pages.
Fixed
- Publish action falls back to
git describewheninputs.versionis empty andGITHUB_REFis not a tag ref, resolvingworkflow_callinput propagation failures in act runner v0.3.0.
Added
- Coverage badge in README linked to S3-hosted main-branch report.
- S3 coverage artefact publishing (HTML report, badge, JSON summary) in push validation pipeline.
- CLI tests and internal helper tests raising total coverage to 84%.
- Test suite isolation against ambient CI environment variables for changelog link generation tests.
- Go CLI for changelog-driven release preparation and semantic version recommendation.
- Version recommendation from changelog release headings, including first-release support (
0.0.0base ->v1.0.0). - Automatic
release-versioncreation/update during release preparation. - Configurable version source/parsing via
--version-fileand--version-pattern. - Configurable changelog path via
--changelog. - Recommended-version fallback when
versionis omitted in CLI and action flows. - Major-version recommendation trigger from
Unreleased### Breaking. - Root composite action (
action.yml) for recommend/prepare flows. - Subdirectory composite actions:
prepare/action.yml(prepare/commit/tag/push) andpublish/action.yml(extract notes/create-or-update release). publishoutputs for downstream automation:release-id,tag, andversion.- Dual execution mode for actions:
go runfrom source on@main, prebuilt binaries on tagged refs. - Repository-scoped binary cache keys with workflow-defined fixed token support via
VOCIFERATE_CACHE_TOKEN. - Tag-driven release publication with idempotent release updates and asset replacement on reruns.
- Release artifacts for
linux/amd64,linux/arm64, andchecksums.txt. - Reusable Gitea workflows (
prepare-release.yml,do-release.yml) withworkflow_callsupport. - Project/automation rename from
releasepreptovociferate(entrypoint, package paths, outputs). - README guidance focused on primary cross-repository reuse workflows.