Contributing

Building requires Go 1.25.8 or later, Git, and Make:

git clone https://github.com/makkalot/caretz.git caretz
cd caretz
make setup
make build
make test
make lint

make setup downloads and tidies the Go modules and installs the pinned golangci-lint binary into ./bin; make lint uses that project-local binary so lint results do not depend on a developer’s PATH. make install copies the binary to ~/bin/caretz.

After changing documentation, run make doccheck. It checks every example against the real code.

Worktrees for feature work

To start isolated feature work, create a sibling worktree with a guided prompt:

make worktree

This creates feat/<name> from main under ../caretz-worktrees/. Use make worktree-from-branch to move the clean, currently checked-out feature branch into that layout, or make worktree-from-remote to fetch and track a branch from origin. Each command previews the operation before making changes; variables such as NAME, BRANCH, BASE, and WORKTREE_ROOT can supply or override its defaults.

Benchmarks

Benchmark tooling lives in the separate bench module with its own targets:

make build-bench
make test-bench