54 lines
1.0 KiB
Markdown
54 lines
1.0 KiB
Markdown
# vociferate
|
|
|
|
A reusable release preparation tool for Go repositories.
|
|
|
|
## Build
|
|
|
|
Build with just:
|
|
|
|
```bash
|
|
just go-build
|
|
```
|
|
|
|
Or directly with Go:
|
|
|
|
```bash
|
|
go build -o dist/releaseprep ./cmd/releaseprep
|
|
```
|
|
|
|
## Usage
|
|
|
|
Prepare release files:
|
|
|
|
```bash
|
|
go run ./cmd/releaseprep --version v1.2.3 --date 2026-03-20 --root .
|
|
```
|
|
|
|
Recommend next release tag from changelog content:
|
|
|
|
```bash
|
|
go run ./cmd/releaseprep --recommend --root .
|
|
```
|
|
|
|
### Flags
|
|
|
|
- `--version` semantic version to release (with or without leading `v`).
|
|
- `--date` release date in `YYYY-MM-DD` format.
|
|
- `--recommend` print recommended next tag based on `## [Unreleased]`.
|
|
- `--root` repository root directory.
|
|
- `--version-file` path to version source file relative to `--root`.
|
|
- `--version-pattern` regexp with exactly one capture group for version value.
|
|
- `--changelog` path to changelog file relative to `--root`.
|
|
|
|
Defaults:
|
|
|
|
- `version-file`: `internal/releaseprep/version/version.go`
|
|
- `version-pattern`: `const String = "([^"]+)"`
|
|
- `changelog`: `changelog.md`
|
|
|
|
## Testing
|
|
|
|
```bash
|
|
just go-test
|
|
```
|