Contributing¶
Contributions are what make the open-source community such an amazing place to learn, inspire and create, and we welcome your support! Any contributions you make are greatly appreciated.
Ways to Contribute¶
If you have ideas for enhancements, you can:
- Fork the repository and submit a pull request
- Open an issue and tag it with "enhancement"
- Report bugs by opening an issue with the "bug" label
- Improve documentation
- Add examples or tutorials
Contribution Process¶
-
Fork the repository
-
Create a feature branch
-
Set up development environment
-
Make your changes
- Follow the existing code style
- Add tests for new functionality
-
Update documentation as needed
-
Test your changes
-
Commit your changes
-
Push to your branch
-
Open a Pull Request
- Provide a clear description of your changes
- Reference any related issues
- Include examples if applicable
Development Guidelines¶
Code Style¶
This project uses:
- Ruff for linting and formatting
- Pre-commit hooks for automated checks
- Type hints where applicable
Testing¶
- Write tests for new functionality using
pytest - Ensure all tests pass before submitting a PR
- Include both unit tests and integration tests where appropriate
Documentation¶
- Update docstrings for new or modified functions/classes
- Add examples to demonstrate usage
- Update the API documentation pages if you add new modules
Issues and Bug Reports¶
When reporting bugs, please include:
- A clear and descriptive title
- Steps to reproduce the issue
- Expected vs. actual behavior
- Your environment details (Python version, OS, etc.)
- Any relevant error messages or logs
Feature Requests¶
For feature requests, please:
- Use a clear and descriptive title
- Explain the motivation for the feature
- Describe the proposed solution
- Consider alternatives you've thought about
Getting Help¶
If you need help or have questions:
- Check the examples for usage patterns
- Look through existing issues
- Open a new issue with the "question" label
Recognition¶
Contributors are recognised in the project's contributor list. Don't forget to give the project a star! ⭐
Thank you for considering contributing to winnow!