- 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
107 lines
3.2 KiB
Markdown
107 lines
3.2 KiB
Markdown
# 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! |