Contributing to Synbot
February 27, 2026 · View on GitHub
Thank you for your interest in contributing to Synbot. This document provides guidelines and instructions for contributing.
Code of Conduct
This project adheres to a Code of Conduct. By participating, you are expected to uphold this code.
How to Contribute
Reporting Bugs
- Search existing issues to avoid duplicates.
- Use the bug report template and include:
- Clear description and steps to reproduce
- Your environment (OS, architecture, Rust version)
- Relevant logs or error messages
Suggesting Features
- Open an issue with the feature request template.
- Describe the use case and expected behavior.
- Discussion is welcome before implementation.
Pull Requests
-
Fork the repository and create a branch from
main:git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix -
Set up the development environment:
# Clone your fork, then: cd synbot # Build cargo build # Run tests cargo test # Optional: run benchmarks cargo bench -
Make your changes:
- Follow existing code style and naming conventions.
- Add or update tests as needed.
- Update documentation if behavior or APIs change.
-
Verify before submitting:
cargo test cargo clippy cargo fmt -- --check -
Commit with clear, conventional messages:
feat: add Xfix: resolve Ydocs: update Z
-
Push to your fork and open a Pull Request:
- Fill in the PR template.
- Link related issues if applicable.
- Ensure CI passes.
Development
Prerequisites
- Rust (edition 2021; check
rust-toolchainorCargo.tomlif present) - For sandbox-related work: platform-specific tools (e.g., Docker, gVisor, nono.sh) as described in the README
Running Tests
cargo test
Code Style
- Format code with
cargo fmt. - Run
cargo clippyand address warnings where reasonable.
Project Structure
src/— main application and library codetests/— integration testsexamples/— example usagetools/benches/— benchmarks;tools/benches/scripts/— benchmark scriptsdocs/— documentation and assets
License
By contributing, you agree that your contributions will be licensed under the same license as the project (MIT).