# 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 ./vendor/bin/phpstan analyze --memory-limit=512M ./src ``` Or by using the project's Docker environment. ```bash docker-compose run --rm --build analysis ``` **Thank you!**