We welcome contributions from everyone. This document explains how to get involved.
- Bug reports — found something broken? Open an issue
- Feature requests — have an idea? Suggest it
- Code — fix a bug or implement a feature (see below)
- Documentation — improve docs, fix typos, add examples
# Clone
git clone https://github.com/structured-world/coordinode.git
cd coordinode
# Build
cargo build
# Run tests
cargo test --workspace
# Run with Clippy (must pass with zero warnings)
cargo clippy --all-targets --all-features -- -D warningsRequires Rust 1.82+.
- Fork the repository
- Create a feature branch (
feat/descriptionorfix/description) - Make your changes
- Ensure all checks pass:
cargo check --workspacecargo clippy --all-targets --all-features -- -D warnings(zero warnings)cargo test --workspace(all tests pass)
- Write a clear commit message following Conventional Commits
- Open a pull request with a description of what changed and why
- Rust — follow
rustfmtdefaults and Clippy recommendations pub(crate)by default — explicitpubonly for public APIResult<T, E>everywhere — nounwrap()on I/O paths- Tests for every function — happy path + error path at minimum
By submitting a pull request, you agree that your contributions are licensed under the same license as the project (AGPL-3.0-only). You retain copyright of your contributions.
We use a lightweight CLA to ensure all contributions can be distributed under the project license. The CLA bot will guide you through signing on your first PR.
Be respectful. We don't have a formal code of conduct document, but we expect professional behavior. Harassment, discrimination, and bad faith arguments are not tolerated.
Open a question issue or reach out at oss@sw.foundation.