-
-
Notifications
You must be signed in to change notification settings - Fork 37
Template for use with pull request on custom code standard projects
To gain more widespread support for PHP_CodeSniffer installers, it is important that maintainers of external PHP_CodeSniffer standards adopt using the "type" : "phpcodesniffer-standard" in their project's composer.json.
Opening an issue (or even better: a pull-request) for such a change is trivial. Finding the right words to explain the rationale can be more daunting.
Below is a template that can be used ad-verbatim to accompany any issue or pull-request to add (or change) the "type" : "phpcodesniffer-standard" in a project's Composer file.
The text below can be selected and copied as-is:
## Problem/Motivation
Composer allows declaring [a package's type][composer-package-type]. When no type is declared, the default is "library".
There is a [composer plugin][composer-plugin] that can install custom PHP_CodeSniffer standards: https://github.com/PHPCSStandards/composer-installer
This plugin is part of the [PHPCSStandards][php-cs-standards] organisation, which is the new official home of [PHP_CodeSniffer][php-codesniffer]
For this installer to work, the package type needs to be set to `phpcodesniffer-standard`.
There are already [a lot of packages][phpcodesniffer-packages] that adhere to this type.
## Proposed changes
Adding the following line to the `composer.json` will make it possible for the Composer plugin to install this custom code-standard using composer:
```json
"type" : "phpcodesniffer-standard"
```
This will in _no way_ change the existing behavior of this package for users that do not include the Composer plugin mentioned above in their projects `composer.json`.
[composer-package-type]: https://getcomposer.org/doc/04-schema.md#type
[composer-plugin]: https://getcomposer.org/doc/articles/plugins.md
[phpcodesniffer-packages]: https://github.com/search?p=2&q=filename%3Acomposer.json+type+phpcodesniffer+standard&type=Code&utf8=%E2%9C%93
[php-cs-standards]: https://github.com/PHPCSStandards/
[php-codesniffer]: https://github.com/PHPCSStandards/PHP_CodeSniffer
The template above will render (more or less) like this:
Composer allows declaring a package's type. When no type is declared, the default is "library".
There is a composer plugin that can install custom PHP_CodeSniffer standards: https://github.com/PHPCSStandards/composer-installer
This plugin is part of the PHPCSStandards organisation, which is the new official home of PHP_CodeSniffer
For this installer to work, the package type needs to be set to phpcodesniffer-standard.
There are already a lot of packages that adhere to this type.
Adding the following line to the composer.json will make it possible for the Composer plugin to install this custom code-standard using composer:
"type" : "phpcodesniffer-standard"This will in no way change the existing behavior of this package for users that do not include Composer plugin mentioned above in their projects composer.json.

To the extent possible under law,
Dealerdirect and PHPCSStandards
have waived all copyright and related or neighboring rights to this
"Template for use with pull-request on custom PHP_Codesniffer code-standard projects".