website annotate fr/devel/forge.html @ rev 506

fr: Add iconv() and pkgs naming info, merge guidelines to forge.html and info about art.slitaz.org
author Christophe Lincoln <pankso@slitaz.org>
date Sat Jun 13 15:12:46 2009 +0200 (2009-06-13)
parents 6c3049c7d0db
children 83d68707e682
rev   line source
pankso@368 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
pankso@368 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>
pankso@506 5 <title>SliTaz - Forge (fr)</title>
pankso@368 6 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
pankso@368 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="robots" content="index, follow, all" />
pankso@368 10 <meta name="revisit-after" content="7 days" />
pankso@368 11 <meta name="expires" content="never" />
pankso@368 12 <meta name="modified" content="2009-16-01 16:00:00" />
pankso@368 13 <meta name="author" content="Christophe Lincoln"/>
pankso@368 14 <meta name="publisher" content="www.slitaz.org" />
pankso@368 15 <link rel="shortcut icon" href="../../favicon.ico" />
pankso@368 16 <link rel="stylesheet" type="text/css" href="../../slitaz.css" />
pankso@368 17 <link rel="Content" href="#content" />
pankso@368 18 </head>
pankso@368 19 <body bgcolor="#ffffff">
pankso@368 20
pankso@368 21 <!-- Header -->
pankso@368 22 <div id="header">
pankso@368 23 <a name="top"></a>
pankso@368 24 <!-- Access -->
pankso@368 25 <div id="access">
pankso@368 26 Language:
pankso@506 27 <a href="../../en/devel/">English</a>
pankso@368 28 </div>
pankso@368 29 <a href="http://www.slitaz.org/fr/"><img id="logo"
pankso@368 30 src="../../pics/website/logo.png" title="www.slitaz.org" alt="www.slitaz.org"
pankso@368 31 style="border: 0px solid ; width: 200px; height: 74px;" /></a>
pankso@368 32 <p id="titre">#!/GNU/Linux</p>
pankso@368 33 </div>
pankso@368 34
pankso@368 35 <!-- Navigation menu -->
pankso@368 36 <div id="nav">
pankso@368 37 <div id="nav_top"></div>
pankso@389 38 <!-- General -->
pankso@368 39 <ul>
pankso@368 40 <li><a href="../about/" title="Informations au sujet du projet SliTaz">A propos du projet</a></li>
pankso@368 41 <li><a href="../asso/" title="Infrastructure et services">Association</a></li>
pankso@368 42 <li><a href="../get/" title="Téléchargements - LiveCD et sous projets">Obtenir SliTaz</a></li>
pankso@368 43 <li><a href="../doc/" title="Handbook, Cookbook et manuels">Documentation</a></li>
pankso@368 44 <li><a href="../packages/" title="Paquets logiciels disponibles">Paquets</a></li>
pankso@368 45 <li><a href="../devel/" title="Le coin du développeur">Développement</a></li>
pankso@368 46 <li><a href="../artwork/" title="Artwork, couleurs et images">Art &amp; graphisme</a></li>
pankso@389 47 </ul>
pankso@389 48 <!-- Support -->
pankso@389 49 <ul>
pankso@426 50 <li><a href="http://forum.slitaz.org/" title="Forum d'aide et support">Forum de support</a></li>
pankso@389 51 <li><a href="../mailing-list.html" title="Support, contact et collaboration">Liste de discussion</a></li>
pankso@368 52 <li><a href="../search.html" title="Rechercher des infos et/ou de la doc">Recherche</a></li>
pankso@368 53 <li><a href="../sitemap.html" title="Vue globale du site web">Plan du site</a></li>
pankso@368 54 </ul>
pankso@389 55 <!-- Wiki and Labs -->
pankso@368 56 <ul>
pankso@368 57 <li><a href="http://wiki.slitaz.org/" title="Wiki collaboratif">Ressources Wiki</a></li>
pankso@368 58 <li><a href="http://labs.slitaz.org/" title="Gestion du projet">Laboratoires</a></li>
pankso@368 59 <li><a href="http://labs.slitaz.org/issues" title="Bug Tracking system">Suivi des Bugs</a></li>
pankso@368 60 </ul>
pankso@368 61 <div id="nav_bottom">
pankso@368 62 <div id="nav_bottom_img"></div>
pankso@368 63 </div>
pankso@368 64 </div>
pankso@368 65
pankso@368 66 <!-- Content top. -->
pankso@368 67 <div id="content_top">
pankso@368 68 <div class="top_left"></div>
pankso@368 69 <div class="top_right"></div>
pankso@368 70 </div>
pankso@368 71
pankso@368 72 <!-- Content -->
pankso@368 73 <div id="content">
pankso@368 74 <a name="content"></a>
pankso@368 75
pankso@368 76 <h1><font color="#3E1220">Forge</font></h1>
pankso@368 77
pankso@368 78 <h2><font color="#DF8F06">Gestion collaborative du développement</font></h2>
pankso@368 79
pankso@368 80 <ul>
pankso@506 81 <li><a href="#kiss">KISS et respect des standards.</a></li>
pankso@368 82 <li><a href="#tank">Build host &amp; home.</a></li>
pankso@368 83 <li><a href="#repos">Dépôts Mercurial.</a></li>
pankso@506 84 <li><a href="#iconv">Implémentation d'iconv().</a></li>
pankso@368 85 <li><a href="#pkgs">Paquets tazpkg.</a></li>
pankso@506 86 <li><a href="#pkgs-naming">Nommage des paquets.</a></li>
pankso@368 87 <li><a href="#site">Gestion du site Web et des livres.</a></li>
pankso@506 88 <li><a href="#xhtml">xHTML coding style.</a></li>
pankso@368 89 </ul>
pankso@368 90
pankso@368 91 <p>
pankso@368 92 Le projet SliTaz dispose de divers moyens pour gérer le travail des
pankso@368 93 développeurs et collaborer. Un système de gestion de révision avec Mercurial
pankso@368 94 (Hg), des modules de synchronisation avec Rsync, de la documentation, une
pankso@368 95 <a href="../mailing-list.html">liste de discussion</a> et un canal IRC. Tous
pankso@368 96 les développeurs sont inscrits sur la liste, c'est le moyen de collaboration
pankso@368 97 principal et privilégié.
pankso@368 98 </p>
pankso@368 99
pankso@506 100 <a name="kiss"></a>
pankso@506 101 <h3>KISS et respect des standards</h3>
pankso@506 102 <p>
pankso@506 103 Rester simple, respecter au mieux les standards, réaliser un travail soigné,
pankso@506 104 rédiger de la documentation de haute qualité, fournir un système stable et
pankso@506 105 robuste et garder le <em>rootfs</em> du LiveCD standard assez léger pour que
pankso@506 106 SliTaz tourne sur des machines ayant au minimum 128 Mb de RAM. Possibilité
pankso@506 107 d'utiliser GTK+2, Dialog, Gtkdialog, des scripts SHell ou encore PHP pour
pankso@506 108 coder des outils propres à la distribution. L'idée est aussi de ne pas faire
pankso@506 109 de doublons et de penser mini...
pankso@506 110 </p>
pankso@506 111 <p>
pankso@506 112 SliTaz se veut un projet proche et à l'écoute des ses utilisateurs. Il y a
pankso@506 113 plusieurs développeurs actifs sur le <a href="http://forum.slitaz.org/">forum</a>
pankso@506 114 et sur la <a href="../mailing-list.html">liste de discussion</a>.
pankso@506 115 </p>
pankso@506 116
pankso@368 117 <a name="tank"></a>
pankso@368 118 <h3>Tank - Build host &amp; home</h3>
pankso@368 119 <p>
pankso@368 120 Chaque contributeur peut avoir un compte sur le serveur principal du
pankso@368 121 projet, avec un accès sécurisé, de l'espace disque, un répertoire public
pankso@368 122 et tous les outils de développement. Les développeurs peuvent y compiler
pankso@368 123 leurs paquets et les mainteneurs du miroir s'occupent de la synchronisation.
pankso@368 124 Tank héberge aussi le site internet, le web boot et les dépôts Mercurial:
pankso@368 125 <a href="http://tank.slitaz.org/">tank.slitaz.org</a>
pankso@368 126 </p>
pankso@368 127 <p>
pankso@368 128 L'utilisation du build host est décrite dans le Cookbook:
pankso@368 129 <a href="../en/doc/cookbook/build-host.html">SliTaz Build Host (tank)</a>.
pankso@368 130 </p>
pankso@368 131
pankso@368 132 <a name="repos"></a>
pankso@368 133 <h3>Dépôts Mercurial</h3>
pankso@368 134 <p>
pankso@368 135 Tous les sous-projets tels que Tazpkg, Tazwok ou Tazlito ont leurs propres
pankso@368 136 dépôts Hg sur le serveur du projet, tout comme le wok. Les développeurs ont
pankso@368 137 un compte et des droits en écriture afin de pouvoir envoyer leurs recettes,
pankso@368 138 mises à jour ou modifications. Il est bien sûr possible de demander la création
pankso@368 139 d'un nouveau dépôt pour collaborer sur un nouveau sous-projet lié à SliTaz.
pankso@368 140 A noter qu'il y a 2 domaines : <a href="http://hg.slitaz.org/">hg.slitaz.org</a>
pierre@452 141 est public et <code>repos.slitaz.org</code> nécessite authentification, c'est-à-dire
pierre@452 142 que vous pouvez cloner hg.slitaz.org mais pas y pousser vos changements ou fichiers.
pankso@368 143 </p>
pankso@368 144 <h4>~/.hgrc</h4>
pankso@368 145 <p>
pankso@368 146 Mercurial utilise un fichier caché <code>~./hgrc</code> permettant de
pankso@368 147 spécifier son nom d'utilisateur. Il faut mettre votre nom et adresse mail pour
pankso@368 148 qu'on sache qui a modifié quoi. Et attention à ne pas être <em>root</em> pour
pankso@368 149 pousser vos modifications. Exemple :
pankso@368 150 </p>
pankso@368 151 <pre class="script">
pankso@368 152 [ui]
pankso@368 153 username = Prénom Nom &lt;you@example.org&gt;
pankso@368 154 </pre>
pankso@368 155 <h4>Cloner, modifier, commiter et pousser</h4>
pankso@368 156 <p>
pankso@368 157 Vous avez le choix de cloner anonymement via hg.slitaz.org ou directement avec
pankso@368 158 votre login et mot de passe. Pour cloner un dépôt tel que le wok :
pankso@368 159 </p>
pankso@368 160 <pre>
pankso@368 161 $ hg clone http://repos.slitaz.org/wok/
pankso@368 162 </pre>
pankso@368 163 <p>
pankso@368 164 Copier, créer, modifier des recettes ou des fichiers dans <code>stuff</code>.
pankso@368 165 Avant de pouvoir pousser vos modifs, il faut les additionner à votre dépôt
pankso@368 166 local et les commiter. A noter que la commande <code>status</code> permet de
pankso@368 167 savoir quels fichiers ont été modifiés :
pankso@368 168 </p>
pankso@368 169 <pre>
pankso@368 170 $ cd wok
pankso@368 171 $ hg status
pankso@368 172 $ hg add
pankso@368 173 $ hg commit
pankso@368 174 </pre>
pankso@368 175 <p>
pierre@452 176 La commande <code>commit</code> va ouvrir l'éditeur de texte Nano pour écrire le message
pierre@452 177 destiné aux logs (Ctrl + X pour enregistrer et quitter). Vous pouvez éviter
pankso@368 178 Nano en utilisant l'option : <code>-m "Message"</code>. And please,
pankso@368 179 messages in English if possible :
pankso@368 180 </p>
pankso@368 181 <pre>
pankso@368 182 $ hg commit -m "Message for Mercurial log"
pankso@368 183 </pre>
pankso@368 184 <p>
pankso@368 185 Une fois que tout est prêt, vous pouvez encore utiliser la commande
pankso@368 186 <code>log</code> pour voir ce qui va être affiché sur l'interface web. Pour
pankso@368 187 pousser vos changements c'est <code>push</code> :
pankso@368 188 </p>
pankso@368 189 <pre>
pankso@368 190 $ hg log
pankso@368 191 $ hg push
pankso@368 192 </pre>
pankso@368 193 <p>
pankso@368 194 Si vous avez cloné depuis hg.slitaz.org, il faut alors pousser en spécifiant
pankso@368 195 le bon URL :
pankso@368 196 </p>
pankso@368 197 <pre>
pankso@368 198 $ hg push http://repos.slitaz.org/wok/
pankso@368 199 </pre>
pankso@368 200 <h4>Mettre à jour un wok local</h4>
pankso@368 201 <p>
pankso@368 202 Pour mettre à jour votre wok local avec celui du serveur (<em>pull</em> pour
pankso@368 203 tirer les changements) :
pankso@368 204 </p>
pankso@368 205 <pre>
pankso@368 206 $ hg pull
pankso@368 207 $ hg update
pankso@368 208 </pre>
pierre@452 209 <h4>Commandes utiles</h4>
pankso@368 210 <p>
pankso@368 211 Des commandes hg qui peuvent servir.
pankso@368 212 </p>
pankso@368 213 <ul>
pierre@452 214 <li><code>hg help</code> : affiche la liste complète des commandes.</li>
pierre@452 215 <li><code>hg rollback</code> : annule la dernière action exécutée (commit,
pankso@368 216 pull, push).</li>
pierre@452 217 <li><code>hg log &lt;paquet&gt;</code> : affiche les logs pour un paquet.</li>
pierre@452 218 <li><code>hg head</code> : affiche le dernier log.</li>
pankso@368 219 </ul>
pankso@368 220
pankso@506 221 <a name="iconv"></a>
pankso@506 222 <h3>Implémentation d'iconv()</h3>
pankso@506 223 <p>
pankso@506 224 SliTaz utilise iconv() fourni par la GNU glibc, même si certain paquets
pankso@506 225 proposent d'utiliser <code>libiconv</code> il faut utiliser la version de
pankso@506 226 la glibc (paquet <code>glibc-locale</code>). Il n'y a donc pas de paquet
pankso@506 227 libiconv (1,2 Mb) dans SliTaz.
pankso@506 228 </p>
pankso@506 229
pankso@368 230 <a name="pkgs"></a>
pankso@368 231 <h3>Paquets tazpkg</h3>
pankso@368 232 <p>
pankso@368 233 Les paquets tazpkg de SliTaz sont créés automatiquement via Tazwok et les
pankso@368 234 recettes contenues dans le wok, <a href="../doc/cookbook/">le Cookbook</a>
pankso@368 235 décrit <a href="../doc/cookbook/wok-tools.html">l'utilisation des outils SliTaz</a>
pankso@368 236 et le format des <a href="../doc/cookbook/receipts.html">recettes</a>,
pankso@368 237 c'est sans doute par un petit peu de lecture qu'il faut commencer.
pankso@368 238 </p>
pankso@368 239 <p>
pierre@452 240 Concernant le choix des paquets, l'idée est de proposer un paquet par tâche ou
pankso@368 241 fonctionnalité, c'est à dire pas (trop) de doublons et de trouver
pankso@368 242 l'application la plus légère dans son domaine. A noter que les paquets actuels
pankso@368 243 ne sont pas figés, si vous trouvez une alternative à un paquet existant, étant
pankso@368 244 plus légère, ayant plus de fonctionnalités ou étant plus <em>sexy</em> pour
pankso@368 245 quelques Ko supplémentaires, vous pouvez la proposer sur la liste. Une
pierre@452 246 attention particulière est portée aux paquets destinés au LiveCD : strip,
pankso@368 247 suppression de tout ce qui est inutile, dépendances et options de compilation.
pankso@368 248 En général, les paquets candidats pour le corps du LiveCD sont discutés sur
pankso@368 249 la liste.
pankso@368 250 </p>
pankso@368 251 <p>
pankso@368 252 Avant de commencer à compiler et créer des paquets pour SliTaz, assurez-vous
pierre@452 253 qu'une recette n'existe pas dans le wok undigest, disponible sur le miroir
pankso@368 254 principal de SliTaz. N'oubliez pas non plus que les membres de la liste sont
pierre@452 255 là pour vous aider et que pour bien commencer, <a href="../doc/cookbook/wok-tools.html"
pierre@452 256 >la documentation du wok et des outils</a> existe.
pankso@368 257 </p>
pankso@368 258
pankso@506 259 <a name="pkgs-naming"></a>
pankso@506 260 <h3>Nommage des paquets</h3>
pankso@506 261 <p>
pankso@506 262 Dans la majorité des cas le nom du paquet est celui des sources exception
pankso@506 263 faite des modules Python, Perl, PHP, Ruby, Lua. Par example le paquet Kid
pankso@506 264 fournissant un système de template XML et écrit en Python se nomme:
pankso@506 265 <code>python-kid</code>.
pankso@506 266 </p>
pankso@506 267
pankso@368 268 <a name="site"></a>
pankso@368 269 <h3>Gestion du site Web et des livres</h3>
pankso@368 270 <p>
pierre@452 271 La gestion du site et des livres (Handbook et Cookbook) est faite via un
pierre@452 272 dépôt Mercurial, ce qui nous permet de traviller à plusieurs. Il faut
pankso@396 273 juste installer <code>mercurail</code> sur SliTaz et connaître les commandes
pankso@396 274 de base. Une fois le dépôt cloné vous avez une copie complète du site en
pierre@452 275 local pour commencer à travailler. Pour cloner le site web :
pankso@368 276 </p>
pankso@368 277 <pre>
pankso@368 278 $ hg clone http://hg.slitaz.org/website
pierre@452 279 </pre>
pierre@452 280 <p>
pierre@452 281 Si vous avez les droits :
pierre@452 282 </p>
pierre@452 283 <pre>
pankso@368 284 $ hg clone http://repos.slitaz.org/website
pankso@368 285 </pre>
pankso@396 286 <p>
pankso@396 287 Sur SliTaz vous pouvez installer le serveur web Lighttpd et mettre le
pankso@396 288 site dans votre répertoire ~/Public, cela permet de naviguer dans votre
pankso@396 289 copie locale via localhost/~user.
pankso@396 290 </p>
pankso@368 291
pankso@506 292 <a name="xhtml"></a>
pankso@506 293 <h3>xHTML coding style</h3>
pankso@506 294 <p>
pankso@506 295 Les pages du site et des différents <em>books</em> sont codés en xHTML 1.0
pankso@506 296 Transitional, les couleurs pour le <code>body</code> et les titres sont
pankso@506 297 directement mis dans la page, cela permet d'avoir une présentation plus soignée
pankso@506 298 pour Links. Le titre de niveau 1 est utilisé une seule fois en haut de page,
pankso@506 299 le titre 2 correspond au titre du document et les titres de niveau 3 et 4 sont
pankso@506 300 ensuite utilisés pour les sous-titres. Si il y a lieu d'avoir une liste à puces
pankso@506 301 avec des ancres, elle se met en haut juste après le titre de niveau 2. Les
pankso@506 302 paragraphes sont contenus dans les balises <code>&lt;p&gt;&lt;/p&gt;</code>.
pankso@506 303 Pour indenter, nous utilisons des tabulations, elles ont une raison d'être
pankso@506 304 sémantique et prennent moins de place en terme d'octets. Pour mettre
pankso@506 305 du code tel que le nom d'une commande dans un paragraphe, la balise
pankso@506 306 <code>&lt;code&gt;</code> est recommandée. Pour afficher une ou des commandes
pankso@506 307 à lancer dans un terminal, les pages du site utilisent la balise
pankso@506 308 <code>&lt;pre&gt;</code> permettant d'afficher du texte préformaté. Exemple :
pankso@506 309 </p>
pankso@506 310 <pre>
pankso@506 311 $ command
pankso@506 312 </pre>
pankso@506 313 <p>
pankso@506 314 Pour afficher du texte à copier/coller tels que des scripts, des bouts de
pankso@506 315 code, des exemples de fichiers de configuration, etc, c'est aussi la balise
pankso@506 316 <code>&lt;pre&gt;</code> mais avec une classe CSS nommée "script". Exemple:
pankso@506 317 </p>
pankso@506 318 <pre class="script">
pankso@506 319 &lt;pre class="script"&gt;
pankso@506 320
pankso@506 321 code...
pankso@506 322
pankso@506 323 &lt;/pre&gt;
pankso@506 324 </pre>
pankso@506 325 <p>
pankso@506 326 Les mots en <em>English</em> se mettent dans la balise <code>&lt;em&gt;</code>
pankso@506 327 et les liens internes sont relatifs. Penser à vérifier la validité du code via
pankso@506 328 le <em>validator</em> en ligne du W3C.
pankso@506 329 </p>
pankso@506 330
pankso@368 331 <h3>Diff et patch</h3>
pankso@368 332 <p>
pankso@368 333 Les utilitaires <code>diff</code> et <code>patch</code> sont des outils en
pankso@368 334 ligne de commande permettant de créer et d'appliquer un fichier contenant
pankso@368 335 les différences entre deux fichiers. Cette technique est souvent utilisée
pankso@368 336 pour collaborer et permet d'extraire clairement les modifications apportées
pankso@368 337 au fichier original. Pour créer un fichier <code>diff</code> lisible par
pankso@368 338 les humains dans un simple éditeur de texte, il faut utiliser l'option
pankso@368 339 <code>-u</code> en argument :
pankso@368 340 </p>
pankso@368 341 <pre>
pankso@368 342 $ diff -u file.orig file.new > file.diff
pankso@368 343 </pre>
pankso@368 344 <p>
pankso@368 345 Pour appliquer un patch :
pankso@368 346 </p>
pankso@368 347 <pre>
pankso@368 348 $ patch file.orig file.diff
pankso@368 349 </pre>
pankso@368 350
pankso@368 351 <!-- End of content with round corner -->
pankso@368 352 </div>
pankso@368 353 <div id="content_bottom">
pankso@368 354 <div class="bottom_left"></div>
pankso@368 355 <div class="bottom_right"></div>
pankso@368 356 </div>
pankso@368 357
pankso@368 358 <!-- Start of footer and copy notice -->
pankso@368 359 <div id="copy">
pankso@368 360 <p>
pankso@368 361 Dernière modification : 2009-20-03 03:00:00 -
pankso@368 362 <a href="#top">Haut de la page</a>
pankso@368 363 </p>
pankso@368 364 <p>
pankso@368 365 Copyright &copy; 2009 <a href="http://www.slitaz.org/">SliTaz</a> -
pankso@368 366 <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>
pankso@368 367 </p>
pankso@368 368 <!-- End of copy -->
pankso@368 369 </div>
pankso@368 370
pankso@368 371 <!-- Bottom and logo's -->
pankso@368 372 <div id="bottom">
pankso@368 373 <p>
pankso@368 374 <a href="http://validator.w3.org/check?uri=referer"><img
pankso@368 375 src="../../pics/website/xhtml10.png" alt="Valid XHTML 1.0"
pankso@368 376 title="Code validé XHTML 1.0"
pankso@368 377 style="width: 80px; height: 15px;" /></a>
pankso@368 378 </p>
pankso@368 379 </div>
pankso@368 380
pankso@368 381 </body>
pankso@368 382 </html>
pankso@368 383
pankso@368 384