CONTRIBUTING
January 3, 2020 ยท View on GitHub
We are using GitHub Actions as a continuous integration system.
For details, see workflows/continuous-integration.yml.
Coding Standards
We are using friendsofphp/php-cs-fixer to enforce coding standards.
Run
$ make coding-standards
to automatically fix coding standard violations.
Dependency Analysis
We are using maglnet/composer-require-checker to prevent the use of unknown symbols in production code.
Run
$ make dependency-analysis
to run a dependency analysis.
Static Code Analysis
We are using phpstan/phpstan and vimeo/psalm to statically analyze the code.
Run
$ make static-code-analysis
to run a static code analysis.
We are also using the baseline features of [phpstan/phpstan(https://medium.com/@ondrejmirtes/phpstans-baseline-feature-lets-you-hold-new-code-to-a-higher-standard-e77d815a5dff) and vimeo/psalm.
Run
$ make static-code-analysis-baseline
to regenerate the baselines in ../phpstan-baseline.neon and ../psalm-baseline.xml.
:exclamation: Ideally, the baselines should shrink over time.
Tests
We are using phpunit/phpunit to drive the development.
Run
$ make tests
to run all the tests.
Mutation Tests
We are using infection/infection to ensure a minimum quality of the tests.
Enable pcov or Xdebug and run
$ make mutation-tests
to run mutation tests.
Extra lazy?
Run
$ make
to enforce coding standards, run a dependency analysis, run a static code analysis, and run tests!
Help
:bulb: Run
$ make help
to display a list of available targets with corresponding descriptions.