Contributing
November 17, 2024 ยท View on GitHub
We use GitHub Actions as a continuous integration system.
For details, take a look at the following workflow configuration files:
workflows/integrate.yamlworkflows/merge.yamlworkflows/release.yamlworkflows/renew.yamlworkflows/triage.yamlworkflows/update.yaml
Coding Standards
We use ergebnis/composer-normalize to normalize composer.json.
We use yamllint to enforce coding standards in YAML files.
If you do not have yamllint installed yet, run
brew install yamllint
to install yamllint.
We use friendsofphp/php-cs-fixer to enforce coding standards in PHP files.
Run
make coding-standards
to automatically fix coding standard violations.
Dependency Analysis
We use maglnet/composer-require-checker to prevent the use of unknown symbols in production code.
Run
make dependency-analysis
to run a dependency analysis.
Mutation Tests
We use infection/infection to ensure a minimum quality of the tests.
Enable Xdebug and run
make mutation-tests
to run mutation tests.
Refactoring
We use rector/rector to automatically refactor code.
Run
make refactoring
to automatically refactor code.
Security Analysis
We use composer to run a security analysis.
Run
make security-analysis
to run a security analysis.
Static Code Analysis
We use phpstan/phpstan to statically analyze the code.
Run
make static-code-analysis
to run a static code analysis.
We also use the baseline feature of phpstan/phpstan.
Run
make static-code-analysis-baseline
to regenerate the baseline in ../phpstan-baseline.neon.
:exclamation: Ideally, the baseline should shrink over time.
Tests
We use phpunit/phpunit to drive the development.
Run
make tests
to run all the tests.
Extra lazy?
Run
make
to automatically refactor code, enforce coding standards, run a static code analysis, and run tests!
Help
:bulb: Run
make help
to display a list of available targets with corresponding descriptions.