website view fr/devel/forge.html @ rev 819

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