First off, thank you for considering contributing to cli_engineer! We welcome any help, from bug reports and feature requests to code contributions. This document provides guidelines to help you get started.
The setup process is straightforward. You can get the project up and running with a few commands:
# 1. Clone the repository
git clone https://github.com/trilogy-group/cli_engineer.git
# 2. Navigate to the project directory
cd cli_engineer
# 3. Build the project
cargo build
# 4. Run the tests to ensure everything is working
cargo testWe recommend following this process for contributions:
- Fork the repository on GitHub.
- Create a new branch for your feature or bugfix. Use a descriptive name, like
feat/new-providerorfix/ui-rendering-bug.git checkout -b feat/your-awesome-feature
- Make your changes. Write clean, readable, and well-documented code.
- Format and lint your code. We use standard Rust tooling to maintain code quality.
# Auto-format the code cargo fmt # Run the linter to catch common issues cargo clippy -- -D warnings
- Ensure all tests pass before submitting your changes.
cargo test - Commit your changes with a clear and concise commit message.
- Push your branch to your forked repository.
- Open a Pull Request (PR) to the
mainbranch of the originalcli_engineerrepository.- Provide a clear title and description for your PR.
- Explain the "why" and "what" of your changes.
- If your PR addresses an existing issue, link to it (e.g.,
Fixes #123).
- Follow Rust best practices: Adhere to the guidelines in The Rust API Guidelines.
- Modularity: The project is structured into modules with specific responsibilities (e.g.,
planner,executor,providers). New functionality should follow this pattern. - Asynchronous Code: We use
tokiofor asynchronous operations. Ensure your async code is efficient and non-blocking. - Error Handling: Use
anyhow::Resultfor functions that can fail, providing context to errors. - Comments: Add comments to explain complex logic, design decisions, or anything that isn't immediately obvious from the code itself.
By participating in this project, you agree to abide by our Code of Conduct. We are committed to providing a welcoming and inclusive environment for everyone. Please be respectful and considerate in all interactions.
Thank you for your contribution!