From 0ae802f2d631001da0a6f1d10a67a9c9b4c1b987 Mon Sep 17 00:00:00 2001
From: Perreal Guillaume <guillaume.perreal@irstea.fr>
Date: Wed, 10 Apr 2019 13:32:26 +0200
Subject: [PATCH] Edition de la doc.

---
 CUSTOMIZATION.md | 59 +++++++++++++++++++++++++++++++++++++++++++-----
 README.md        | 52 +++++++++++++++++++++---------------------
 2 files changed, 79 insertions(+), 32 deletions(-)

diff --git a/CUSTOMIZATION.md b/CUSTOMIZATION.md
index 09a3a77..478f1d6 100644
--- a/CUSTOMIZATION.md
+++ b/CUSTOMIZATION.md
@@ -1,4 +1,3 @@
-
 ## Remplacer `README.md`
 
 Y décrire comment utiliser le package...
@@ -9,12 +8,60 @@ Et adapter le contenu des fichiers `LICENSE`, `.docheader`.
 
 ## Editer `composer.json`
 
-* Editer les métadonnées : `name`, `description`, `type`, `license`.
-* Supprimer/remplacer les scripts `post-install-cmd`, `post-update-cmd` et `customize-reminder`.
-* Corriger les namespaces des sections `autoload` et `autoload-dev`.
+#### Editer les métadonnées
+
+Ce sont les champs `name`, `description`, `type` et `license`.
+
+#### Supprimer les scripts du squelette
+
+Ce sont les scripts `post-install-cmd`, `post-update-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.
+
+#### Fixer les contraintes de version
 
-## Supprimer les fichiers modèles
+Elle sont dans les sections `require` et `require-dev`. Il faut remplacer `"*"` par des contraintes de version de type `"^x.y"`.
+
+**Si vous ne le faites pas, vous risquez une mauvaise surprise lors d'un `composer update`.**
+
+_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
-rm src/*.php tests/*.php CUSTOMIZATION.md
+$ 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"
+    }
+}
 ```
diff --git a/README.md b/README.md
index cf4ea08..0dcd72b 100644
--- a/README.md
+++ b/README.md
@@ -6,43 +6,43 @@ Il peut être utilisé directement avec composer :
 
     composer create-project irstea/php-skeleton my-package-directory
 
-Une fois le projet crée, il y a encore quelques étapes *indispensables$ à suivre pour terminer l'initialisation, cf. [CUSTOMIZATION.md](CUSTOMIZATION.md).
+Une fois le projet crée, il y a encore quelques étapes \*indispensables\$ à suivre pour terminer l'initialisation, cf. [CUSTOMIZATION.md](CUSTOMIZATION.md).
 
 ## Ce qu'il contient
 
-* un squelette d'organisation des sources ([`src/`](src) et [`tests/`](tests)),
+-   un squelette d'organisation des sources ([`src/`](src) et [`tests/`](tests)),
 
-* un [`composer.json`](composer.json) qui inclut les outils suivants:
+-   un [`composer.json`](composer.json) qui inclut les outils suivants:
 
-    * composer-require-checker
-    * php-cs-fixer (via irstea/php-cs-fixer-config)
-    * php-parallel-lint
-    * phpcpd
-    * phploc
-    * phpmd (via irstea/phpmd-config)
-    * phpstan (via irstea/phpstan-config)
-    * phpunit
-    * security-checker
+    -   composer-require-checker
+    -   php-cs-fixer (via irstea/php-cs-fixer-config)
+    -   php-parallel-lint
+    -   phpcpd
+    -   phploc
+    -   phpmd (via irstea/phpmd-config)
+    -   phpstan (via irstea/phpstan-config)
+    -   phpunit
+    -   security-checker
 
-* une préconfiguration pour les outils suivants:
+-   une préconfiguration pour les outils suivants:
 
-    * [editorconfig](.editorconfg)
-    * [php-cs-fixer](.php_cs.dist)
-    * [phpmd](phpmd-ruleset.xml)
-    * [phpstan](phpstan.neon)
-    * [phpunit](phpunit.xml)
+    -   [editorconfig](.editorconfg)
+    -   [php-cs-fixer](.php_cs.dist)
+    -   [phpmd](phpmd-ruleset.xml)
+    -   [phpstan](phpstan.neon)
+    -   [phpunit](phpunit.xml)
 
-* un [`.gitlab-ci.yml`](.gitlab-ci.yml) qui utilise les outils précédemment cité.
+-   un [`.gitlab-ci.yml`](.gitlab-ci.yml) qui utilise les outils précédemment cité.
 
 ## Ce qu'il ne contient pas
 
-* Un squelette d'application Symfony :
+-   Un squelette d'application Symfony :
 
-    * Tous les packages ne sont pas des applications Symfony.
-    * Les nouvelles versions de Symfony sortent trop rapidement pour espérer suivre.
-    * Pour les nouveaux projets Symfony, il faut utiliser `symfony/flex` de toute façon.
+    -   Tous les packages ne sont pas des applications Symfony.
+    -   Les nouvelles versions de Symfony sortent trop rapidement pour espérer suivre.
+    -   Pour les nouveaux projets Symfony, il faut utiliser `symfony/flex` de toute façon.
 
-* Un squelette pour docker-composer :
+-   Un squelette pour docker-composer :
 
-    * Tous les packages n'en ont pas besoin.
-    * C'est très dépendant des applications.
+    -   Tous les packages n'en ont pas besoin.
+    -   C'est très dépendant des applications.
-- 
GitLab