diff --git a/CUSTOMIZATION.md b/CUSTOMIZATION.md index 02a7db2ace8265ff8fb1c974c0f8a1c8b0d41a44..1dc4e35b4b12a7442859ecb1252da1b80a19e409 100644 --- a/CUSTOMIZATION.md +++ b/CUSTOMIZATION.md @@ -4,7 +4,7 @@ Y décrire comment utiliser le package... ## Choisir une license -Et adapter le contenu des fichiers `LICENSE`, `.docheader`. +Et adapter le contenu des fichiers `LICENSE` (et, optionnellement `.docheader`). ## Editer `composer.json` @@ -23,54 +23,26 @@ Ce sont les champs et sections suivants : #### Supprimer les scripts du squelette -Ce sont les scripts `post-install-cmd`, `post-update-cmd`, `post-create-project-cmd` et `customize-reminder`. +Ce sont les scripts `post-install-cmd`, `post-update-cmd`, +`post-create-project-cmd` et `customize-reminder`. #### Corriger les namespaces -Ils sont dans les sections `autoload` et `autoload-dev`. Ce sont par défaut `Irstea\MyProject` et `Irstea\MyProject\Tests`, ce qui a peu de chance de correspondre au nouveau projet. +Ils sont dans les sections `autoload` et `autoload-dev`. Ce sont par défaut +`Irstea\MyProject` et `Irstea\MyProject\Tests`, ce qui a peu de chance de +correspondre au nouveau projet. #### Fixer les contraintes de version -Elle sont dans les sections `require` et `require-dev`. Il faut remplacer `"*"` par des contraintes de version de type `"^x.y"`. +Le projet inclut `irstea/dev-pack` en version `@stable` par défaut. Ce paquet va +lui-même inclure par transitivité les versions `@stable` des paquets et +configurations que nous utilisons par défaut. -**Si vous ne le faites pas, vous risquez une mauvaise surprise lors d'un `composer update`.** +Toutefois, nous allons écrire du code qui utilise +certains de ces paquets (notammment PHPUnit) et qui ne sera pas forcément +compatible avec toutes les versions. Dans ce cas, il faut préciser explicitement +les versions des paquets utilisés. Normalement, la job "php:composer-require-checker" +devrait vous indiquer quand vous faites référence à une librairie qui n'est pas +explicitement référencées. _Nota bene_: `roave/security-advisories` doit toujours être sur `dev-master`. - -La commande `composer show --direct` permet de lister les versions installées. - -##### Exemple - -```shell -$ composer show --direct -beberlei/assert v3.2.0 Thin assertion library for input validation in business models. -irstea/php-cs-fixer-config 1.0.1 Jeux de règles pour php-cs-fixer. -irstea/phpmd-config 1.0.0 Jeux de règles pour PHP Mess Detector. -irstea/phpstan-config 1.0.3 Configuration par défaut pour phpstan/phpstan. -jakub-onderka/php-parallel-lint v1.0.0 This tool check syntax of PHP files about 20x faster than serial check. -maglnet/composer-require-checker 2.0.0 CLI tool to analyze composer dependencies and verify that no unknown symbols are used in the sources of a package -phploc/phploc 5.0.0 A tool for quickly measuring the size of a PHP project. -phpunit/phpunit 8.1.2 The PHP Unit Testing framework. -roave/security-advisories dev-master a011222 Prevents installation of composer packages with known security vulnerabilities: no API, simply require it -sebastian/phpcpd 4.1.0 Copy/Paste Detector (CPD) for PHP code. -sensiolabs/security-checker v5.0.3 A security checker for your composer.lock -``` - -```json -{ - "require": { - "beberlei/assert": "^3.2" - }, - "require-dev": { - "irstea/php-cs-fixer-config": "^1.0", - "irstea/phpmd-config": "^1.0", - "irstea/phpstan-config": "^1.0", - "jakub-onderka/php-parallel-lint": "^1.0", - "maglnet/composer-require-checker": "^2.0", - "phploc/phploc": "^5.0", - "phpunit/phpunit": "^8.1", - "sebastian/phpcpd": "^4.1", - "sensiolabs/security-checker": "^6.0" - } -} -```