From e84ce75b35914e2ef7e5bf3edf60280c35ecb3a1 Mon Sep 17 00:00:00 2001 From: Oliver Vogel Date: Sat, 23 Mar 2024 12:28:23 +0100 Subject: [PATCH] Add contribution guideline --- .gitattributes | 1 + CONTRIBUTING.md | 80 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/.gitattributes b/.gitattributes index 69620913..99833abc 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,6 +2,7 @@ /.editorconfig export-ignore /.github export-ignore +/CONTRIBUTING.md export-ignore /tests export-ignore /.gitattributes export-ignore /.gitignore export-ignore diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..31947a5d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,80 @@ +# 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 --level=4 ./src +``` + +Or by using the project's Docker environment. + +```bash +docker-compose run --rm --build analysis +``` + +**Thank you!**