website diff fr/devel/forge.php @ rev 1014

de: applied {header|nav|footer} templates
author Aleksej Bobylev <al.bobylev@gmail.com>
date Fri Mar 30 16:38:09 2012 +0300 (2012-03-30)
parents 2120105cc07b
children 175ff0253b7a
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/fr/devel/forge.php	Fri Mar 30 16:38:09 2012 +0300
     1.3 @@ -0,0 +1,372 @@
     1.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     1.5 +    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     1.6 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
     1.7 +<head>
     1.8 +	<title>SliTaz (fr) - Forge</title>
     1.9 +	<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
    1.10 +	<meta name="description" content="Développement de SliTaz GNU/Linux" />
    1.11 +	<meta name="keywords" lang="fr" content="developpement slitaz developer GNU Linux" />
    1.12 +	<meta name="robots" content="index, follow, all" />
    1.13 +	<meta name="modified" content="2011-03-26 23:15:00" />
    1.14 +	<meta name="author" content="Christophe Lincoln"/>
    1.15 +	<link rel="shortcut icon" href="../../favicon.ico" />
    1.16 +	<link rel="stylesheet"  type="text/css" href="../../slitaz.css" />
    1.17 +</head>
    1.18 +<body>
    1.19 +
    1.20 +<!-- Header -->
    1.21 +<div id="header">
    1.22 +	<div id="logo"></div>
    1.23 +	<div id="network">
    1.24 +		<a href="http://www.slitaz.org/netmap.php">
    1.25 +			<img src="../../images/network.png" alt="network.png" /></a>
    1.26 +		<a href="http://scn.slitaz.org/">Community</a>
    1.27 +		<a href="http://doc.slitaz.org/">Doc</a>
    1.28 +		<a href="http://forum.slitaz.org/">Forum</a>
    1.29 +		<a href="http://bugs.slitaz.org">Bugs</a>
    1.30 +		<a href="http://hg.slitaz.org/">Hg</a>
    1.31 +	</div>
    1.32 +	<h1><a href="http://www.slitaz.org/">SliTaz GNU/Linux</a></h1>
    1.33 +</div>
    1.34 +
    1.35 +<!-- Block -->
    1.36 +<div id="block">
    1.37 +	<!-- Navigation -->
    1.38 +	<div id="block_nav">
    1.39 +		<h4>Navigation</h4>
    1.40 +		<div class="right_box">
    1.41 +			<ul>
    1.42 +				<li><a href="../mailing-list.php">Mailing List</a></li>
    1.43 +				<li><a href="../devel/">Développement</a></li>
    1.44 +				<li><a href="../packages/">Paquets</a></li>
    1.45 +				<li><a href="../artwork/">Artwork</a></li>
    1.46 +				<li><a href="../search.php">Recherche</a></li>
    1.47 +			</ul>
    1.48 +		</div>
    1.49 +		<div class="left_box">
    1.50 +			<ul>
    1.51 +				<li><a href="../">Actualités</a></li>
    1.52 +				<li><a href="../about/">A propos</a></li>
    1.53 +				<li><a href="../get/">Téléchargement</a></li>
    1.54 +				<li><a href="../asso/">Association</a></li>
    1.55 +				<li><a href="../doc/">Documentation</a></li>
    1.56 +			</ul>
    1.57 +		</div>
    1.58 +	</div>
    1.59 +	<!-- Information/image -->
    1.60 +	<div id="block_info">
    1.61 +		<h4>Forge</h4>
    1.62 +		<p>
    1.63 +			Les outils et services utilisés pour forger Slitaz :-)
    1.64 +		</p>
    1.65 +		<p>
    1.66 +			<img src="../../images/users.png" alt="users.png" />
    1.67 +			<a href="http://scn.slitaz.org/">Rejoingez nous sur SCN</a>
    1.68 +			et la <a href="../mailing-list.php">mailing list</a>
    1.69 +		</p>
    1.70 +	</div>
    1.71 +</div>
    1.72 +
    1.73 +<!-- Content -->
    1.74 +<div id="content">
    1.75 +
    1.76 +<h2>Gestion collaborative du développement</h2>
    1.77 +
    1.78 +<ul>
    1.79 +	<li><a href="#kiss">KISS et respect des standards.</a></li>
    1.80 +	<li><a href="#tank">Build host &amp; home.</a></li>
    1.81 +	<li><a href="#repos">Dépôts Mercurial.</a></li>
    1.82 +	<li><a href="#iconv">Implémentation d'iconv().</a></li>
    1.83 +	<li><a href="#pkgs">Paquets tazpkg.</a></li>
    1.84 +	<li><a href="#pkgs-naming">Nommage des paquets.</a></li>
    1.85 +	<li><a href="#site">Gestion du site Web et des livres.</a></li>
    1.86 +	<li><a href="#xhtml">xHTML coding style.</a></li>
    1.87 +</ul>
    1.88 +
    1.89 +<p>
    1.90 +Le projet SliTaz dispose de divers moyens pour gérer le travail des
    1.91 +développeurs et collaborer. Un système de gestion de révision avec Mercurial
    1.92 +(Hg), des modules de synchronisation avec Rsync, de la documentation, une 
    1.93 +<a href="../mailing-list.php">liste de discussion</a> et un canal IRC. Tous
    1.94 +les développeurs sont inscrits sur la liste, c'est le moyen de collaboration
    1.95 +principal et privilégié.
    1.96 +</p>
    1.97 +
    1.98 +<a name="kiss"></a>
    1.99 +<h3>KISS et respect des standards</h3>
   1.100 +<p>
   1.101 +Rester simple, respecter au mieux les standards, réaliser un travail soigné,
   1.102 +rédiger de la documentation de haute qualité, fournir un système stable et
   1.103 +robuste et garder le <em>rootfs</em> du LiveCD standard assez léger pour que
   1.104 +SliTaz tourne sur des machines ayant au minimum 128 Mb de RAM. Possibilité 
   1.105 +d'utiliser GTK+2, Dialog, Gtkdialog, des scripts SHell ou encore PHP pour
   1.106 +coder des outils propres à la distribution. L'idée est aussi de ne pas faire
   1.107 +de doublons et de penser mini...
   1.108 +</p>
   1.109 +<p>
   1.110 +SliTaz se veut un projet proche et à l'écoute des ses utilisateurs. Il y a
   1.111 +plusieurs développeurs actifs sur le <a href="http://forum.slitaz.org/">forum</a>
   1.112 +et sur la <a href="../mailing-list.php">liste de discussion</a>.
   1.113 +</p>
   1.114 +
   1.115 +<a name="tank"></a>
   1.116 +<h3>Tank - Build host &amp; home</h3>
   1.117 +<p>
   1.118 +Chaque contributeur peut avoir un compte sur le serveur principal du
   1.119 +projet, avec un accès sécurisé, de l'espace disque, un répertoire public
   1.120 +et tous les outils de développement. Les développeurs peuvent y compiler
   1.121 +leurs paquets et les mainteneurs du miroir s'occupent de la synchronisation.
   1.122 +Tank héberge aussi le site internet, le web boot et les dépôts Mercurial: 
   1.123 +<a href="http://tank.slitaz.org/">tank.slitaz.org</a>
   1.124 +</p>
   1.125 +<p>
   1.126 +L'utilisation du build host est décrite dans le Cookbook:
   1.127 +<a href="http://doc.slitaz.org/en:cookbook:buildhost">SliTaz Build Host (tank)</a>.
   1.128 +</p>
   1.129 +
   1.130 +<a name="repos"></a>
   1.131 +<h3>Dépôts Mercurial</h3>
   1.132 +<p>
   1.133 +Tous les sous-projets tels que Tazpkg, Tazwok ou Tazlito ont leurs propres 
   1.134 +dépôts Hg sur le serveur du projet, tout comme le wok. Les développeurs ont
   1.135 +un compte et des droits en écriture afin de pouvoir envoyer leurs recettes,
   1.136 +mises à jour ou modifications. Il est bien sûr possible de demander la création  
   1.137 +d'un nouveau dépôt pour collaborer sur un nouveau sous-projet lié à SliTaz.
   1.138 +A noter qu'il y a 2 domaines : <a href="http://hg.slitaz.org/">hg.slitaz.org</a>
   1.139 +est public et <code>repos.slitaz.org</code> nécessite une authentification, c'est-à-dire 
   1.140 +que vous pouvez cloner hg.slitaz.org mais pas y pousser vos changements ou fichiers.
   1.141 +</p>
   1.142 +<h4>~/.hgrc</h4>
   1.143 +<p>
   1.144 +Mercurial utilise un fichier caché <code>~./hgrc</code> permettant de 
   1.145 +spécifier son nom d'utilisateur. Il faut mettre votre nom et adresse mail pour
   1.146 +qu'on sache qui a modifié quoi. Et attention à ne pas être <em>root</em> pour
   1.147 +pousser vos modifications. Exemple :
   1.148 +</p>
   1.149 +<pre class="script">
   1.150 +[ui]
   1.151 +username = Prénom Nom &lt;you@example.org&gt;
   1.152 +</pre>
   1.153 +<h4>Cloner, modifier, commiter et pousser</h4>
   1.154 +<p>
   1.155 +Vous avez le choix de cloner anonymement via hg.slitaz.org ou directement avec
   1.156 +votre login et mot de passe. Pour cloner un dépôt tel que le wok :
   1.157 +</p>
   1.158 +<pre>
   1.159 + $ hg clone http://repos.slitaz.org/wok/
   1.160 +</pre>
   1.161 +<p>
   1.162 +Copier, créer, modifier des recettes ou des fichiers dans <code>stuff</code>. 
   1.163 +Avant de pouvoir pousser vos modifs, il faut les additionner à votre dépôt 
   1.164 +local et les commiter. A noter que la commande <code>status</code> permet de 
   1.165 +savoir quels fichiers ont été modifiés :
   1.166 +</p>
   1.167 +<pre>
   1.168 + $ cd wok
   1.169 + $ hg status
   1.170 + $ hg add
   1.171 + $ hg commit
   1.172 +</pre>
   1.173 +<p>
   1.174 +La commande <code>commit</code> va ouvrir l'éditeur de texte Nano pour écrire le message
   1.175 +destiné aux logs (Ctrl + X pour enregistrer et quitter). Vous pouvez éviter
   1.176 +Nano en utilisant l'option : <code>-m "Message"</code>. And please, 
   1.177 +messages in English if possible :
   1.178 +</p>
   1.179 +<pre>
   1.180 + $ hg commit -m "Message for Mercurial log"
   1.181 +</pre>
   1.182 +<p>
   1.183 +Une fois que tout est prêt, vous pouvez encore utiliser la commande
   1.184 +<code>log</code> pour voir ce qui va être affiché sur l'interface web. Pour 
   1.185 +pousser vos changements c'est <code>push</code> :
   1.186 +</p>
   1.187 +<pre>
   1.188 + $ hg log
   1.189 + $ hg push
   1.190 +</pre>
   1.191 +<p>
   1.192 +Si vous avez cloné depuis hg.slitaz.org, il faut alors pousser en spécifiant
   1.193 +le bon URL :
   1.194 +</p>
   1.195 +<pre>
   1.196 + $ hg push http://repos.slitaz.org/wok/
   1.197 +</pre>
   1.198 +<h4>Mettre à jour un wok local</h4>
   1.199 +<p>
   1.200 +Pour mettre à jour votre wok local avec celui du serveur (<em>pull</em> pour
   1.201 +tirer les changements) :
   1.202 +</p>
   1.203 +<pre>
   1.204 + $ hg pull
   1.205 + $ hg update
   1.206 +</pre>
   1.207 +<h4>Commandes utiles</h4>
   1.208 +<p>
   1.209 +Des commandes hg qui peuvent servir.
   1.210 +</p>
   1.211 +<ul>
   1.212 +	<li><code>hg help</code> : affiche la liste complète des commandes.</li>
   1.213 +	<li><code>hg rollback</code> : annule la dernière action exécutée (commit,
   1.214 +	pull, push).</li>
   1.215 +	<li><code>hg log &lt;paquet&gt;</code> : affiche les logs pour un paquet.</li>
   1.216 +	<li><code>hg head</code> : affiche le dernier log.</li>
   1.217 +</ul>
   1.218 +
   1.219 +<a name="iconv"></a>
   1.220 +<h3>Implémentation d'iconv()</h3>
   1.221 +<p>
   1.222 +SliTaz utilise iconv() fourni par la GNU glibc, même si certain paquets
   1.223 +proposent d'utiliser <code>libiconv</code> il faut utiliser la version de
   1.224 +la glibc (paquet <code>glibc-locale</code>). Il n'y a donc pas de paquet 
   1.225 +libiconv (1,2 Mb) dans SliTaz.
   1.226 +</p>
   1.227 +
   1.228 +<a name="pkgs"></a>
   1.229 +<h3>Paquets tazpkg</h3>
   1.230 +<p>
   1.231 +Les paquets tazpkg de SliTaz sont créés automatiquement via Tazwok et les
   1.232 +recettes contenues dans le wok, <a href="http://doc.slitaz.org/fr:cookbook:start">le Cookbook</a>
   1.233 +décrit <a href="http://doc.slitaz.org/fr:cookbook:wok">l'utilisation des outils SliTaz</a> 
   1.234 +et le format des <a href="http://doc.slitaz.org/fr:cookbook:receipt">recettes</a>,
   1.235 +c'est sans doute par un petit peu de lecture qu'il faut commencer.
   1.236 +</p>
   1.237 +<p>
   1.238 +Concernant le choix des paquets, l'idée est de proposer un paquet par tâche ou 
   1.239 +fonctionnalité, c'est à dire pas (trop) de doublons et de trouver 
   1.240 +l'application la plus légère dans son domaine. A noter que les paquets actuels
   1.241 +ne sont pas figés, si vous trouvez une alternative à un paquet existant, étant
   1.242 +plus légère, ayant plus de fonctionnalités ou étant plus <em>sexy</em> pour
   1.243 +quelques Ko supplémentaires, vous pouvez la proposer sur la liste. Une 
   1.244 +attention particulière est portée aux paquets destinés au LiveCD : strip,
   1.245 +suppression de tout ce qui est inutile, dépendances et options de compilation.
   1.246 +En général, les paquets candidats pour le corps du LiveCD sont discutés sur
   1.247 +la liste.
   1.248 +</p>
   1.249 +<p>
   1.250 +Avant de commencer à compiler et créer des paquets pour SliTaz, assurez-vous 
   1.251 +qu'une recette n'existe pas dans le wok undigest, disponible sur le miroir
   1.252 +principal de SliTaz. N'oubliez pas non plus que les membres de la liste sont
   1.253 +là pour vous aider et que pour bien commencer, <a href="http://doc.slitaz.org/fr:cookbook:wok"
   1.254 +>la documentation du wok et des outils</a> existe.
   1.255 +</p>
   1.256 +
   1.257 +<a name="pkgs-naming"></a>
   1.258 +<h3>Nommage des paquets</h3>
   1.259 +<p>
   1.260 +Dans la majorité des cas le nom du paquet est celui des sources exception
   1.261 +faite des modules Python, Perl, PHP, Ruby, Lua. Par example le paquet Kid
   1.262 +fournissant un système de template XML et écrit en Python se nomme:
   1.263 +<code>python-kid</code>.
   1.264 +</p>
   1.265 +
   1.266 +<a name="site"></a>
   1.267 +<h3>Gestion du site Web et des livres</h3>
   1.268 +<p>
   1.269 +La gestion du site et des livres (Handbook et Cookbook) est faite via un 
   1.270 +dépôt Mercurial, ce qui nous permet de traviller à plusieurs. Il faut
   1.271 +juste installer <code>mercurail</code> sur SliTaz et connaître les commandes
   1.272 +de base. Une fois le dépôt cloné vous avez une copie complète du site en
   1.273 +local pour commencer à travailler. Pour cloner le site web :
   1.274 +</p>
   1.275 +<pre>
   1.276 + $ hg clone http://hg.slitaz.org/website
   1.277 +</pre>
   1.278 +<p>
   1.279 +Si vous avez les droits :
   1.280 +</p>
   1.281 +<pre>
   1.282 + $ hg clone http://repos.slitaz.org/website
   1.283 +</pre>
   1.284 +<p>
   1.285 +Sur SliTaz vous pouvez installer le serveur web Lighttpd et mettre le
   1.286 +site dans votre répertoire ~/Public, cela permet de naviguer dans votre
   1.287 +copie locale via localhost/~user.
   1.288 +</p>
   1.289 +
   1.290 +<a name="xhtml"></a>
   1.291 +<h3>xHTML coding style</h3>
   1.292 +<p>
   1.293 +Les pages du site et des différents <em>books</em> sont codés en xHTML 1.0
   1.294 +Transitional, les couleurs pour le <code>body</code> et les titres sont
   1.295 +directement mis dans la page, cela permet d'avoir une présentation plus soignée
   1.296 +pour Links. Le titre de niveau 1 est utilisé une seule fois en haut de page,
   1.297 +le titre 2 correspond au titre du document et les titres de niveau 3 et 4 sont
   1.298 +ensuite utilisés pour les sous-titres. Si il y a lieu d'avoir une liste à puces
   1.299 +avec des ancres, elle se met en haut juste après le titre de niveau 2. Les
   1.300 +paragraphes sont contenus dans les balises <code>&lt;p&gt;&lt;/p&gt;</code>.
   1.301 +Pour indenter, nous utilisons des tabulations, elles ont une raison d'être
   1.302 +sémantique et prennent moins de place en terme d'octets. Pour mettre
   1.303 +du code tel que le nom d'une commande dans un paragraphe, la balise
   1.304 +<code>&lt;code&gt;</code> est recommandée. Pour afficher une ou des commandes
   1.305 +à lancer dans un terminal, les pages du site utilisent la balise
   1.306 +<code>&lt;pre&gt;</code> permettant d'afficher du texte préformaté. Exemple :
   1.307 +</p>
   1.308 +<pre>
   1.309 + $ command
   1.310 +</pre>
   1.311 +<p>
   1.312 +Pour afficher du texte à copier/coller tels que des scripts, des bouts de
   1.313 +code, des exemples de fichiers de configuration, etc, c'est aussi la balise
   1.314 +<code>&lt;pre&gt;</code> mais avec une classe CSS nommée "script". Exemple:
   1.315 +</p>
   1.316 +<pre class="script">
   1.317 +&lt;pre class="script"&gt;
   1.318 +
   1.319 +code...
   1.320 +
   1.321 +&lt;/pre&gt;
   1.322 +</pre>
   1.323 +<p>
   1.324 +Les mots en <em>English</em> se mettent dans la balise <code>&lt;em&gt;</code>
   1.325 +et les liens internes sont relatifs. Penser à vérifier la validité du code via
   1.326 +le <em>validator</em> en ligne du W3C.
   1.327 +</p>
   1.328 +
   1.329 +<h3>Diff et patch</h3>
   1.330 +<p>
   1.331 +Les utilitaires <code>diff</code> et <code>patch</code> sont des outils en
   1.332 +ligne de commande permettant de créer et d'appliquer un fichier contenant
   1.333 +les différences entre deux fichiers. Cette technique est souvent utilisée
   1.334 +pour collaborer et permet d'extraire clairement les modifications apportées
   1.335 +au fichier original. Pour créer un fichier <code>diff</code> lisible par
   1.336 +les humains dans un simple éditeur de texte, il faut utiliser l'option
   1.337 +<code>-u</code> en argument :
   1.338 +</p>
   1.339 +<pre>
   1.340 + $ diff -u file.orig file.new > file.diff
   1.341 +</pre>
   1.342 +<p>
   1.343 +Pour appliquer un patch :
   1.344 +</p>
   1.345 +<pre>
   1.346 + $ patch file.orig file.diff
   1.347 +</pre>
   1.348 +
   1.349 +<!-- End of content -->
   1.350 +</div>
   1.351 +
   1.352 +<!-- Footer -->
   1.353 +<div id="footer">
   1.354 +	Copyright &copy; <span class="year"></span>
   1.355 +	<a href="http://www.slitaz.org/">SliTaz</a> - Network:
   1.356 +	<a href="http://scn.slitaz.org/">Community</a>
   1.357 +	<a href="http://doc.slitaz.org/">Doc</a>
   1.358 +	<a href="http://forum.slitaz.org/">Forum</a>
   1.359 +	<a href="http://pkgs.slitaz.org/">Packages</a>
   1.360 +	<a href="http://bugs.slitaz.org">Bugs</a>
   1.361 +	<a href="http://hg.slitaz.org/">Hg</a>
   1.362 +	<p>
   1.363 +		SliTaz @
   1.364 +		<a href="http://twitter.com/slitaz">Twitter</a>
   1.365 +		<a href="http://www.facebook.com/slitaz">Facebook</a>
   1.366 +		<a href="http://distrowatch.com/slitaz">Distrowatch</a>
   1.367 +		<a href="http://en.wikipedia.org/wiki/SliTaz">Wikipedia</a>
   1.368 +		<a href="http://flattr.com/profile/slitaz">Flattr</a>
   1.369 +	</p>
   1.370 +</div>
   1.371 +
   1.372 +</body>
   1.373 +</html>
   1.374 +
   1.375 +