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
```bash
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt
```
Before submitting a change, run:
```bash
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.