Thank you for your interest in contributing to the svmai CLI tool! This document provides guidelines and instructions for contributing to the project.
By participating in this project, you agree to maintain a respectful and inclusive environment for everyone.
There are many ways to contribute to svmai-cli:
- Reporting Bugs: If you find a bug, please create an issue with a detailed description.
- Suggesting Enhancements: Have an idea for a new feature? Open an issue to discuss it.
- Code Contributions: Submit pull requests for bug fixes or new features.
- Documentation: Help improve or translate documentation.
- Testing: Help test the application on different platforms.
- Rust and Cargo (latest stable version)
- Git
- Build essentials (for your platform)
- OpenSSL development libraries
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR-USERNAME/svmai-cli.git cd svmai-cli - Add the upstream repository as a remote:
git remote add upstream https://github.com/openSVM/svmai-cli.git
- Create a new branch for your changes:
git checkout -b feature/your-feature-name
- Build the project:
cargo build
- Run tests:
cargo test
- Make your changes in your feature branch
- Add tests for your changes
- Run the test suite to ensure everything passes:
cargo test - Format your code:
cargo fmt
- Run clippy to catch common mistakes:
cargo clippy
- Commit your changes with a descriptive commit message:
git commit -m "Add feature: description of your changes" - Push your branch to your fork:
git push origin feature/your-feature-name
- Submit a pull request to the main repository
- Include a clear description of the changes
- Link to any related issues
- Include tests for new functionality
- Ensure all tests pass
- Follow the project's code style
- Keep pull requests focused on a single topic
- Follow Rust's official style guide
- Use
cargo fmtto format your code - Use
cargo clippyto catch common mistakes - Write clear, descriptive comments
- Document public API functions with rustdoc comments
- Write unit tests for all new functionality
- Ensure existing tests continue to pass
- Consider edge cases in your tests
- For UI changes, include manual testing steps
- Update documentation for any changed functionality
- Document new features thoroughly
- Use clear, concise language
- Include examples where appropriate
The project maintainers will handle the release process, which includes:
- Updating the version number
- Creating a changelog entry
- Building and publishing releases
- Announcing the new release
If you need help with the contribution process, feel free to:
- Open an issue with your question
- Reach out to the maintainers
Thank you for contributing to svmai-cli!