Contributing¶
Thank you for your interest in contributing to CRP.
Getting Started¶
- Fork the repository
- Branch from
main - Make your changes
- Update
CHANGELOG.md - Submit a Pull Request
Development Setup¶
git clone https://github.com/YOUR_USERNAME/context-relay-protocol.git
cd context-relay-protocol
pip install -e ".[dev]"
Pull Request Requirements¶
- Branch from
main - Update
CHANGELOG.mdwith your changes - 1 maintainer approval required (2 for specification changes)
- All existing tests must pass
RFC Process¶
Breaking changes or specification modifications require an RFC:
- Create an RFC document in
rfcs/ - 14-day discussion period
- Unanimous maintainer approval required
- Implementation follows after RFC acceptance
Issue Templates¶
| Template | Use For |
|---|---|
| Spec Clarification | Ambiguous specification language |
| Feature Request | New capabilities or improvements |
| Bug Report | Implementation bugs or test failures |
Commit Format¶
Use Conventional Commits:
feat: add streaming event for extraction progress
fix: correct envelope saturation calculation
docs: update quickstart guide
rfc: propose new dispatch strategy
| Prefix | Use For |
|---|---|
feat: |
New features |
fix: |
Bug fixes |
docs: |
Documentation changes |
rfc: |
RFC proposals |
test: |
Test additions or fixes |
refactor: |
Code restructuring |
Style Guide¶
- Use RFC 2119 language for specification text (MUST, SHOULD, MAY)
- JSON Schemas follow Draft 2020-12
- Python code follows the project's existing style
License¶
- Specification: CC BY-SA 4.0
- Code: Elastic License 2.0 (ELv2)
By contributing, you grant an irrevocable license under these terms. See LICENSE.md for details.
Code of Conduct¶
This project follows a Code of Conduct. See CODE_OF_CONDUCT.md.
Security¶
Report security vulnerabilities via email or GitHub Security Advisories — not via public issues. See Security for details.