pandorafms/pandora_console/vendor/zircote/swagger-php/CONTRIBUTING.md

84 lines
2.7 KiB
Markdown
Raw Normal View History

2024-01-12 08:22:17 +01:00
## 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)