docs: refine changelog for initial release
All checks were successful
Push Validation / validate (push) Successful in 53s

This commit is contained in:
Micheal Wilkinson
2026-03-20 21:12:56 +00:00
parent d6f178ede9
commit c079bf766f
2 changed files with 19 additions and 37 deletions

View File

@@ -1,6 +1,6 @@
# vociferate # vociferate
`vociferate` is a release orchestration tool written in Go for repositories that `vociferate` is an `aether` release orchestration tool written in Go for repositories that
want changelog-driven versioning, automated release preparation, and repeatable want changelog-driven versioning, automated release preparation, and repeatable
tag publication. tag publication.
@@ -9,7 +9,7 @@ recommend the next semantic version, promote `Unreleased` changelog entries,
commit and tag a release, and publish release notes/assets from the tagged commit and tag a release, and publish release notes/assets from the tagged
revision. revision.
## Reuse In Other Repositories ## Use In Other Repositories
Vociferate ships two composite actions that together cover the full release flow. Vociferate ships two composite actions that together cover the full release flow.
Pin both to the same released tag. Pin both to the same released tag.
@@ -34,13 +34,7 @@ jobs:
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Resolve cache token
id: cache-token
run: echo "value=${GITHUB_SHA}" >> "$GITHUB_OUTPUT"
- uses: git.hrafn.xyz/aether/vociferate/prepare@v1.0.0 - uses: git.hrafn.xyz/aether/vociferate/prepare@v1.0.0
env:
VOCIFERATE_CACHE_TOKEN: ${{ steps.cache-token.outputs.value }}
with: with:
version: ${{ inputs.version }} version: ${{ inputs.version }}
``` ```
@@ -54,8 +48,6 @@ and `version-pattern`:
```yaml ```yaml
- uses: git.hrafn.xyz/aether/vociferate/prepare@v1.0.0 - uses: git.hrafn.xyz/aether/vociferate/prepare@v1.0.0
env:
VOCIFERATE_CACHE_TOKEN: ${{ github.sha }}
with: with:
version-file: internal/myapp/version/version.go version-file: internal/myapp/version/version.go
version-pattern: 'const Version = "([^"]+)"' version-pattern: 'const Version = "([^"]+)"'

View File

@@ -9,32 +9,22 @@ A `### Breaking` section is used in addition to Keep a Changelog's standard sect
## [Unreleased] ## [Unreleased]
### Breaking ### Added
### Changed - Go CLI for changelog-driven release preparation and semantic version recommendation.
- Version recommendation from changelog release headings, including first-release support (`0.0.0` base -> `v1.0.0`).
- Two dedicated subdirectory composite actions replace the boilerplate inline workflow steps: `prepare/action.yml` runs vociferate, commits updated files, and pushes the release tag; `publish/action.yml` extracts release notes from the changelog and creates or updates the release. Consumer repositories need only a checkout step and a single `uses:` call per workflow stage. - Automatic `release-version` creation/update during release preparation.
- `publish/action.yml` outputs `release-id`, `tag`, and `version` so consumers can upload their own release assets after the release is created. - Configurable version source/parsing via `--version-file` and `--version-pattern`.
- `prepare/action.yml` accepts a `git-add-files` input so repositories using a custom `version-file` can stage the correct set of files for the release commit.
- The `prepare-release.yml` and `do-release.yml` vociferate workflows now use the local `./prepare` and `./publish` actions, validating the actions in the self-release pipeline.
- `prepare/action.yml` and `action.yml` use `go run ./cmd/vociferate` directly from the action source (via `GITHUB_ACTION_PATH`) when invoked at `@main`, and download a prebuilt binary when invoked at a semver tag. This makes development and CI on `main` self-contained without requiring a published release.
- Binary download cache keys in published actions are now repository-scoped and use a workflow-defined fixed cache token (`github.sha` in this repository's prepare-release workflow). `cache-token` is no longer a public action input.
- 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`, yielding `v1.0.0` as the first recommended tag.
- `vociferate prepare` creates the `release-version` file 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 `vociferate` name instead of the earlier `releaseprep` naming.
- Configurable version source and parser via `--version-file` and `--version-pattern`.
- Configurable changelog path via `--changelog`. - Configurable changelog path via `--changelog`.
- The release workflow and composite action now treat a provided `version` as an override and otherwise fall back to the recommended next version automatically. - Recommended-version fallback when `version` is omitted in CLI and action flows.
- Release preparation now runs directly in the prepare workflow; the repository-local helper script and just recipe were removed. - Major-version recommendation trigger from `Unreleased` `### Breaking`.
- Release creation is now idempotent: existing releases for the same tag are updated in place instead of recreated. - Root composite action (`action.yml`) for recommend/prepare flows.
- Release asset uploads now replace existing assets with matching filenames so reruns stay synchronized. - Subdirectory composite actions: `prepare/action.yml` (prepare/commit/tag/push) and `publish/action.yml` (extract notes/create-or-update release).
- Automated release artifact publishing in the tag-driven release workflow for `linux/amd64`, `linux/arm64`, and `checksums.txt`. - `publish` outputs for downstream automation: `release-id`, `tag`, and `version`.
- Release recommendation now forces a major version bump whenever a `### Breaking` heading is present in `## [Unreleased]`, even if the section has no bullet entries yet. - Dual execution mode for actions: `go run` from source on `@main`, prebuilt binaries on tagged refs.
- The composite action now downloads and caches released `vociferate` binaries on both `amd64` and `arm64` platforms instead of installing Go and running the module source directly. - Repository-scoped binary cache keys with workflow-defined fixed token support via `VOCIFERATE_CACHE_TOKEN`.
- Reusable `workflow_call` support for the `Prepare Release` workflow, enabling other repositories to invoke it directly. - Tag-driven release publication with idempotent release updates and asset replacement on reruns.
- Reusable `workflow_call` support for the tag-driven `Do Release` workflow, enabling other repositories to publish from pushed tags without reimplementing release note or asset logic. - Release artifacts for `linux/amd64`, `linux/arm64`, and `checksums.txt`.
- Composite action (`action.yml`) for release preparation and recommendation flows. - Reusable Gitea workflows (`prepare-release.yml`, `do-release.yml`) with `workflow_call` support.
- Gitea workflows for push validation, manual release preparation, and tag-driven release publishing. - Project/automation rename from `releaseprep` to `vociferate` (entrypoint, package paths, outputs).
- README guidance for release artifacts and examples for reusing vociferate as a composite action or reusable workflow. - README guidance focused on primary cross-repository reuse workflows.