Thank you for considering contributing to Floxide! This document provides guidelines and instructions for contributing to the project.
By participating in this project, you agree to abide by our Code of Conduct.
- Ensure the bug was not already reported by searching on GitHub under Issues.
- If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description, as much relevant information as possible, and a code sample or an executable test case demonstrating the expected behavior that is not occurring.
- Check if the enhancement has already been suggested by searching on GitHub under Issues.
- If it hasn't, create a new issue with a clear title and description of the suggested enhancement.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Clone your fork of the repository
- Install Rust (if not already installed) using rustup
- Navigate to the project directory and run
cargo buildto build the project
- Follow the Rust API Guidelines
- Use
cargo fmtto format your code - Ensure your code passes
cargo clippywithout warnings - Write tests for new features or bug fixes
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line
- Update the README.md with details of changes to the interface, if applicable
- Update the documentation in the code using rustdoc comments
- For significant architectural decisions, create or update an ADR in the
docs/adrsdirectory
For significant architectural changes, we use ADRs to document the decision-making process. If your contribution involves an architectural decision:
- Create a new ADR in the
docs/adrsdirectory following the template - Reference the ADR in your pull request
- Ensure the ADR is reviewed along with your code changes
- Write tests for all new features and bug fixes
- Run the existing test suite with
cargo testto ensure your changes don't break existing functionality - For performance-critical code, consider adding benchmarks
If you have any questions or need help with the contribution process, feel free to open an issue with your question.