Contributing¶
The full guide lives in CONTRIBUTING.md. This is the short version.
Setup¶
Requires Go 1.25+ and golangci-lint v2.
Install golangci-lint before you push. go vet and go test catch less than CI
does — the lint step adds revive, gosec, errorlint and bodyclose. Without it on your
PATH, make lint fails open and you learn about a violation from a red PR instead of
from your terminal.
Tests¶
Unit tests run anywhere. Integration tests are behind the integration build tag and
need a Docker host with gVisor registered as runsc:
CI currently compiles the integration tests but does not run them — a gap tracked in #3. A test that no longer builds is a test nobody runs, so keep them compiling even when you cannot execute them locally.
Working on the docs¶
The docs are markdown in docs/, so a change to behaviour and the change to its
documentation belong in the same pull request.
Commits¶
Conventional Commits — CI enforces it, and releases are cut from it.
feat(sandbox): add per-command timeout clamping
fix(docker): drop CAP_NET_RAW on create
docs: explain the egress default
Where to start¶
Issues labelled good first issue,
or anything in the open backlog that looks like your kind of problem. If you are
planning something substantial, open an issue first so the design can be discussed
before you spend the effort.