Contributing to Dev-Toolbox
We welcome contributions to the Dev-Toolbox! This guide will help you get started with adding new tools or improving existing ones.
Getting Started
- Fork the repository on GitHub.
- Clone your fork locally.
- Create a new branch for your feature or bugfix.
Development Environment
- Rust: Ensure you have the latest stable Rust version installed.
- SQLite: The project uses
rusqlitewith thebundledfeature, but you may needlibsqlite3-devon Linux for CI consistency. - Format & Lint:
- Run
cargo fmtto format code. - Run
cargo clippy -- -D warningsto check for common mistakes.
- Run
Creating a New Tool
All tools must implement the Tool trait.
- Implement the Trait:
#![allow(unused)] fn main() { impl Tool for MyTool { fn name(&self) -> &'static str { "My Tool" } fn render(&self, f: &mut Frame, area: Rect) { ... } fn handle_input( &mut self, key: KeyEvent, ) -> ToolFuture<'_> { Box::pin(async move { Ok("Success".into()) }) } } } - Configuration: Use the
Configstruct to avoid hardcoding paths. - Lazy Loading: If your tool requires heavy data loading, use
tokio::spawnto load data in the background and show a loading state inrender.
CI Pipeline
Every Pull Request triggers a CI pipeline that runs:
cargo buildcargo testcargo fmt --checkcargo clippy- Spellcheck (
typos)
Please ensure all checks pass before requesting a review.
Submitting Your Contribution
- Commit your changes with a clear and descriptive message.
- Push to your fork.
- Create a Pull Request against the
mainbranch.