Thank you for your interest in contributing to our project! This guide will help you understand our development process and how you can participate effectively.
- Fork the repository and clone it locally
- Set up your development environment following the instructions in our README
- Create a new branch for your work:
git checkout -b feature/your-feature-name
- Keep your code clean, readable, and well-documented
- Write meaningful commit messages following conventional commits format
- Add tests for new features
- Update documentation when necessary
- Follow the principle of single responsibility
- Follow PEP 8 style guide
- Use type hints for function parameters and return values
- Use docstrings for functions and classes
- Maximum line length: 88 characters
- Use
black
for code formatting - Run
pylint
for code quality checks
- Follow ESLint configuration
- Use TypeScript for new features when possible
- Follow functional programming principles
- Use async/await instead of raw promises
- Maximum line length: 80 characters
- Follow Google Java Style Guide
- Use Maven for dependency management
- Write JavaDoc for public methods
- Maximum line length: 100 characters
- Use meaningful exception handling
-
Before Submitting
- Ensure all tests pass
- Run linting tools
- Update documentation if needed
- Verify your branch is up to date with main
-
Submission
- Fill out the pull request template completely
- Link any related issues
- Provide clear description of changes
- Add screenshots for UI changes
-
Review Process
- Address reviewer comments promptly
- Keep discussions constructive
- Update your PR based on feedback
- Request re-review when ready
- Write unit tests for new functionality
- Maintain minimum 80% code coverage
- Include integration tests when appropriate
- Test edge cases and error conditions
- Document test scenarios
- Keep README up to date
- Document API changes
- Update inline documentation
- Add examples for new features
- Use clear, concise language
- Use issue tracker for bug reports and feature requests
- Join our community chat for discussions
- Be respectful and inclusive in all interactions
- Ask questions in the appropriate channels
By contributing, you agree that your contributions will be licensed under the project's license (Apache License 2.0).
If you have questions, feel free to:
- Open an issue
- Contact the maintainers
Thank you for contributing to our project!