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

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