Thanks for your interest in contributing! 🎉 This document outlines the process and guidelines to help you contribute effectively. If you have any questions, feel free to reach out via Telegram or Discord.
- Fork the repository and clone your fork locally.
- Set up your development environment:
git clone https://github.com/1sixtech/mojave.git cd mojave cargo build - Run the test suite to make sure everything works:
cargo test
- Use GitHub Issues to report bugs, or suggest features.
- Before creating a new issue, search existing ones to avoid duplicates.
- Provide clear steps to reproduce bugs, expected vs actual behavior, and environment info.
- Keep PRs focused — one change per PR is ideal.
- The PR title should follow Conventional Commits format:
fix: ...for bug fixesfeat: ...for new featureschore: ...for maintenance tasksrefactor: ...for code improvements without changing functionalitytest: ...for adding or updating testsdocs: ...for documentation changesperf: ...for performance improvements
- Add tests for new functionality or bug fixes.
- Ensure
cargo testandcargo fmt -- --checkpass before submitting.
- Follow Rust API Guidelines.
- Read PROJECT_STRUCTURE, for more details on the codebase structure.
- Run
cargo fmtandcargo clippybefore pushing. - Prefer small, composable functions and explicit error handling.
- Create a feature branch:
git checkout -b feature/my-new-feature
- Commit your changes.
- Push to your fork:
git push origin feature/my-new-feature
- Open a Pull Request against main.
- Use our communication channels for open-ended ideas.
- For major features, open an issue first to align before coding.
- Be respectful and constructive in discussions.
By contributing, you agree that your contributions will be licensed under the same license as the project.