84 lines
2.7 KiB
Markdown
84 lines
2.7 KiB
Markdown
|
## Contributing
|
||
|
|
||
|
Contributions of any kind are welcome.
|
||
|
|
||
|
Feel free to submit [Github Issues](https://github.com/zircote/swagger-php/issues)
|
||
|
or [pull requests](https://github.com/zircote/swagger-php/pulls).
|
||
|
|
||
|
|
||
|
## Quick Guide
|
||
|
|
||
|
The documentation site has [some details](https://zircote.github.io/swagger-php/guide/under-the-hood.html#documentation) about internals.
|
||
|
|
||
|
### How-To
|
||
|
|
||
|
* [Fork](https://help.github.com/articles/fork-a-repo/) the repo.
|
||
|
* [Checkout](https://git-scm.com/docs/git-checkout) the branch you want to make changes on.
|
||
|
* Typically, this will be `master`. Note that most of the time, `master` represents the next release of swagger-php, so Pull Requests that break backwards compatibility might be postponed.
|
||
|
* Install dependencies: `composer install`.
|
||
|
* Create a new branch, e.g. `feature-foo` or `bugfix-bar`.
|
||
|
* Make changes.
|
||
|
* If you are adding functionality or fixing a bug - add a test!
|
||
|
|
||
|
Prefer adding new test cases over modifying existing ones.
|
||
|
* Update documentation: `composer docs:gen`.
|
||
|
* Run static analysis using PHPStan/Psalm: `composer analyse`.
|
||
|
* Check if tests pass: `composer test`.
|
||
|
* Fix code style issues: `composer cs`.
|
||
|
|
||
|
|
||
|
## Documentation
|
||
|
|
||
|
The documentation website is build from the [docs](docs/) folder with [vitepress](https://vitepress.vuejs.org).
|
||
|
This process involves converting the existing markdown (`.md`) files into static HTML pages and publishing them.
|
||
|
|
||
|
Some reference content is based on the existing code, so changes to annotations, attributes and processors will require to re-generate those markdown files: `composer docs:gen`.
|
||
|
|
||
|
The actual published content is managed in the [gh-pages](https://github.com/zircote/swagger-php/tree/gh-pages) branch and driven by a [publish action](https://github.com/zircote/swagger-php/actions/workflows/gh-pages.yml).
|
||
|
|
||
|
|
||
|
## Useful commands
|
||
|
|
||
|
### To run both unit tests and linting execute
|
||
|
```shell
|
||
|
composer test
|
||
|
```
|
||
|
|
||
|
### To run static-analysis execute
|
||
|
```shell
|
||
|
composer analyse
|
||
|
```
|
||
|
|
||
|
### Running unit tests only
|
||
|
```shell
|
||
|
./bin/phpunit
|
||
|
```
|
||
|
|
||
|
### Regenerate reference markup docs
|
||
|
```shell
|
||
|
composer docs:gen
|
||
|
```
|
||
|
|
||
|
### Running linting only
|
||
|
```shell
|
||
|
composer lint
|
||
|
```
|
||
|
|
||
|
### To make `php-cs-fixer` fix linting errors
|
||
|
```shell
|
||
|
composer cs
|
||
|
```
|
||
|
|
||
|
### Run dev server for local development of `gh-pages`
|
||
|
```shell
|
||
|
composer docs:dev
|
||
|
```
|
||
|
|
||
|
|
||
|
## Project's Standards
|
||
|
|
||
|
* [PSR-1: Basic Coding Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md)
|
||
|
* [PSR-2: Coding Style Guide](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)
|
||
|
* [PSR-4: Autoloading Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md)
|
||
|
* [PSR-5: PHPDoc (draft)](https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc.md)
|