📝 docs(guide): add CONTRIBUTING.md
- introduce guidelines for contributing to cull-gmail - include sections on code of conduct, how to contribute, and development setup - provide coding standards, commit message conventions, and testing requirements - explain licensing terms for contributions under MIT License
This commit is contained in:
committed by
Jeremiah Russell
parent
3d6c3c42ff
commit
c915e89e25
107
CONTRIBUTING.md
Normal file
107
CONTRIBUTING.md
Normal file
@@ -0,0 +1,107 @@
|
||||
# Contributing to cull-gmail
|
||||
|
||||
Thank you for your interest in contributing to cull-gmail! We welcome contributions from the community and appreciate your help in making this project better.
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
By participating in this project, you agree to maintain a respectful and inclusive environment for all contributors.
|
||||
|
||||
## How to Contribute
|
||||
|
||||
### Reporting Bugs
|
||||
|
||||
If you find a bug, please open an issue on GitHub with:
|
||||
- A clear, descriptive title
|
||||
- Steps to reproduce the issue
|
||||
- Expected behaviour vs actual behaviour
|
||||
- Your environment (OS, Rust version, etc.)
|
||||
- Any relevant error messages or logs
|
||||
|
||||
### Suggesting Features
|
||||
|
||||
Feature requests are welcome! Please open an issue describing:
|
||||
- The problem you're trying to solve
|
||||
- Your proposed solution
|
||||
- Any alternative solutions you've considered
|
||||
|
||||
### Pull Requests
|
||||
|
||||
1. **Fork the repository** and create your branch from `main`
|
||||
2. **Make your changes**, following the coding standards below
|
||||
3. **Add tests** if applicable
|
||||
4. **Ensure all tests pass** by running `cargo test`
|
||||
5. **Update documentation** as needed
|
||||
6. **Format your code** with `cargo fmt`
|
||||
7. **Run the linter** with `cargo clippy`
|
||||
8. **Commit your changes** with clear, descriptive commit messages
|
||||
9. **Submit a pull request** with a description of your changes
|
||||
|
||||
## Development Setup
|
||||
|
||||
```bash
|
||||
# Clone your fork
|
||||
git clone https://github.com/your-username/project-name.git
|
||||
cd project-name
|
||||
|
||||
# Build the project
|
||||
cargo build
|
||||
|
||||
# Run tests
|
||||
cargo test
|
||||
|
||||
# Format code
|
||||
cargo fmt
|
||||
|
||||
# Run linter
|
||||
cargo clippy
|
||||
```
|
||||
|
||||
## Coding Standards
|
||||
|
||||
- Follow the official [Rust Style Guide](https://doc.rust-lang.org/nightly/style-guide/)
|
||||
- Use `cargo fmt` to format code
|
||||
- Ensure `cargo clippy` passes without warnings
|
||||
- Write clear, self-documenting code with appropriate comments
|
||||
- Add documentation comments for public APIs
|
||||
- Keep functions focused and reasonably sized
|
||||
- Write tests for new functionality
|
||||
|
||||
## Commit Messages
|
||||
|
||||
- Use clear, descriptive commit messages
|
||||
- Use conventional commits
|
||||
- Start with a verb in the present tense (e.g., "Add", "Fix", "Update")
|
||||
- Keep the first line under 50 characters
|
||||
- Add a detailed description if necessary
|
||||
|
||||
## Testing
|
||||
|
||||
- Write unit tests for new functionality
|
||||
- Ensure all existing tests pass
|
||||
- Aim for meaningful test coverage
|
||||
- Test edge cases and error conditions
|
||||
|
||||
## Documentation
|
||||
|
||||
- Update the README if your changes affect usage
|
||||
- Add inline documentation for public APIs
|
||||
- Include examples in doc comments where helpful
|
||||
|
||||
## PRLOG and CHANGELOG
|
||||
|
||||
- The Pull Request log is updated automatically by CI.
|
||||
- The Changelog is generated automatically from relevant conventional commits by CI
|
||||
|
||||
## License
|
||||
|
||||
By contributing to cull-gmail, you agree that your contributions will be licensed under the MIT License. This means:
|
||||
|
||||
- You grant permission for your contributions to be used, modified, and distributed under the terms of the MIT License
|
||||
- You confirm that you have the right to submit the code under this license
|
||||
- You understand that your contributions will become part of the project and available to all users under the MIT License
|
||||
|
||||
## Questions?
|
||||
|
||||
If you have questions about contributing, feel free to open an issue or reach out to the maintainers.
|
||||
|
||||
Thank you for contributing!
|
||||
Reference in New Issue
Block a user