Getting Started
Thank you for considering contributing to Flow-Like! This document outlines the guidelines and best practices for contributing to this mostly Tauri-based project. Our application leverages Rust for the backend (via Tauri) and [Next.js/Astro] for the frontend. To ensure consistency and quality, please follow the practices below when contributing.
Getting Started
- Prerequisites:
- Install Rust
- Install Bun
- Tauri Prerequisites
- Install Additional Dependencies (e.g Protobuf)
- Linux:
protobuf-compiler, clang
- MacOS:
brew install protobuf
- Linux:
- Fork the Repository: Fork the repository to your GitHub account and clone it locally.
git clone https://github.com/your-username/flow-like.gitcd flow-like
- Install Dependencies:
bun install
- Run the Project:
- Desktop App:
bun run dev:desktop
- Docs:
bun run dev:docs
- Desktop App:
Code of Conduct
We aim to maintain a welcoming community. Please adhere to our Code of Conduct in all interactions.
How to Contribute
- Check Issues: Look for open issues labeled
good first issue
orhelp wanted
to get started. - Create an Issue: If you have a feature idea or a bug report, open an issue to discuss it first.
- Branching: Create a new branch for your work:
git checkout -b feature/your-feature-name
- Commit Messages: Write clear, concise commit messages (e.g “Add user authentication to backend” or “Fix button alignment in UI”)
Rust Guidelines
The core library of this project is written in Rust. Follow these best practices to ensure maintainability and performance.
General Practices
- Modularity: Organize code into modules (e.g., lib.rs, main.rs, or subdirectories like src/commands/).
- Error Handling: Error Handling: Use
Result
andOption
appropriately, avoidingunwrap()
in production code. Prefer explicit error types with anyhow. - Safety: NO unsafe code or dependencies using unsafe code.
- Dependencies: Keep external crates minimal and well-vetted. Update
Cargo.toml
accordingly.
Formatting and Linting
- cargo fmt: Run
cargo fmt
before committing to enforce consistent Rust formatting. - Clippy: Use
cargo clippy
to catch common mistakes and improve code quality. Resolve all warnings unless explicitly justified.
# Please check the changes before committingcargo clippy --fix