Contributing
Build, test, lint, and PR checklist for working on Pinax itself.
Pinax is MIT-licensed Go. Pull requests are welcome - the full contributor
policy lives in CONTRIBUTING.md
and the code of conduct in CODE_OF_CONDUCT.md.
This page is the short version.
Prerequisites
- Go 1.25 or newer.
golangci-lint(formake lint).govulncheck(formake vulncheck).
Optional: Node 22 + pnpm 9 if you want to work on the website.
Building
git clone https://github.com/desmondsanctity/pinax.git
cd pinax
make build
# binary lands at ./bin/pinax
Put ./bin/pinax first on your $PATH while iterating, or symlink it into
/usr/local/bin/ once.
Test, lint, vet
make test # go test -race ./...
make lint # golangci-lint
make vulncheck # govulncheck
make vet # go vet ./...
make fmt # gofmt -s -w .
Network-touching integration tests are tagged and only run when you ask:
make test-integration
CI runs the full matrix on every PR.
PR checklist
Before you open a pull request:
-
make test,make lint,make vetall green. - New behaviour covered by a unit test (table-driven if it makes
sense). Network-touching paths get an
_integration_test.gofile. - Public-API changes are reflected in
README.mdand in the matching page underwebsite/src/content/docs/. - Conventional Commits in the PR title (
feat:,fix:,chore:,docs:,test:,refactor:). - If you changed the catalog, run
pinax catalog listlocally to sanity-check the JSON.
Reporting bugs
Open an issue with:
- The exact command you ran.
- The full output (paste it as a fenced code block; redact tokens if any).
- Your OS / arch and
pinax --version.
Security
Don’t open a public issue for vulnerabilities. Use GitHub Security
Advisories - see SECURITY.md
for the full policy.