Contributing¶
Thank you for contributing to Palfrey.
Contributions are welcome across code, docs, tests, benchmarks, and issue triage.
Ways to help¶
- report bugs with clear reproduction steps
- improve docs and examples
- add tests for uncovered behavior
- improve performance with reproducible benchmarks
- review pull requests and discussions
Before opening work¶
Start with a discussion or issue when possible, especially for behavior changes.
Please include:
- platform and Python version
- exact command used
- full traceback/log output
- minimal reproduction code
Development setup¶
git clone https://github.com/dymmond/palfrey
cd palfrey
pip install hatch
hatch env create
hatch env create test
hatch env create docs
Quality gates¶
Run before opening a PR:
task lint
task format-check
task check-types
task test
hatch run docs-build
Tests¶
hatch run test:test
Single test example:
hatch run test:test tests/protocols/test_websocket_protocol.py
Documentation workflow¶
Docs live under docs/en/docs.
Runnable examples live under docs_src and are included in docs pages.
Build docs:
hatch run docs-build
Pull request checklist¶
- behavior is covered by tests
- docs are updated for user-visible changes
- benchmark claims include reproducible commands/results
- changelog entry added when appropriate
Code review expectations¶
Focus areas:
- correctness and regressions
- compatibility behavior
- operational safety
- clarity and maintainability
Community standards¶
- be respectful and precise
- assume good intent
- keep feedback actionable
Non-technical summary¶
Contribution quality matters more than contribution size. Small, well-tested improvements are highly valuable.