# Contributing to the project
Thank you for your interest in contributing to this project. This document outlines the process for contributing and the licensing requirements.
## Contributor License Agreement
By submitting a pull request or otherwise contributing code to this project, you agree to the following terms:
1. You grant the project maintainer a perpetual, worldwide, irrevocable, non-exclusive,
transferable, and sub-licensable license to use, reproduce, modify, distribute,
publicly perform/display, and relicense your contributions (including under different terms),
including in dual- and commercial-licensing arrangements.
2. You represent and warrant you have all necessary rights to grant the above license and that,
to the best of your knowledge, your contributions do not knowingly infringe third-party rights.
3. Patent license: To the extent your contributions or their combination with the project
necessarily infringe your patent claims, you grant the project maintainer and downstream
recipients a perpetual, worldwide, irrevocable, non-exclusive, royalty-free patent license
to make, use, sell, offer to sell, import, and otherwise practice the contributions.
4. By submitting a pull request or otherwise contributing, you indicate acceptance of these terms.
## How to Contribute
1. Fork the repository.
2. Create a new branch for your feature or bugfix.
3. Write clear, well-documented code.
4. Add tests for your changes when appropriate.
5. Submit a pull request.
## Coding Standards
1. Follow the existing code style in the project.
2. Write meaningful commit messages.
3. Document all public API functions.
4. Add comments for complex or non-obvious code sections.
5. Ensure all code is spell-checked.
## Reporting Issues
When reporting issues, please include:
1. A clear description of the problem
2. Steps to reproduce
3. Expected vs actual behavior
4. Version information
5. Any relevant logs or error messages
Thank you for your contributions.