|
| 1 | +# Developer guide |
| 2 | + |
| 3 | +We're glad you're interested in contributing to our project! This guide will help you get started with the development |
| 4 | +process. |
| 5 | + |
| 6 | +## Getting Started |
| 7 | + |
| 8 | +[Fork the repository](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo) |
| 9 | +and [clone it](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) to your |
| 10 | +local machine. |
| 11 | + |
| 12 | +### Prerequisites |
| 13 | + |
| 14 | +The preferred way is to use [Docker](https://www.docker.com/get-started) and Make. |
| 15 | + |
| 16 | +Alternatively, ensure you have the following installed: |
| 17 | + |
| 18 | +- **PHP** You can know which version is required by checking the `composer.json` file. |
| 19 | +- **Composer** Dependency manager for PHP. [Get Composer](https://getcomposer.org/download/) |
| 20 | + |
| 21 | +### Starting the Development Environment |
| 22 | + |
| 23 | +If you're using Docker & Make, simply run: |
| 24 | + |
| 25 | +```bash |
| 26 | +make start |
| 27 | +``` |
| 28 | + |
| 29 | +This command will build the docker image, start the container, and take you inside the container bash shell so that you |
| 30 | +can directly run commands. |
| 31 | + |
| 32 | +### Installing Dependencies |
| 33 | + |
| 34 | +Inside the docker container or your local environment, run: |
| 35 | + |
| 36 | +```bash |
| 37 | +composer install |
| 38 | +``` |
| 39 | + |
| 40 | +### Running Code Quality Tools |
| 41 | + |
| 42 | +To ensure the code quality and CI compliance, we are using the following tools: |
| 43 | + |
| 44 | +#### PHPUnit for testing |
| 45 | + |
| 46 | +To run the full test suite, execute: |
| 47 | + |
| 48 | +```bash |
| 49 | +composer test |
| 50 | +``` |
| 51 | + |
| 52 | +#### PHP CS-Fixer for code style |
| 53 | + |
| 54 | +To check and fix code style issues, run: |
| 55 | + |
| 56 | +```bash |
| 57 | +composer cs-fix |
| 58 | +``` |
| 59 | + |
| 60 | +#### Psalm for static analysis |
| 61 | + |
| 62 | +To perform static analysis, run: |
| 63 | + |
| 64 | +```bash |
| 65 | +composer psalm |
| 66 | +``` |
| 67 | + |
| 68 | +## Code Contribution Guidelines |
| 69 | + |
| 70 | +When I (Dhemy) started this project, like any developer, I had my own coding style and preferences. Over time, I |
| 71 | +acquired more knowledge and experience; additionally PHP itself evolved. As a result, the codebase might reflect a mix |
| 72 | +of styles and practices. |
| 73 | + |
| 74 | +Currently, We are following the principles |
| 75 | +of [Clean Architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html). |
| 76 | +See [this issue](https://github.com/imdhemy/google-play-billing/issues/236) for the current state of the codebase and |
| 77 | +the planned improvements. |
| 78 | + |
| 79 | +## Pick your work |
| 80 | + |
| 81 | +The best way to start contributing is to check the issues list. Pick an issue that interests you and start working on |
| 82 | +it. If you didn't find any issue, you can always propose new features or improvements by opening a new issue. |
| 83 | + |
| 84 | +## Weekly meeting |
| 85 | + |
| 86 | +We have a weekly meeting every Friday at 16:00 Berlin time. Feel free to join us |
| 87 | +on [Google Meet](https://meet.google.com/zgo-wtpp-jfh) to discuss the ongoing |
| 88 | +work and any questions you might have. |
0 commit comments