1.5 KiB
1.5 KiB
Contributing Guidelines
Determinism First
- Pin all dependencies (lockfiles, hashes, image digests).
- Set
SOURCE_DATE_EPOCHand fixed seeds in build/test scripts. - No network during builds/tests; use vendored toolchains.
Cases
- Place cases under
cases/<lang>/<project>/. - Include:
Dockerfile(deterministic build, no network after context stage)- Locked dependency file (e.g.,
package-lock.json,requirements.txt,pom.xmlwith exact versions) - Oracle tests proving reachability label
- Coverage/artifact outputs for verification
README.mdwith case description, expected sink(s), build/run instructions
- Add SPDX license headers where required; attribute third-party code in
THIRD_PARTY.mdinside the case folder.
Schemas
- Keep schemas in
schemas/; update scorer tests when schemas change. - Provide JSON Schema drafts with
$idand versioning.
Scorer
tools/scorer: add unit tests for scoring math, schema validation, determinism (same input -> same output).- No network, no telemetry.
Baselines
- Normalize outputs to submission schema.
- Document tool versions and invocation commands.
CI
- Workflows must be deterministic; avoid
latesttags; prefer cached toolchains.
Submitting Changes
- Run relevant tests (
rb-scoretests, schema validation, case oracles) before opening a PR. - Update
docs/implplan/SPRINT_0513_0001_0001_public_reachability_benchmark.mdstatuses. - Add Execution Log entry if scope or contracts change.