Skip to content

Latest commit

 

History

History
54 lines (45 loc) · 2.25 KB

File metadata and controls

54 lines (45 loc) · 2.25 KB

Contributing

Thanks for considering a contribution to logquill. This project also follows a Code of Conduct — participation in issues, PRs, and discussions means agreeing to abide by it.

Setup

python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev,http,hooks]"
pre-commit install

ruff check .
mypy logquill
pytest
pytest benchmarks   # memory budgets for the logging hot path

pytest benchmarks measures how much memory a log call and a stalled-sink burst use, and fails if a change pushes either past its budget in benchmarks/measure.py. It's separate from pytest because coverage's line tracing distorts the numbers; CI runs it as its own job. If a change legitimately needs more memory, raise the budget in the same PR and say why.

Pull request strategy

  • Branch from main, name branches by intent: feat/…, fix/…, docs/…, chore/… (e.g. feat/rotating-file-transport).
  • Keep PRs scoped to one concern where possible. A PR that mixes an unrelated refactor with a feature is harder to review and harder to revert.
  • Every PR must satisfy this definition of done before it's ready for review:
    1. Type hints throughout, mypy --strict clean on the public API
    2. Unit tests cover the new surface; existing tests still pass
    3. Public API additions documented in the README with a runnable example
    4. CHANGELOG.md has an entry under Unreleased
    5. Nothing in the cross-language contract table silently diverged from logquill-js (open a tracking issue there if it changed) — if you change the record shape, change schema/record.schema.json and schema/golden_records.json together (see schema/README.md)
  • CI must be green (ruff check, mypy logquill, pytest, pytest benchmarks) and at least one review approval is required before merge — enforced by branch protection on main.
  • Squash-merge into main — keep the squash commit message a clear summary of the change; per-commit history within a PR branch doesn't need to be clean.
  • Commit messages and PR titles: imperative mood, e.g. "Add rotating file transport" not "Added" or "Adds".

Reporting issues

Bug reports and feature requests are welcome via GitHub issues.