@@ -78,7 +78,7 @@ cli (root)
7878- ** Testing** : Table-driven with testify/assert. Build tags for integration/e2e
7979- ** Concurrency** : ` sync.WaitGroup ` with bounded workers (max 4 for brew)
8080- ** Dry-run** : All destructive operations check ` cfg.DryRun ` first
81- - ** Version string** : Hardcoded in ` internal/cli/root.go ` — bump manually before release
81+ - ** Version string** : Default ` "dev" ` in ` internal/cli/root.go ` — injected via ldflags at build time, never edit manually
8282- ** Config storage** : ` ~/.openboot/ ` directory for auth, state, snapshots
8383
8484## ANTI-PATTERNS
@@ -93,24 +93,32 @@ cli (root)
9393## COMMANDS
9494
9595``` bash
96- make build # go build -o openboot ./cmd/openboot
97- make build-release # Optimized: -ldflags="-s -w" -trimpath + UPX
98- make test-unit # go test -v ./...
99- make test-integration # go test -v -tags=integration ./...
100- make test-e2e # go test -v -tags=e2e -short ./...
101- make test-all # All above + coverage
102- make clean # Remove binaries + coverage
103- go vet ./... # Lint check
96+ make build # Dev build (version=dev)
97+ make build VERSION=0.19.0 # Build with specific version
98+ make build-release VERSION=0.19.0 # Optimized + UPX with version
99+ make test-unit # go test -v ./...
100+ make test-integration # go test -v -tags=integration ./...
101+ make test-e2e # go test -v -tags=e2e -short ./...
102+ make test-all # All above + coverage
103+ make clean # Remove binaries + coverage
104+ go vet ./... # Lint check
104105```
105106
106107## RELEASE PROCESS
107108
108- 1 . Bump version in ` internal/cli/root.go `
109- 2 . ` git commit && git push `
110- 3 . Build: ` GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -o openboot-darwin-arm64 ./cmd/openboot `
111- 4 . ` gh release create vX.Y.Z openboot-darwin-arm64 openboot-darwin-amd64 checksums.txt `
109+ Tag-driven. CI handles everything. ** Never edit root.go for version bumps.**
112110
113- CI auto-releases on ` v* ` tags via ` .github/workflows/release.yml ` .
111+ ``` bash
112+ git tag v0.19.0
113+ git push --tags
114+ # CI builds binaries with version injected via ldflags, creates GitHub release
115+ ```
116+
117+ - Version is ` "dev" ` in source — overridden by ` -ldflags -X ` at build time
118+ - Dev builds (` version=dev ` ) skip auto-update
119+ - CI workflow: ` .github/workflows/release.yml ` extracts version from git tag
120+
121+ ** When to release** : Only for user-facing changes (features, bug fixes, package updates). Skip for docs, AGENTS.md, CI config, test-only changes.
114122
115123## NOTES
116124
0 commit comments