Apache-2.0 license with CLA for dual-licensing. Lefthook enforces Signed-off-by on all commits. AGENTS.md updated with new modules. Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io> Signed-off-by: Sienna Meridian Satterwhite <sienna@sunbeam.pt>
2.1 KiB
2.1 KiB
Contributing to Sunbeam Proxy
We're a small team and we welcome contributions. Here's what you need to know.
Contributor License Agreement
All contributions require a signed CLA. Read CLA.md for the full text.
The short version: you keep ownership of your code, but you grant Sunbeam Studios the right to license it under any terms (including commercial). This lets us offer dual licensing while keeping the project Apache-2.0 for everyone.
How to sign
Add Signed-off-by to every commit:
git commit -s -m "feat(proxy): add cool thing"
This is enforced by a lefthook commit-msg hook. Set up lefthook:
lefthook install
If you forget, amend your commit:
git commit --amend -s
Development Setup
# Install Rust (if you haven't)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Clone and build
git clone https://src.sunbeam.pt/studio/proxy.git
cd proxy
cargo build
# Run tests
cargo nextest run
# or
cargo test
# Local dev server
SUNBEAM_CONFIG=dev.toml RUST_LOG=info cargo run
Making Changes
- Fork the repo and create a branch
- Make your changes
- Run
cargo check,cargo test, andcargo clippy -- -D warnings - Commit with conventional commit messages and
Signed-off-by - Open a pull request
Commit Messages
We use conventional commits:
feat(proxy): add WebSocket compression support
fix(cache): respect Vary header in cache key
docs: update configuration reference
test: add proptests for rate limiter
Code Style
cargo fmtfor formattingcargo clippy -- -D warningsfor lints- No
unwrap()in production paths #[serde(default)]on new config fields for backwards compatibility- Read the file before you edit it
Reporting Issues
Open an issue at src.sunbeam.pt/studio/proxy/issues.
License
By contributing, you agree that your contributions will be licensed under the Apache License 2.0, and that you grant additional rights as described in CLA.md.