2024-03-24 08:28:13 +01:00
|
|
|
# Contributing to Intervention Image
|
|
|
|
|
|
|
|
Thank you for your interest in contributing to the project. Any contribution
|
|
|
|
that improves the project is welcome and will be considered for integration.
|
|
|
|
|
|
|
|
Please understand that there is no guarantee that your pull request will be
|
|
|
|
accepted. To avoid misunderstandings, it is recommended that you first initiate
|
|
|
|
a discussion about your planned changes on the [issue
|
|
|
|
board](https://github.com/Intervention/image/issues).
|
|
|
|
|
|
|
|
You agree that your contributions will be licensed under the same license as
|
|
|
|
the main project. Before submitting a pull request familiarize yourself with
|
|
|
|
the [license](LICENSE) and understand its terms and conditions.
|
|
|
|
|
|
|
|
## Requirements
|
|
|
|
|
|
|
|
To ensure a smooth collaboration process and maintain the quality of the
|
|
|
|
project the submitted pull request must meet the following requirements to be
|
|
|
|
accepted for review. It is a good idea to check these locally **before** you
|
|
|
|
submit the PR.
|
|
|
|
|
|
|
|
### Follow the Branching Model
|
|
|
|
|
|
|
|
Please submit only one feature or bug fix per pull request. The best practice
|
|
|
|
is to split your contributions into thematically meaningful branches and then
|
|
|
|
submit them individually as pull requests.
|
|
|
|
|
|
|
|
### Comply with the Coding Standard
|
|
|
|
|
|
|
|
The project follows the [PSR12 coding
|
|
|
|
standard](https://www.php-fig.org/psr/psr-12/) with some [additional
|
|
|
|
extensions](phpcs.xml.dist). Adherence to these rules is essential and can be
|
|
|
|
easily checked with the following command.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
./vendor/bin/phpcs
|
|
|
|
```
|
|
|
|
|
|
|
|
Or by using the project's Docker environment.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker-compose run --rm --build standards
|
|
|
|
```
|
|
|
|
|
|
|
|
### Write Tests
|
|
|
|
|
|
|
|
For new features or changes to the existing code base, it is essential to cover
|
|
|
|
them with tests. Integrate your tests in the the project's test environment
|
|
|
|
and consider both positive and negative scenarios.
|
|
|
|
|
|
|
|
Make sure that all tests are passed with the following command.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
./vendor/bin/phpunit
|
|
|
|
```
|
|
|
|
|
|
|
|
Or by using the project's Docker environment.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker-compose run --rm --build tests
|
|
|
|
```
|
|
|
|
|
|
|
|
### Pay attention to the Analyzer Results
|
|
|
|
|
|
|
|
A static analyzer is also used to avoid bugs and ensure quality. In addition to
|
|
|
|
testing, it must also run without errors.
|
|
|
|
|
|
|
|
Check the analyzer by running the following command.
|
|
|
|
|
|
|
|
```bash
|
2024-05-11 10:03:27 +02:00
|
|
|
./vendor/bin/phpstan analyze --memory-limit=512M ./src
|
2024-03-24 08:28:13 +01:00
|
|
|
```
|
|
|
|
|
|
|
|
Or by using the project's Docker environment.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker-compose run --rm --build analysis
|
|
|
|
```
|
|
|
|
|
|
|
|
**Thank you!**
|