Version Locations
Section titled “Version Locations”Versions must be kept in sync:
| File | Format |
|---|---|
VERSION | X.Y.Z |
internal/cli/commands/executor.go | var Version = "X.Y.Z" |
CHANGELOG.md | ## [X.Y.Z] heading |
docs/releases/X.Y.Z.md | Full release notes |
Validation
Section titled “Validation”Before tagging, run the release validator:
go run docs/dev_tasks.go release-validate --version X.Y.ZThis checks:
[1/4] Version sync— VERSION file, commands.go, CHANGELOG all match[2/4] Quality checks—gofmt,go vet,go test ./...,go build[3/4] Building binary— confirms a clean binary builds[4/4] Binary version— binary reports the correct version
All four checks must pass before tagging.
Release Steps
Section titled “Release Steps”1. Update versions in all four locationsSection titled “1. Update versions in all four locations”2. Write release notes in docs/releases/X.Y.Z.mdSection titled “2. Write release notes in docs/releases/X.Y.Z.md”3. Update CHANGELOG.mdSection titled “3. Update CHANGELOG.md”4. ValidateSection titled “4. Validate”go run docs/dev_tasks.go release-validate --version X.Y.Z5. Tag and pushSection titled “5. Tag and push”git tag -a vX.Y.Z -m "Release X.Y.Z" git push origin vX.Y.ZGitHub Actions automatically:
- Runs
go test ./...on every push - Builds binaries for
linux/amd64,linux/arm64,windows/amd64,darwin/arm64on tag push - Publishes binaries to GitHub Releases
- Generates
qql-go_X.Y.Z_checksums.txt
Binary Distribution
Section titled “Binary Distribution”Release artifacts:
| Binary | Platform |
|---|---|
qql-go | Linux amd64 |
qql-go | Linux arm64 |
qql-go.exe | Windows amd64 |
qql-go | macOS arm64 |
qql-go_X.Y.Z_checksums.txt | All platforms |
Install script (install.sh) and PowerShell script (install.ps1) auto-detect platform and download the correct binary.