Skip to content

Commit

Permalink
Add contribution guideline
Browse files Browse the repository at this point in the history
  • Loading branch information
olivervogel committed Mar 24, 2024
1 parent 7f4ff15 commit e84ce75
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

/.editorconfig export-ignore
/.github export-ignore
/CONTRIBUTING.md export-ignore
/tests export-ignore
/.gitattributes export-ignore
/.gitignore export-ignore
Expand Down
80 changes: 80 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -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!**

0 comments on commit e84ce75

Please sign in to comment.