docs: refine changelog for initial release
All checks were successful
Push Validation / validate (push) Successful in 53s
All checks were successful
Push Validation / validate (push) Successful in 53s
This commit is contained in:
12
README.md
12
README.md
@@ -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 = "([^"]+)"'
|
||||||
|
|||||||
44
changelog.md
44
changelog.md
@@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user