Skip to content

Latest commit

 

History

History
29 lines (20 loc) · 1.09 KB

CONTRIBUTING.md

File metadata and controls

29 lines (20 loc) · 1.09 KB

Contributing

Thanks for helping. Issues and pull requests are welcome.

Setup

uv sync
uv run pytest
uv run ruff check . && uv run ruff format --check .

ffmpeg and ffprobe with HTTPS support are needed for the live end-to-end check:

uv run python scripts/e2e_smoke.py /tmp/broll-e2e

Ground rules

  • Be polite to archive.org. Every request goes through ArchiveClient, which applies the User-Agent, the rate limit and the request log. Don't add direct HTTP calls, and keep unit tests offline by using httpx.MockTransport.
  • Never guess a license. Labels come only from the exact URL table in catalog.py. Unknown values stay unknown.
  • Keep provenance atomic. A clip file must never exist without its provenance JSON and database row.
  • Keep responses small. Tool output is read by a model, so every field should earn its tokens.
  • Behavior changes that affect tools, outputs or limits also update README.md.

Pull requests

Keep each PR focused and add tests for any behavior you change. CI runs the tests and the lint check on Python 3.12 and 3.13.