File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ name : release-checklist
2+
3+ on :
4+ push :
5+ tags :
6+ - " v*"
7+ workflow_dispatch :
8+ inputs :
9+ version :
10+ description : " Release version (vMAJOR.MINOR.PATCH)"
11+ required : true
12+ type : string
13+
14+ jobs :
15+ checklist :
16+ runs-on : ubuntu-latest
17+ env :
18+ RELEASE_VERSION : ${{ github.event_name == 'workflow_dispatch' && inputs.version || github.ref_name }}
19+ steps :
20+ - name : Checkout
21+ uses : actions/checkout@v4
22+
23+ - name : Validate release checklist
24+ run : ./scripts/release_checklist.sh "${RELEASE_VERSION}"
Original file line number Diff line number Diff line change 1+ # Changelog
2+
3+ All notable changes to this project will be documented in this file.
4+
5+ ## Unreleased
6+
7+ - Ongoing work toward ` v0.19.0 ` tooling and quality milestones.
8+
9+ ## v0.19.0 - Unreleased
10+
11+ - Milestone in progress. Use this section for release-ready change summaries.
12+
13+ ## v0.1.0 - 2026-02-19
14+
15+ - Initial pre-1.0 project baseline and public documentation set.
Original file line number Diff line number Diff line change @@ -334,7 +334,7 @@ Goal: improve day-to-day developer productivity and interpreter robustness.
334334### CI and Release Engineering
335335
336336- [x] Add smoke tests for docs examples to CI.
337- - [ ] Add release checklist automation for changelog/version bumps.
337+ - [x ] Add release checklist automation for changelog/version bumps.
338338- [x] Add compatibility matrix notes for supported Go versions.
339339
340340### v0.19.0 Definition of Done
Original file line number Diff line number Diff line change @@ -558,7 +558,7 @@ func (m replModel) View() string {
558558 var b strings.Builder
559559
560560 header := headerStyle .Render ("VibeScript REPL" )
561- version := mutedStyle .Render ("v0.1 .0" )
561+ version := mutedStyle .Render ("v0.19 .0" )
562562 b .WriteString (header + " " + version + "\n " )
563563 b .WriteString (mutedStyle .Render (strings .Repeat ("─" , min (m .width - 2 , 60 ))) + "\n \n " )
564564
Original file line number Diff line number Diff line change @@ -14,6 +14,25 @@ This repository uses GoReleaser for changelog generation and GitHub releases. Th
14141 . Tag the release locally and push it (e.g., ` git tag -a v0.1.0 -m "v0.1.0" ` then ` git push origin v0.1.0 ` ).
15152 . GitHub Actions picks up ` v* ` tags via ` .github/workflows/release.yml ` and runs ` goreleaser release --clean ` with ` GITHUB_TOKEN ` injected.
1616
17+ ## Automated release checklist
18+
19+ Before tagging, run the checklist automation:
20+
21+ ``` bash
22+ ./scripts/release_checklist.sh v0.1.0
23+ ```
24+
25+ The checklist verifies:
26+
27+ - ` CHANGELOG.md ` contains a ` ## vX.Y.Z ` heading.
28+ - ` ROADMAP.md ` contains a matching milestone heading.
29+ - The REPL version label in ` cmd/vibes/repl.go ` matches the target version.
30+ - The version tag does not already exist locally.
31+
32+ The same validation runs automatically on tag pushes via
33+ ` .github/workflows/release-checklist.yml ` and can also be run manually via
34+ GitHub Actions ` workflow_dispatch ` .
35+
1736### Local dry run (optional)
1837
1938If you want to test locally instead of waiting for CI:
Original file line number Diff line number Diff line change 1+ #! /usr/bin/env bash
2+ set -euo pipefail
3+
4+ if [[ $# -ne 1 ]]; then
5+ echo " usage: scripts/release_checklist.sh <version>" >&2
6+ echo " example: scripts/release_checklist.sh v0.19.0" >&2
7+ exit 2
8+ fi
9+
10+ version=" $1 "
11+ if [[ ! " ${version} " =~ ^v[0-9]+\. [0-9]+\. [0-9]+$ ]]; then
12+ echo " invalid version '${version} ': expected vMAJOR.MINOR.PATCH" >&2
13+ exit 2
14+ fi
15+
16+ fail () {
17+ echo " release checklist failed: $1 " >&2
18+ exit 1
19+ }
20+
21+ [[ -f CHANGELOG.md ]] || fail " missing CHANGELOG.md"
22+ [[ -f ROADMAP.md ]] || fail " missing ROADMAP.md"
23+ [[ -f cmd/vibes/repl.go ]] || fail " missing cmd/vibes/repl.go"
24+
25+ grep -Eq " ^## ${version} ( |$)" CHANGELOG.md || fail " CHANGELOG.md missing heading for ${version} "
26+ grep -Eq " ^## ${version} ( |$)" ROADMAP.md || fail " ROADMAP.md missing milestone heading for ${version} "
27+ grep -Fq " version := mutedStyle.Render(\" ${version} \" )" cmd/vibes/repl.go || fail " REPL version label does not match ${version} "
28+
29+ if git rev-parse -q --verify " refs/tags/${version} " > /dev/null 2>&1 ; then
30+ fail " git tag ${version} already exists locally"
31+ fi
32+
33+ echo " release checklist passed for ${version} "
You can’t perform that action at this time.
0 commit comments