Thanks for contributing.
This repository validates API parity and runs framework benchmarks. Keep changes focused on one of these areas:
- parity contract (
test/fixtures/parity) - parity runner (
cmd/parity-test) - benchmark orchestration (
scripts,Makefile,docker-compose.yml) - docs (
docs/,README.md,METHODOLOGY.md)
- Go 1.25.7+
- Docker + Docker Compose (for local service runs)
- GNU Make
- Python 3
pytestandpytest-covbats(bats-core)jsonschemaPython package
Bootstrap local dependencies:
bash scripts/setup-dev-env.shOptional targeted setup modes:
# CI-friendly install flow
bash scripts/setup-dev-env.sh --ci --subset core,python-test,shell-test,benchmark-tools
# Makefile wrappers
make setup-dev-env
make setup-dev-env-ci-scriptsRun these before opening a PR:
go test ./...
make test-coverage
make test-scripts
TARGET=http://localhost:3001 bash scripts/parity-check.shFor patch coverage against origin/main:
make test-patch-coverageIf you changed scripts, also run shell linting if available:
shellcheck scripts/*.shIf you changed benchmark artifacts or report generation, also run schema validation:
make benchmark-schema-validate
make ci-benchmark-quality-check- Create a branch from
main. - Keep changes atomic and add/update tests when behavior changes.
- Run local validation commands.
- Fill out
.github/pull_request_template.md. - Link relevant issues with
Resolves #<number>.
- Do not benchmark a framework before parity passes for that target.
- Do not change matcher semantics (
@any_number,@is_iso8601) without updating fixtures and design docs. - Keep fixture files endpoint-scoped (
users-*,health) instead of creating a single large fixture file.
Use Conventional Commits when possible:
feat:new functionalityfix:bug fixdocs:documentation onlytest:tests onlychore:tooling/build/CI