Thank you for your interest in contributing to Python Chrome DevTools Protocol (PyCDP)! This document provides guidelines for contributing to the project.
By participating in this project, you agree to abide by our Code of Conduct (see CODE_OF_CONDUCT.md).
If you find a bug, please open an issue on GitHub with:
- A clear description of the problem
- Steps to reproduce the issue
- Expected vs. actual behavior
- Your environment (OS, Python version, etc.)
Enhancement suggestions are welcome! Please open an issue describing:
- The enhancement you'd like to see
- Why it would be useful
- Any implementation ideas you have
- Fork the repository and create your branch from
master - Install development dependencies:
pip install poetry poetry install
- Make your changes following the project's coding standards
- Run tests to ensure nothing is broken:
poetry run make
- Update documentation if needed
- Commit your changes with clear, descriptive commit messages
- Push to your fork and submit a pull request
- Python 3.7 or higher
- Poetry for dependency management
# Clone the repository
git clone https://github.com/HyperionGray/python-chrome-devtools-protocol.git
cd python-chrome-devtools-protocol
# Install dependencies
poetry install# Run all tests
poetry run make
# Run specific test suites
poetry run pytest test/
poetry run pytest generator/
# Run type checking
poetry run mypy cdp/
poetry run mypy generator/This project generates Python code from the Chrome DevTools Protocol specification:
poetry run python generator/generate.pyThe generated code is checked into version control. If you modify the generator, run it and include the updated generated files in your PR.
- Follow PEP 8 style guidelines
- Use type hints for all functions and methods
- Write docstrings for public APIs
- Ensure code passes
mypytype checking - Keep code coverage high
cdp/- Generated CDP protocol bindingsgenerator/- Code generator for CDP bindingstest/- Test suitedocs/- Documentation source filesexamples/- Example usage scripts
If you have questions about contributing, feel free to open an issue or reach out to the maintainers.
By contributing to PyCDP, you agree that your contributions will be licensed under the MIT License.