Skip to content

Latest commit

 

History

History
151 lines (90 loc) · 3.15 KB

CONTRIBUTING.md

File metadata and controls

151 lines (90 loc) · 3.15 KB

CONTRIBUTING

We use GitHub Actions as a continuous integration system.

For details, take a look at the following workflow configuration files:

Backward-Compatibility Analysis

We use roave/backward-compatibility-check to prevent breaking backwards-compatibility.

Run

make backward-compatibility-analysis

to run a backward-compatibility analysis.

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 and vimeo/psalm to statically analyze the code.

Run

make static-code-analysis

to run a static code analysis.

We also use the baseline features of phpstan/phpstan and vimeo/psalm.

Run

make static-code-analysis-baseline

to regenerate the baselines in ../phpstan-baseline.neon and ../psalm-baseline.xml.

❗ Ideally, the baselines 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

💡 Run

make help

to display a list of available targets with corresponding descriptions.