-
Notifications
You must be signed in to change notification settings - Fork 15
Developer Setup
Vinod Sathyaseelan edited this page Aug 14, 2025
·
3 revisions
This guide details the development environment setup for working with Ripple, including required tools, IDE configuration, and best practices.
-
Rust Toolchain
- Rust version 1.82.0 (current stable)
- Install using rustup
- Set default version:
rustup default 1.82.0
-
IDE Options
- Visual Studio Code (recommended)
- Neovim (alternative)
-
Essential Extensions
- Rust Analyzer
- LLDB Debugger
- GitLens (recommended)
-
Code Quality Tools
- clippy (Rust linter)
- rustfmt (code formatter)
- pre-commit hooks
For secure repository access, configure SSH keys:
-
Create separate SSH key pairs for different environments
-
Configure
~/.ssh/config:Host github.com Hostname github.com IdentityFile ~/.ssh/<private-key-oss> IdentitiesOnly yes User <github-username> -
Set environment variables:
export GH_OSS_NAME="<your-github-username>" export GH_OSS_EMAIL="<your-github-email>"
-
Rust Analyzer Settings Add to your user settings.json:
{ "rust-analyzer.check.command": "clippy", "rust-analyzer.checkOnSave.enable": true, "rust-analyzer.checkOnSave.command": "clippy" } -
Recommended Extensions
- rust-analyzer
- Better TOML
- CodeLLDB
- GitLens
- Error Lens
-
Pre-commit Hooks
# macOS brew install pre-commit # or using pip pip install pre-commit # Install hooks pre-commit install
-
Code Coverage Run before pushing changes:
./coverage.sh
-
Mock Device Testing
./run.sh mock
-
Sanity Tests
./run_sanity_on_mock_device.sh
For device testing, use the socat wrapper:
./socat.sh <device-ip> [as-host-ip]-
Code Quality
- Run
cargo fmtbefore commits - Address all clippy warnings
- Maintain test coverage
- Follow Rust API Guidelines
- Run
-
Git Workflow
- Use meaningful commit messages
- Keep changes focused and atomic
- Update documentation with code changes
- Run tests before pushing
-
Documentation
- Document public APIs
- Keep README files updated
- Include examples for complex features
© 2025 RDK Management, LLC (and contributors). Firebolt® is a registered mark of its owner.