com doc/fr: Improve and expand README: README.md README.txt

[email protected] (George Peter Banyard) Tue, 02 Feb 2021 07:05:58 +0000
Newsgroups php.doc.fr
Message-ID <[email protected]>
Commit:    d1b90952cefd57ead2fc87f80eaa76fb30c008e3
Author:    George Peter Banyard <[email protected]>         Tue, 2 Feb 2021 07:05:58 +0000
Parents:   73aaee222edd3d1229059064fa906e8c5ebad785
Branches:  master

Link:       http://git.php.net/?p=doc/fr.git;a=commitdiff;h=d1b90952cefd57ead2fc87f80eaa76fb30c008e3

Log:
Improve and expand README

Changed paths:
  A  README.md
  D  README.txt
diff_d1b90952cefd57ead2fc87f80eaa76fb30c008e3.txt (text/plain, 13.3 KB)
diff --git a/README.md b/README.md
new file mode 100644
index 0000000000..30f3963244
--- /dev/null
+++ b/README.md
@@ -0,0 +1,224 @@
+# Documentation française de PHP
+
+Ce document a pour but d'expliquer comment participer à la rédaction de la
+documentation française de PHP.
+
+Si vous voulez lire la documentation et non la rédiger aller voir le site PHP.net :
+https://www.php.net/manual/fr/
+
+De plus, si une erreur est présente dans la documentation vérifiez qu'elle ne se
+trouve pas non plus dans la documentation anglaise, si oui corrigez celle-ci d'abord.
+La traduction française suivra la modification faite dans la documentation anglaise.
+
+# Sommaire
+
+ 1. Installation
+ 2. Construire la documentation
+ 3. Revision Tracking
+ 4. Coding Standard
+ 5. Traduction, relectures et orthographe
+ 6. Workflow git
+ 7. Commandes utiles
+
+
+## 1: Installation :
+
+Pour construire la documentation il faut posséder à minimal les trois repository suivant :
+ - ``php/doc-base`` : qui possède les outils pour construire la documentation
+   trouvée sur ``git.php.net`` : https://git.php.net/?p=doc/base.git;a=summary
+ - ``php/doc-en`` : la version anglaise de la documentation sur laquelle se rabattre quand
+   la version française est inexistante pour une page : https://git.php.net/?p=doc/en.git;a=summary
+ - ``php/doc-fr`` : la version française de la documentation : https://git.php.net/?p=doc/fr.git;a=summary
+
+> Note : vous pouvez cloner à partir du miroir GitHub, mais pour que la documentation puisse
+> être construite le dossier où se situe la documentation anglaise *doit* être nommé ``en``
+> et celui de la documentation française *doit* être nommé ``fr``.
+
+## 2: Construire la documentation
+
+Il est important de savoir construire la documentation pour s'assurer que les changements effectué
+ne casse pas le build, ce qui empêchera la publication de la dernière version de celle-ci sur php.net.
+
+En s'imaginant qu'on se situe dans le dossier ``fr`` dans la structure de dossier suivante :
+
+```
+|
+|- base
+|- en
+|- fr
+ |- ...
+```
+
+Il suffit d'exécuter ``php ../base/configure.php --with-lang=fr``
+
+Si tout ce passe bien vous serez accueillie avec le message suivant :
+
+```
+All good. Saving .manual.xml... done.
+All you have to do now is run 'phd -d /home/user/Dev/php-docs/base/.manual.xml'
+If the script hangs here, you can abort with ^C.
+         _ _..._ __
+        \)`    (` /
+         /      `\
+        |  d  b   |
+        =\  Y    =/--..-="````"-.
+          '.=__.-'               `\
+             o/                 /\ \
+              |                 | \ \   / )
+               \    .--""`\    <   \ '-' /
+              //   |      ||    \   '---'
+         jgs ((,,_/      ((,,___/
+
+ (Run `nice php configure.php` next time!)
+```
+
+Sinon, vous avez une erreur XML Docbook qu'il faut corriger avant.
+
+
+## 3: Revision Tracking
+
+Pour s'assurer que la traduction française soit à jour avec la documentation anglaise,
+un système de `rev-check` existe.
+
+Ceci ce manifeste par le commentaire suivant en haut de chaque fichier XML :
+```xml
+<!-- EN-Revision: git-hash Maintainer: XXXX Status: YYYYY -->
+```
+
+Lors de la mise à jour d'un fichier pour répliquer les changements effectués sur la version
+anglaise il est primordial de mettre à jour le hache git du commit anglais.
+
+Le statut du rev-check peut actuellement être consulté sur
+http://doc.php.gpb.moe/tools/revcheck/fr/outdated.html
+
+> Normalement le rev-check se trouve sur le site https://doc.php.net, mais à cause de la
+> migration récente de la documentation de SVN à git il se trouve là-bas actuellement.
+
+## 4: Coding style
+### Fichier XML
+
+Le pas à respecter pour l'indentation est de 1.
+Le caractère d'indentation est l'espace ` ` (aucune tabulation n'est admise dans les fichiers `.xml`).
+Exemple :
+```xml
+<note>
+_<para>
+__<example>
+___<title>
+___</title>
+__</example>
+_</para>
+</note>
+```
+
+De plus la soft-limit du nombre de caractères par ligne est de 80.
+
+### Exemple PHP
+Officiellement le groupe de documentation PHP a choisi d'utiliser les coding standards de PEAR,
+vous les trouverez ici : http://pear.php.net/manual/fr/standards.php
+
+> En pratique néanmoins le coding style est un mélange entre PEAR et PSR-2/12,
+> essayer donc de suivre le style dans lequel la page a été écrite, ou celui de la documentation anglaise.
+
+Le code source PHP commence à la colonne zéro de l'exemple :
+```php
+<?php
+ca_commence_ici(); // bien
+  ca_commence_ici(); // pas bien
+?>
+```
+
+On notera aussi qu'on privilégie les `echo` à `print` (`echo` sans parenthèses).
+Tout le code est censé être compatible avec `error_reporting(E_ALL)`
+
+## 5: Traduction, relectures et orthographe
+
+Afin d'avoir un manuel en bon français, la traduction de certain terme technique
+se trouve dans le document ``TRADUCTIONS.txt``.
+
+Il est aussi nécessaire de le relire la traduction pour s'assurer que le texte
+traduit ait du sens et soit en accordance avec le texte anglais.
+
+Après la relecture d'une traduction le tag/commentaire suivant
+``<!-- Reviewed: no/yes -->`` doit avoir la valeur `yes`.
+Lors d'une modification d'un fichier relu ce tag doit passer à la valeur ``no``,
+sauf lors de modification mineure/changement purement XML (e.g. changement d'un element
+`<methodsynopsis>`).
+
+### Traduire une nouvelle page
+
+La traduction d'une nouvelle page anglaise en français est relativement simple,
+copier/coller le fichier en question, ajouter le commentaire de revision tracking
+avec le hache de commit de la version du fichier anglais que vous venez de copier,
+ceci permet de s'assurer que le fichier soit bien à jour après que la traduction
+soit faite.
+
+Il est à noter que le fichier doit être *entièrement* (modulo les exemples) traduit
+avant d'être ajouté au repo git officiel.
+
+## 6: Workflow git
+
+Essayez (dans la mesure du possible) de commiter répertoire par répertoire,
+ou dans ``reference/`` extension par extension.
+
+Pour les messages de logs des commits, on essayera de :
+ - faire des messages en anglais (au cas où un non-francophone a besoin de comprendre les modifications)
+ - faire des messages explicites (ne pas mettre "typo" quand on rajoute du texte...)
+
+### Utilisateur lambda
+
+Pour proposer une modification vous devez passer par une pull request contre le miroir GitHub
+`doc-fr`, pour cella faire un fork du repository `doc-fr` de GitHub, créer une nouvelle branche
+(feature branch) faite vos modifications, committer, puis `git push` la branche sur votre fork
+afin d'ouvrir une pull request.
+
+Si des remarques sont faites sur votre pull request suivez-les.
+Après que la pull request soit approuvé, faite un squash-rebase de votre pull request pour
+que les modifications se trouve en un seul commit, ceci simplifie le travail pour la personne
+qui doit merge votre contribution sur le repository git officiel.
+
+### Utilisateur ayant un accès VCS (c.à.d un compte @php.net, avec du karma sur doc-fr)
+
+Il n'est pas nécessaire de passer par une pull request et vous pouvez commit et
+push directement sur la branche ``master`` du repo doc-fr sur https://git.php.net.
+
+Éviter les "merge commit" et préférez un ``git rebase`` suivi d'un merge fast-forward.
+
+Ne créer et pusher pas des branches différentes de ``master`` sur le repo git officiel.
+
+### Procédure pour merge une pull request GitHub dans git.php.net
+
+Comme GitHub est un miroir, il est nécessaire de merge manuellement les pulls requests.
+Pour l'exemple on va imaginer que le numéro de la pull request est ``99999``.
+
+La pull request se trouve donc à cette adresse : ``https://github.com/php/doc-fr/pull/99999``
+
+GitHub fournit le patch de cette PR à l'adresse suivante : ``https://github.com/php/doc-fr/pull/99999.patch``
+qui sera convertie en ``https://patch-diff.githubusercontent.com/raw/php/doc-fr/pull/99999.patch``
+
+Il suffit alors de ``curl`` le patch et le ``git am`` de la manière suivante :
+```shell
+curl https://patch-diff.githubusercontent.com/raw/php/doc-fr/pull/99999.patch | git am --signoff
+```
+
+Avant de push ce commit on va éditer le message du commit pour ajouter un lien bi-directionnel
+entre le commit et la pull request. Pour cella, ajouter dans le texte étendu du commit le texte suivant :
+``Closes GH-99999``
+
+Ceci, clôtura la PR automatiquement lors du commit et génèrera le lien bi-directionnel.
+
+
+## 7: Commandes utiles
+
+### Tester syntaxiquement tous les exemples dans le dossier `reference` :
+
+Ici, on va lancer une analyse syntaxique de tous les fichiers dans
+les répertoires "functions" de fr/reference/. La technique est simple,
+on configure short_open_tag à Off en ligne de commande pour que PHP n'analyse
+que les exemples commençant par `<?php`, puis on lance la moulinette :
+
+```shell
+cd reference
+for i in $(find -name *.xml); do php -d "short_open_tag=Off" -l $i; done > syntax.txt
+cat syntax.txt | grep -B1 Errors
+```
diff --git a/README.txt b/README.txt
deleted file mode 100644
index 1621244c22..0000000000
--- a/README.txt
+++ /dev/null
@@ -1,131 +0,0 @@
-$Revision: 331053 $
-
-But : Ce fichier a pour but de définir les règles à respecter lors de vos traductions/mises à jour de fichiers.
-
-Structure :
-
-I    - Indentation
-II   - Coding Standards
-III  - Revision tracking
-IV   - Commentaires dans les fichiers
-V    - Commits et messages de log
-VI   - Commandes utiles
-VII  - Traductions de quelques mots
-VIII - Orthographe et relectures
-
-I - Indentation :
-
-Le pas à respecter pour l'indentation est de 1. Exemple :
-<note>
-_<para>
-__<example>
-___<title>
-___</title>
-__</example>
-_</para>
-</note>
-
-Le caractère d'indentation est l'espace (aucune tabulation n'est admise dans les fichiers .xml)
-
-
-
-II - Coding standards :
-
-Le groupe de documentation PHP a choisi d'utiliser les coding standards de PEAR, vous les trouverez ici :
-  http://pear.php.net/manual/fr/standards.php
-Merci donc de les lire et de les appliquer.
-
-Le code source PHP commence à la colonne zéro de l'exemple :
-
-<?php
-ca_commence_ici(); // bien
-  ca_commence_ici(); // pas bien
-?>
-
-On notera aussi qu'on privilégie les echo à print (echo sans parenthèses).
-Tout le code est censé être compatible avec error_reporting(E_ALL) et register_globals = Off.
-
-
-
-III - Revision tracking.
-
-Vers la fin février, la documentation française a adopté la méthode de Revision Tracking par balises :
-   http://fr.php.net/manual/howto/translation-revtrack.html (9.4.2).
-
-Dans un premier temps, nous avons rajouté la balise suivante dans tous les fichiers :
-<!-- EN-Revision: 1.1 Maintainer: nobody Status: partial -->
-
-Pourquoi avons-nous fait cela ?
-
-L'adoption de cette méthode permet de mieux suivre les différences entre la
-documentation anglaise et française.
-Vous pourrez le constater en utilisant le script revcheck.php (dans
-phpdoc-fr/scripts/) ou en visitant http://doc.php.net/php/fr/revcheck.php
-
-
-
-IV - Commentaires dans les fichiers
-
-Les seuls commentaires qui doivent figurer en début de fichier sont :
-
-<!-- $Revision: 331053 $ -->
-<!-- EN-Revision: 1.5 Maintainer: XXXX Status: YYYYY -->
-<!-- Reviewed: ZZZ -->
-
-Le dernier tag permet de spécifier si le document a été relu ou non. ZZZ vaut 'yes' s'il l'a été, 'no' sinon.
-
-Et bien sûr, les commentaires des traducteurs (<!-- ne touchez pas ce fichier svp, utilisateur -->)
-
-
-
-V - Commits et messages de log
-
-Essayez (dans la mesure du possible) de commiter répertoire par répertoire.
-Dans fr/reference/ commitez extension par extension.
-
-En ce qui concerne les messages de logs pour les commits, on essayera de :
- - faire des messages en anglais (au cas où un non-francophone a besoin de comprendre les modifications)
- - faire des messages explicites (ne pas mettre "typo" quand on rajoute du texte...)
-
-Bon, évidemment, on n'est pas chez les scouts, les écarts seront tolérés.
-
-
-
-VI - Commandes utiles
-
-(On suppose par la suite qu'on est d'office dans le répertoire racine du module de la doc française)
-Voici quelques commandes utiles lors de vos traductions/commits :
-
-1 - Commiter de grosses modifications dans fr/reference/
-si vous avez modifié plusieurs fichiers dans plusieurs extensions :
-
-cd reference
-for i in $(ls); do cvs ci -m "message de log" $i; done
-
-2 - Tester syntaxiquement tous les exemples sous fr/reference :
-
-Ici, on va lancer une analyse syntaxique de tous les fichiers dans
-les répertoires "functions" de fr/reference/. La technique est simple,
-on configure short_open_tag à Off en ligne de commande pour que PHP n'analyse
-que les exemples commençant par <?php, puis on lance la moulinette :
-
-cd reference
-for i in $(find -name *.xml); do php -d "short_open_tag=Off" -l $i; done > syntax.txt
-cat syntax.txt | grep -B1 Errors
-
-
-
-VII  - Traductions de quelques mots
-
-Voir le fichier TRADUCTIONS.txt
-
-
-
-VIII - Orthographe et relectures
-
-Afin d'avoir un manuel en bon français, nous avons des relecteurs.
-Les relecteurs ne font presque jamais de traductions (ils ne changent jamais le tag EN-Revision)
-Ils doivent par contre changer (ou ajouter) le tag <!-- Reviewed: no/yes -->
-Quand un relecteur valide un document, il doit passer la valeur de Reviewed à "yes".
-Quand un traducteur met à jour un fichier, il doit passer la valeur de Reviewed à "no".
-Nous mettrons bientôt à disposition une interface graphique permettant aux relecteurs de voir les fichiers à valider.