Thank you for your interest in contributing to Python Chrome DevTools Protocol (PyCDP)! We welcome contributions from the community.
- Python 3.7 or higher
- Poetry for dependency management
- Git for version control
-
Fork and clone the repository:
git clone https://github.com/YOUR_USERNAME/python-chrome-devtools-protocol.git cd python-chrome-devtools-protocol -
Install dependencies:
pip install poetry poetry install
This project automatically generates Python wrappers from the Chrome DevTools Protocol specification:
poetry run python generator/generate.pyRun the test suite:
poetry run pytest test/
poetry run pytest generator/We use mypy for static type checking:
poetry run mypy cdp/
poetry run mypy generator/Run all checks (type checking, tests, and generation):
poetry run make default-
Create a new branch for your feature or bugfix:
git checkout -b feature/your-feature-name
-
Make your changes and ensure:
- All tests pass
- Code passes type checking
- Code follows the existing style
- Documentation is updated if needed
-
Commit your changes with clear, descriptive messages:
git commit -m "Add feature: brief description" -
Push to your fork and submit a pull request:
git push origin feature/your-feature-name
-
In your pull request description:
- Describe what changes you made and why
- Reference any related issues
- Include any relevant context
- Maintainers will review your pull request
- Address any feedback or requested changes
- Once approved, a maintainer will merge your PR
When reporting bugs, please include:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected behavior vs. actual behavior
- Python version and environment details
- Any relevant error messages or logs
For feature requests, please:
- Clearly describe the feature and its use case
- Explain why it would be valuable
- Provide examples if possible
- Follow PEP 8 style guidelines
- Use type hints for function parameters and return values
- Write clear, descriptive variable and function names
- Add docstrings for public APIs
- Keep functions focused and modular
- Update README.md if you add new features
- Update docstrings for any modified functions or classes
- Add examples for new functionality when appropriate
By contributing, you agree that your contributions will be licensed under the MIT License.
If you have questions, feel free to:
- Open an issue for discussion
- Reach out to the maintainers
Thank you for contributing to PyCDP!