This page is for contributor workflows. Keep the repository root README for installation and product usage, and use docs/ for deeper operational material.
make fmt
make lint
make test
make test-review-ui
make preview-review-ui
make check
make ci
make build
make release VERSION=v0.1.0make check is the main local developer gate. It currently:
- validates Go file layout
- checks
gofmt - runs
go vet - runs
go test ./...
make deploy remains an alias for make release.
Use make test-review-ui when you are changing the interactive dataset review experience. It runs the focused CLI tests that cover:
- line-oriented
cleanr dataset review -interactive - the Bubble Tea review model and structured terminal layout
Use make preview-review-ui when you want to launch the live review UI locally against a canned dataset and inspect the terminal experience directly.
If your local Homebrew Go toolchain lives somewhere other than /opt/homebrew/opt/go/libexec, override:
make test-review-ui UI_GOROOT=/path/to/go UI_GOPATH=$HOME/go
make preview-review-ui UI_GOROOT=/path/to/go UI_GOPATH=$HOME/gomake ci is the local parity command for .github/workflows/ci.yml. It runs:
- changed-file test-presence validation against your local base ref
gofmtdrift checksgo vetcodeguardgo test ./...on the current OS- the Linux amd64 snapshot build
- the internal coverage gate
govulnchecksemgrep scan --config auto --baseline-commit <merge-base> --error- doc review and DCO checks when the base branch is
develop
Local behavior differs from hosted GitHub Actions in two places:
- the test suite runs only on your current OS instead of the GitHub Ubuntu and macOS matrix
- PR-only checks use a local Git base ref, resolved from
CLEANR_CI_BASE_REF,PR_BASE_REF, your upstream branch, or commonorigin/*defaults - the
govulncheckstep is skipped with a warning when the scanner cannot be installed for your local Go toolchain - the
semgrepstep is skipped with a warning when thesemgrepbinary is not installed locally
Legacy devtools compatibility notes:
Runner.CodeGuard,Runner.CISCC, andRunner.CIGolangCILintremain exported only as compatibility shims for older callers- new code should use the package-backed CodeGuard path via
Runner.PackageCodeGuardor the normalRunner.CIflow instead
Set CI_BASE_REF=<ref> when you want to force the comparison target, for example make ci CI_BASE_REF=origin/develop.
make buildwrites the CLI binary todist/cleanrmake release VERSION=vX.Y.Zwrites release artifacts todist/releases/<version>/make homebrew-formula ...writesdist/releases/<version>/cleanr.rb
The detailed release pipeline now lives in release-automation.md. Use that page for:
- Release Please metadata
- branch-driven prerelease automation
- tagged GitHub Releases
- GHCR publishing
- Homebrew tap sync