website annotate fr/devel/forge.php @ rev 1256

Tiny edits of the hidden data (doctype, meta, line endings, hidden symbols).
author Aleksej Bobylev <al.bobylev@gmail.com>
date Thu Apr 23 23:53:42 2015 +0300 (2015-04-23)
parents 7986d2835cb2
children 0dedd51426ac
rev   line source
pankso@1240 1 <!DOCTYPE html>
pankso@1240 2 <html lang="fr">
pankso@368 3 <head>
al@1256 4 <meta charset="utf-8"/>
pankso@781 5 <title>SliTaz (fr) - Forge</title>
al@1256 6 <meta name="description" content="Développement de SliTaz GNU/Linux"/>
al@1256 7 <meta name="keywords" lang="fr" content="developpement slitaz developer GNU Linux"/>
pankso@368 8 <meta name="author" content="Christophe Lincoln"/>
al@1017 9 <?php include("../../lib/html/meta-link.html"); ?>
pankso@368 10 </head>
pankso@781 11 <body>
pankso@368 12
pankso@1240 13 <?php
pankso@1240 14 include("../../lib/html/header.fr.html");
pankso@1240 15 include("../../lib/html/nav.fr.html");
pankso@1240 16 include("../../lib/lang.php");
pankso@1240 17 ?>
al@1027 18
pankso@368 19 <!-- Content -->
pankso@368 20 <div id="content">
pankso@368 21
paul@1021 22 <h2>Gestion collaborative du développement</h2>
pankso@368 23
pankso@1240 24 <p>
pankso@1240 25 Les outils et services utilisés pour forger Slitaz :-)
pankso@1240 26 </p>
pankso@1240 27
pankso@368 28 <ul>
pankso@781 29 <li><a href="#kiss">KISS et respect des standards.</a></li>
pankso@781 30 <li><a href="#tank">Build host &amp; home.</a></li>
paul@1021 31 <li><a href="#repos">Dépôts Mercurial.</a></li>
paul@1021 32 <li><a href="#iconv">Implémentation d'iconv().</a></li>
pankso@781 33 <li><a href="#pkgs">Paquets tazpkg.</a></li>
pankso@781 34 <li><a href="#pkgs-naming">Nommage des paquets.</a></li>
pankso@781 35 <li><a href="#site">Gestion du site Web et des livres.</a></li>
pankso@781 36 <li><a href="#xhtml">xHTML coding style.</a></li>
pankso@368 37 </ul>
pankso@368 38
pankso@368 39 <p>
pankso@1240 40 Le projet SliTaz dispose de divers moyens pour gérer le travail des
pankso@1240 41 développeurs et collaborer. Un système de gestion de révision avec Mercurial
pankso@1240 42 (Hg), des modules de synchronisation avec Rsync, de la documentation, une
pankso@1240 43 <a href="../mailing-list.php">liste de discussion</a> et un canal IRC. Tous
pankso@1240 44 les développeurs sont inscrits sur la liste, c'est le moyen de collaboration
pankso@1240 45 principal et privilégié.
pankso@368 46 </p>
pankso@368 47
al@1027 48 <h3 id="kiss">KISS et respect des standards</h3>
al@1027 49
pankso@506 50 <p>
pankso@1240 51 Rester simple, respecter au mieux les standards, réaliser un travail soigné,
pankso@1240 52 rédiger de la documentation de haute qualité, fournir un système stable et
pankso@1240 53 robuste et garder le <em>rootfs</em> du LiveCD standard assez léger pour que
pankso@1240 54 SliTaz tourne sur des machines ayant au minimum 128 Mb de RAM. Possibilité
pankso@1240 55 d'utiliser GTK+2, Dialog, Gtkdialog, des scripts SHell ou encore PHP pour
pankso@1240 56 coder des outils propres à la distribution. L'idée est aussi de ne pas faire
pankso@1240 57 de doublons et de penser mini...
pankso@506 58 </p>
pankso@1240 59
pankso@506 60 <p>
pankso@1240 61 SliTaz se veut un projet proche et à l'écoute des ses utilisateurs. Il y a
pankso@1240 62 plusieurs développeurs actifs sur le <a href="http://forum.slitaz.org/">forum</a>
pankso@1240 63 et sur la <a href="../mailing-list.php">liste de discussion</a>.
pankso@506 64 </p>
pankso@506 65
al@1027 66 <h3 id="tank">Tank - Build host &amp; home</h3>
al@1027 67
pankso@368 68 <p>
pankso@1240 69 Chaque contributeur peut avoir un compte sur le serveur principal du
pankso@1240 70 projet, avec un accès sécurisé, de l'espace disque, un répertoire public
pankso@1240 71 et tous les outils de développement. Les développeurs peuvent y compiler
pankso@1240 72 leurs paquets et les mainteneurs du miroir s'occupent de la synchronisation.
pankso@1240 73 Tank héberge aussi le site internet, le web boot et les dépôts Mercurial:
pankso@1240 74 <a href="http://tank.slitaz.org/">tank.slitaz.org</a>
pankso@368 75 </p>
pankso@1240 76
pankso@368 77 <p>
pankso@1240 78 L'utilisation du build host est décrite dans le Cookbook:
pankso@1240 79 <a href="http://doc.slitaz.org/en:cookbook:buildhost">SliTaz Build Host (tank)</a>.
pankso@368 80 </p>
pankso@368 81
al@1027 82 <h3 id="repos">Dépôts Mercurial</h3>
al@1027 83
pankso@368 84 <p>
pankso@1240 85 Tous les sous-projets tels que Tazpkg, Tazwok ou Tazlito ont leurs propres
pankso@1240 86 dépôts Hg sur le serveur du projet, tout comme le wok. Les développeurs ont
pankso@1240 87 un compte et des droits en écriture afin de pouvoir envoyer leurs recettes,
pankso@1240 88 mises à jour ou modifications. Il est bien sûr possible de demander la création
pankso@1240 89 d'un nouveau dépôt pour collaborer sur un nouveau sous-projet lié à SliTaz.
pankso@1240 90 A noter qu'il y a 2 domaines : <a href="http://hg.slitaz.org/">hg.slitaz.org</a>
pankso@1240 91 est public et <code>repos.slitaz.org</code> nécessite une authentification, c'est-à-dire
pankso@1240 92 que vous pouvez cloner hg.slitaz.org mais pas y pousser vos changements ou fichiers.
pankso@368 93 </p>
al@1027 94
pankso@368 95 <h4>~/.hgrc</h4>
al@1027 96
pankso@368 97 <p>
pankso@1240 98 Mercurial utilise un fichier caché <code>~./hgrc</code> permettant de
pankso@1240 99 spécifier son nom d'utilisateur. Il faut mettre votre nom et adresse mail pour
pankso@1240 100 qu'on sache qui a modifié quoi. Et attention à ne pas être <em>root</em> pour
pankso@1240 101 pousser vos modifications. Exemple :
pankso@368 102 </p>
pankso@1240 103
pankso@368 104 <pre class="script">
pankso@368 105 [ui]
paul@1021 106 username = Prénom Nom &lt;you@example.org&gt;
pankso@368 107 </pre>
al@1027 108
pankso@368 109 <h4>Cloner, modifier, commiter et pousser</h4>
al@1027 110
pankso@368 111 <p>
pankso@1240 112 Vous avez le choix de cloner anonymement via hg.slitaz.org ou
pankso@1240 113 directement avec votre login et mot de passe. Pour cloner un dépôt
pankso@1240 114 tel que le wok :
pankso@368 115 </p>
pankso@1240 116
pankso@368 117 <pre>
pankso@368 118 $ hg clone http://repos.slitaz.org/wok/
pankso@368 119 </pre>
pankso@1240 120
pankso@368 121 <p>
pankso@1240 122 Copier, créer, modifier des recettes ou des fichiers dans <code>stuff</code>.
pankso@1240 123 Avant de pouvoir pousser vos modifs, il faut les additionner à votre dépôt
pankso@1240 124 local et les commiter. A noter que la commande <code>status</code> permet de
pankso@1240 125 savoir quels fichiers ont été modifiés :
pankso@368 126 </p>
pankso@1240 127
pankso@368 128 <pre>
pankso@368 129 $ cd wok
pankso@368 130 $ hg status
pankso@368 131 $ hg add
pankso@368 132 $ hg commit
pankso@368 133 </pre>
pankso@1240 134
pankso@368 135 <p>
pankso@1240 136 La commande <code>commit</code> va ouvrir l'éditeur de texte Nano pour écrire le message
pankso@1240 137 destiné aux logs (Ctrl + X pour enregistrer et quitter). Vous pouvez éviter
pankso@1240 138 Nano en utilisant l'option : <code>-m "Message"</code>. And please,
pankso@1240 139 messages in English if possible :
pankso@368 140 </p>
pankso@1240 141
pankso@368 142 <pre>
pankso@368 143 $ hg commit -m "Message for Mercurial log"
pankso@368 144 </pre>
pankso@1240 145
pankso@368 146 <p>
pankso@1240 147 Une fois que tout est prêt, vous pouvez encore utiliser la commande
pankso@1240 148 <code>log</code> pour voir ce qui va être affiché sur l'interface web. Pour
pankso@1240 149 pousser vos changements c'est <code>push</code> :
pankso@368 150 </p>
pankso@1240 151
pankso@368 152 <pre>
pankso@368 153 $ hg log
pankso@368 154 $ hg push
pankso@368 155 </pre>
pankso@1240 156
pankso@368 157 <p>
pankso@1240 158 Si vous avez cloné depuis hg.slitaz.org, il faut alors pousser en spécifiant
pankso@1240 159 le bon URL :
pankso@368 160 </p>
pankso@1240 161
pankso@368 162 <pre>
pankso@368 163 $ hg push http://repos.slitaz.org/wok/
pankso@368 164 </pre>
al@1027 165
paul@1021 166 <h4>Mettre à jour un wok local</h4>
al@1027 167
pankso@368 168 <p>
pankso@1240 169 Pour mettre à jour votre wok local avec celui du serveur (<em>pull</em>
pankso@1240 170 pour tirer les changements) :
pankso@368 171 </p>
pankso@1240 172
pankso@368 173 <pre>
pankso@368 174 $ hg pull
pankso@368 175 $ hg update
pankso@368 176 </pre>
al@1027 177
pierre@452 178 <h4>Commandes utiles</h4>
al@1027 179
pankso@368 180 <p>
pankso@1240 181 Des commandes hg qui peuvent servir.
pankso@368 182 </p>
pankso@1240 183
pankso@368 184 <ul>
paul@1021 185 <li><code>hg help</code> : affiche la liste complète des commandes.</li>
paul@1021 186 <li><code>hg rollback</code> : annule la dernière action exécutée (commit,
pankso@368 187 pull, push).</li>
pierre@452 188 <li><code>hg log &lt;paquet&gt;</code> : affiche les logs pour un paquet.</li>
pierre@452 189 <li><code>hg head</code> : affiche le dernier log.</li>
pankso@368 190 </ul>
pankso@368 191
al@1027 192 <h3 id="iconv">Implémentation d'iconv()</h3>
al@1027 193
pankso@506 194 <p>
pankso@1240 195 SliTaz utilise iconv() fourni par la GNU glibc, même si certain paquets
pankso@1240 196 proposent d'utiliser <code>libiconv</code> il faut utiliser la version de
pankso@1240 197 la glibc (paquet <code>glibc-locale</code>). Il n'y a donc pas de paquet
pankso@1240 198 libiconv (1,2 Mb) dans SliTaz.
pankso@506 199 </p>
pankso@506 200
al@1027 201 <h3 id="pkgs">Paquets tazpkg</h3>
al@1027 202
pankso@368 203 <p>
pankso@1240 204 Les paquets tazpkg de SliTaz sont créés automatiquement via Tazwok et les
pankso@1240 205 recettes contenues dans le wok, <a href="http://doc.slitaz.org/fr:cookbook:start">le Cookbook</a>
pankso@1240 206 décrit <a href="http://doc.slitaz.org/fr:cookbook:wok">l'utilisation des outils SliTaz</a>
pankso@1240 207 et le format des <a href="http://doc.slitaz.org/fr:cookbook:receipt">recettes</a>,
pankso@1240 208 c'est sans doute par un petit peu de lecture qu'il faut commencer.
pankso@368 209 </p>
pankso@1240 210
pankso@368 211 <p>
pankso@1240 212 Concernant le choix des paquets, l'idée est de proposer un paquet par tâche ou
pankso@1240 213 fonctionnalité, c'est à dire pas (trop) de doublons et de trouver
pankso@1240 214 l'application la plus légère dans son domaine. A noter que les paquets actuels
pankso@1240 215 ne sont pas figés, si vous trouvez une alternative à un paquet existant, étant
pankso@1240 216 plus légère, ayant plus de fonctionnalités ou étant plus <em>sexy</em> pour
pankso@1240 217 quelques Ko supplémentaires, vous pouvez la proposer sur la liste. Une
pankso@1240 218 attention particulière est portée aux paquets destinés au LiveCD : strip,
pankso@1240 219 suppression de tout ce qui est inutile, dépendances et options de compilation.
pankso@1240 220 En général, les paquets candidats pour le corps du LiveCD sont discutés sur
pankso@1240 221 la liste.
pankso@368 222 </p>
pankso@1240 223
pankso@368 224 <p>
pankso@1240 225 Avant de commencer à compiler et créer des paquets pour SliTaz, assurez-vous
pankso@1240 226 qu'une recette n'existe pas dans le wok undigest, disponible sur le miroir
pankso@1240 227 principal de SliTaz. N'oubliez pas non plus que les membres de la liste sont
pankso@1240 228 là pour vous aider et que pour bien commencer,
pankso@1240 229 <a href="http://doc.slitaz.org/fr:cookbook:wok"
pankso@1240 230 >la documentation du wok et des outils</a> existe.
pankso@368 231 </p>
pankso@368 232
al@1027 233 <h3 id="pkgs-naming">Nommage des paquets</h3>
al@1027 234
pankso@506 235 <p>
pankso@1240 236 Dans la majorité des cas le nom du paquet est celui des sources exception
pankso@1240 237 faite des modules Python, Perl, PHP, Ruby, Lua. Par example le paquet Kid
pankso@1240 238 fournissant un système de template XML et écrit en Python se nomme:
pankso@1240 239 <code>python-kid</code>.
pankso@506 240 </p>
pankso@506 241
al@1027 242 <h3 id="site">Gestion du site Web et des livres</h3>
al@1027 243
pankso@368 244 <p>
pankso@1240 245 La gestion du site et des livres (Handbook et Cookbook) est faite via un
pankso@1240 246 dépôt Mercurial, ce qui nous permet de traviller à plusieurs. Il faut
pascal@1242 247 juste installer <code>mercurial</code> sur SliTaz et connaître les commandes
pankso@1240 248 de base. Une fois le dépôt cloné vous avez une copie complète du site en
pankso@1240 249 local pour commencer à travailler. Pour cloner le site web :
pankso@368 250 </p>
pankso@1240 251
pankso@368 252 <pre>
pankso@368 253 $ hg clone http://hg.slitaz.org/website
pierre@452 254 </pre>
pankso@1240 255
pierre@452 256 <p>
pankso@1240 257 Sur SliTaz vous pouvez installer le serveur web Lighttpd et mettre le
pankso@1240 258 site dans votre répertoire ~/Public, cela permet de naviguer dans
pankso@1240 259 votre copie locale via localhost/~user.
pankso@396 260 </p>
pankso@368 261
al@1027 262 <h3 id="xhtml">xHTML coding style</h3>
al@1027 263
pankso@506 264 <p>
pankso@1240 265 Les pages du site et des différents <em>books</em> sont codés en xHTML 1.0
pankso@1240 266 Transitional, les couleurs pour le <code>body</code> et les titres sont
pankso@1240 267 directement mis dans la page, cela permet d'avoir une présentation plus soignée
pankso@1240 268 pour Links. Le titre de niveau 1 est utilisé une seule fois en haut de page,
pankso@1240 269 le titre 2 correspond au titre du document et les titres de niveau 3 et 4 sont
pankso@1240 270 ensuite utilisés pour les sous-titres. Si il y a lieu d'avoir une liste à puces
pankso@1240 271 avec des ancres, elle se met en haut juste après le titre de niveau 2. Les
pankso@1240 272 paragraphes sont contenus dans les balises <code>&lt;p&gt;&lt;/p&gt;</code>.
pankso@1240 273 Pour indenter, nous utilisons des tabulations, elles ont une raison d'être
pankso@1240 274 sémantique et prennent moins de place en terme d'octets. Pour mettre
pankso@1240 275 du code tel que le nom d'une commande dans un paragraphe, la balise
pankso@1240 276 <code>&lt;code&gt;</code> est recommandée. Pour afficher une ou des commandes
pankso@1240 277 à lancer dans un terminal, les pages du site utilisent la balise
pankso@1240 278 <code>&lt;pre&gt;</code> permettant d'afficher du texte préformaté. Exemple :
pankso@506 279 </p>
pankso@1240 280
pankso@506 281 <pre>
pankso@506 282 $ command
pankso@506 283 </pre>
pankso@1240 284
pankso@506 285 <p>
pankso@1240 286 Pour afficher du texte à copier/coller tels que des scripts, des bouts de
pankso@1240 287 code, des exemples de fichiers de configuration, etc, c'est aussi la balise
pankso@1240 288 <code>&lt;pre&gt;</code> mais avec une classe CSS nommée "script". Exemple:
pankso@506 289 </p>
pankso@1240 290
pankso@506 291 <pre class="script">
pankso@506 292 &lt;pre class="script"&gt;
pankso@506 293
pankso@506 294 code...
pankso@506 295
pankso@506 296 &lt;/pre&gt;
pankso@506 297 </pre>
pankso@1240 298
pankso@506 299 <p>
pankso@1240 300 Les mots en <em>English</em> se mettent dans la balise <code>&lt;em&gt;</code>
pankso@1240 301 et les liens internes sont relatifs. Penser à vérifier la validité du code via
pankso@1240 302 le <em>validator</em> en ligne du W3C.
pankso@506 303 </p>
pankso@506 304
pankso@368 305 <h3>Diff et patch</h3>
al@1027 306
pankso@368 307 <p>
pankso@1240 308 Les utilitaires <code>diff</code> et <code>patch</code> sont des outils en
pankso@1240 309 ligne de commande permettant de créer et d'appliquer un fichier contenant
pankso@1240 310 les différences entre deux fichiers. Cette technique est souvent utilisée
pankso@1240 311 pour collaborer et permet d'extraire clairement les modifications apportées
pankso@1240 312 au fichier original. Pour créer un fichier <code>diff</code> lisible par
pankso@1240 313 les humains dans un simple éditeur de texte, il faut utiliser l'option
pankso@1240 314 <code>-u</code> en argument :
pankso@368 315 </p>
pankso@1240 316
pankso@368 317 <pre>
pankso@368 318 $ diff -u file.orig file.new > file.diff
pankso@368 319 </pre>
pankso@1240 320
pankso@368 321 <p>
pankso@1240 322 Pour appliquer un patch :
pankso@368 323 </p>
pankso@1240 324
pankso@368 325 <pre>
pankso@368 326 $ patch file.orig file.diff
pankso@368 327 </pre>
pankso@368 328
pankso@781 329 <!-- End of content -->
pankso@368 330 </div>
pankso@368 331
al@1017 332 <?php include("../../lib/html/footer.html"); ?>
pankso@368 333
pankso@368 334 </body>
pankso@368 335 </html>