Contributing¶
obslog is governed by a single source of truth: PRODUCT.md. Please read it before
contributing. The full contribution guide lives in
CONTRIBUTING.md; the
essentials:
Ground rules¶
- Trace your work to a requirement. Reference the
PRODUCT.mdrequirement ID(s) your change implements or modifies (e.g.FR-001,NFR-PERF-002). If nothing covers your need, amendPRODUCT.mdfirst, then build. - Respect the constitution.
PRIN-002(strictly domain-agnostic) andPRIN-008(never call an LLM) are non-negotiable. - Contracts are expensive. Changes to a frozen public API (
API-*) or the Record schema (SCHEMA-*) require an ADR and must follow the versioning policy.
Development¶
python -m pip install -e ".[dev]"
ruff check .
ruff format --check .
mypy
pytest --cov
- Public API must pass strict type checking and be fully typed and documented.
- New behavior needs tests; prefer property-based tests for processors/formatters.
- Add a
CHANGELOG.mdentry under Unreleased.
Benchmarks¶
pytest tests/benchmarks -m benchmark