Contributor validation
Run commands from the repository root. Contribution requirements and repository engineering rules remain in CONTRIBUTING.md, AGENTS.md, and cpp_conventions.md. Those files define the required checks and scoped exceptions. This chapter explains how to run the SDK validation tools.
SDK checks
./scripts/install_build_deps.sh
./scripts/verify_changes.sh
The verifier runs formatting, build, CTest and split clang-tidy profiles. For PostgreSQL, start a local database and set:
A2A_TEST_POSTGRES_DSN=postgresql://a2a:a2a@127.0.0.1:5432/a2a \
A2A_VERIFY_POSTGRES=1 ./scripts/verify_changes.sh
For optional signing, also set A2A_VERIFY_SIGNING=ON and install OpenSSL 3.0+
and simdjson 3.0+. Live TLS fixtures additionally require Python, libcurl, nginx
and the OpenSSL CLI; use ./scripts/install_security_test_deps.sh.
Tests that require an unavailable backend explicitly skip.
Coverage
python3 -m pip install --upgrade gcovr
./scripts/run_coverage.sh
This enforces:
src/coreline coverage >= 85%src/clientline coverage >= 80%src/serverline coverage >= 80%
Additional profiles
- ThreadSanitizer targets SDK-owned synchronization.
- Upstream conformance is separate from SDK tests and preserves skipped/untested requirements.
- Microbenchmarks, workload tests and benchmark reports explain performance evidence.
Documentation-only changes use the scoped rules in AGENTS.md. Build the book
with mdbook build book and check moved links before publishing.