Files
proxy/CONTRIBUTING.md
Sienna Meridian Satterwhite 0baab92141 docs: add project README, reference docs, license, CLA, and contributing guide
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>
2026-03-10 23:38:20 +00:00

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

  1. Fork the repo and create a branch
  2. Make your changes
  3. Run cargo check, cargo test, and cargo clippy -- -D warnings
  4. Commit with conventional commit messages and Signed-off-by
  5. 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 fmt for formatting
  • cargo clippy -- -D warnings for 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.