Thank you for considering contributing to soop! This document provides guidelines for contributing to the project.
- Rust 1.85 or later
- Git
- A Unix-like environment (macOS, Linux, etc.)
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/soop.git cd soop - Build the project:
cargo build
- Run tests:
cargo test
Before creating a bug report, please check existing issues to avoid duplicates.
When filing a bug report, include:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected behavior
- Actual behavior
- Your environment (OS, Rust version, etc.)
- Relevant logs or error messages
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, include:
- A clear, descriptive title
- Detailed description of the proposed feature
- Explanation of why this enhancement would be useful
- Any relevant examples or mockups
-
Create a new branch for your feature or fix:
git checkout -b feature/your-feature-name
-
Make your changes following the code style guidelines below
-
Test your changes:
cargo test cargo clippy cargo fmt --check -
Commit your changes with a clear commit message:
git commit -m "Add feature: description of your changes" -
Push to your fork:
git push origin feature/your-feature-name
-
Open a Pull Request with:
- Clear description of the changes
- Reference to related issues
- Screenshots or examples if applicable
- Follow the standard Rust formatting style (use
cargo fmt) - Run
cargo clippyand address warnings - Write clear, descriptive variable and function names
- Add comments for complex logic
- Keep functions focused and reasonably sized
- Use present tense ("Add feature" not "Added feature")
- Use imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests when relevant
Example:
Add duplicate validation for host names
- Check for existing hosts when adding new entries
- Prompt user to enter different name if duplicate found
- Add tests for validation logic
Fixes #123
- Write tests for new features
- Ensure existing tests pass before submitting PR
- Test on macOS if possible (primary supported platform)
- Update README.md if adding new features or changing usage
- Add inline documentation for public functions
- Update examples if behavior changes
- Be respectful and inclusive
- Welcome newcomers and help them get started
- Focus on constructive feedback
- Assume good intentions
Feel free to open an issue for questions or discussion about potential contributions.
By contributing to soop, you agree that your contributions will be licensed under the MIT License.