If your contribution requires significant or breaking changes, or if you plan to propose a major new feature, we recommend you to create an issue with a brief proposal and discuss it with us first.
For smaller contributions just use this workflow:
- Fork the project.
- Add your features and or bug fixes.
- Add tests. Tests are important for us.
- Check your changes using
composer check
. - Add an entry to the Changelog's Unreleased section.
- Send a pull request.
git clone <your-fork-url>
cd graphql-php
composer install
We ensure the code works and continues to work as expected with PHPUnit.
Run unit tests:
composer test
Some tests have an annotation such as @see it('<description>')
.
It references a matching test in the graphql-js implementation.
We check and fix the coding standard with PHP_CodeSniffer.
Run the inspections:
composer lint
Apply automatic code style fixes:
composer fix
We validate code correctness with PHPStan.
Run static analysis:
composer stan
Regenerate the PHPStan baseline:
composer baseline
We benchmark performance critical code with PHPBench.
Check performance:
composer bench
We document this library by rendering the Markdown files in docs with MkDocs.
Generate the class reference docs:
composer docs