pactbench / CONTRIBUTING.md
BBoran's picture
Publish current portable PACTBench release
f1fc3a0 verified
|
Raw
History Blame Contribute Delete
1.78 kB

Contributing to PACTBench

Development setup

python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt

Before submitting a change, run:

PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests -v
python3 pact/validate_pactbench.py --require_v5

Shell entry points must also pass bash -n.

Code and experiment changes

  • Put shared Python implementation in pact/.
  • Keep per-game files in games/<game>/ as thin wrappers and configuration.
  • Do not hand-edit published aggregate values in registry/registry.json.
  • A result is publishable only when its code, configuration, ordered rows, metrics, model identity, and source identities are available to the gate.
  • Keep unreviewed runs outside the published registry and README results. Follow the review-isolation procedure in docs/MAINTAINERS.md.

Repository hygiene

Do not commit:

  • API keys, access tokens, private endpoints, or credential files;
  • machine-specific absolute paths in code or documentation;
  • raw caches that can be rebuilt from documented inputs;
  • internal reviews, meeting notes, temporary reports, or backup copies;
  • new headline numbers that have not passed maintainer review.

Use environment variables for model paths, service URLs, and credentials. Keep one canonical implementation for every runnable tool; avoid copied scripts that can silently diverge.

Documentation

Update the narrowest relevant document. Dataset facts belong in docs/DATA.md, experiment definitions and results in docs/EXPERIMENTS.md, commands in docs/REPRODUCE.md, and game-specific entry points in the corresponding game README. Historical reasoning and future experiment wish lists do not belong in the release documentation.