Contributions are always welcome. This file is a guideline about how to contribute.
All the contributions need to be done with a merge request. It is possible to create a merge request prefixed with WIP: to ask for feedback or if you didn't know how to match all requirements.
Please be sure to check all the requirements before sending your merge request (except a WIP merge request)
Only submit a PR with your own original code. Do NOT submit a PR containing code which you have largely copied from an externally projects, unless you wrote said the code yourself. Open source does not mean that copyright does not apply. Copyright infringements will not be tolerated and can lead to you being banned from the repository.
The same goes for (largely) AI-generated PRs. These are not welcome as they will be based on copyrighted code from others without accreditation and without taking the license of the original code into account, let alone getting permission for the use of the code or for re-licensing.
Aside from that, the experience is that AI-generated PRs will be incorrect 100% of the time and cost reviewers too much time. Submitting a (largely) AI-generated PR will lead to you being banned from the repository.
- All the code need to confirm to the PSR-12. You can check this local with
vendor/bin/phpcs
- We use PHPMD to validate the quality of the code. You can check it local with
vendor/bin/phpmd src text phpmd.xml.dist
- Add tests for code changes, we use PHPUnit. You can run the test with
vendor/bin/phpunit
this will also generate some reports in the build directory. - We also use PHPStan to find possible bugs in the code. You can run it with
vendor/bin/phpstan
. - Document the changes, any functional change or bug fix need to be written in CHANGELOG.md. Depending on your change you need to add some documentation to the README.md
- Respect SemVer, we use Semantic Versioning so please respect it with the changes you want to add.
- A merge request for a change. Please don't mix multiple changes in one merge request.
- Ask questions, if you are not sure about something ask it.
- Only submit the code that you wrote yourself.