- RecommendedTag now reads the current version from the most recent released section heading in the changelog (## [x.y.z] - ...) when no --version-file flag is given, removing the dependency on a separate version file for recommendation. - When the changelog contains no prior releases, the base version defaults to 0.0.0, so the first recommended tag is v1.0.0 (or higher depending on unreleased content). - Prepare creates the release-version file if it does not already exist, so new repositories do not need to pre-seed it. - Add tests covering changelog-based version resolution, first-release default, and automatic file creation. - Update README and changelog unreleased section to document the new behaviour.
3.0 KiB
3.0 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
Changed
- Release version recommendation now reads the current version from the most recent released section in the changelog instead of requiring a separate version file. When no prior releases exist the version defaults to
0.0.0, yieldingv1.0.0as the first recommended tag. vociferate preparecreates therelease-versionfile if it does not already exist, removing the need to pre-seed it in new repositories.- Release automation is now split into a prepare workflow that updates and tags
main, and a tag-driven publish workflow that creates the release from the tagged revision. - The CLI entrypoint, internal package paths, build outputs, and automation references now use the
vociferatename instead of the earlierreleaseprepnaming. - Configurable version source and parser via
--version-fileand--version-pattern. - Configurable changelog path via
--changelog. - The release workflow and composite action now treat a provided
versionas an override and otherwise fall back to the recommended next version automatically. - Release preparation now runs directly in the prepare workflow; the repository-local helper script and just recipe were removed.
- Release creation is now idempotent: existing releases for the same tag are updated in place instead of recreated.
- Release asset uploads now replace existing assets with matching filenames so reruns stay synchronized.
- Automated release artifact publishing in the tag-driven release workflow for
linux/amd64,linux/arm64, andchecksums.txt. - Release recommendation now forces a major version bump whenever a
### Breakingheading is present in## [Unreleased], even if the section has no bullet entries yet. - The composite action now downloads and caches released
vociferatebinaries on bothamd64andarm64platforms instead of installing Go and running the module source directly. - Reusable
workflow_callsupport for thePrepare Releaseworkflow, enabling other repositories to invoke it directly. - Reusable
workflow_callsupport for the tag-drivenDo Releaseworkflow, enabling other repositories to publish from pushed tags without reimplementing release note or asset logic. - Composite action (
action.yml) for release preparation and recommendation flows. - Gitea workflows for push validation, manual release preparation, and tag-driven release publishing.
- README guidance for release artifacts and examples for reusing vociferate as a composite action or reusable workflow.