slitaz-doc-wiki-data annotate pages/fr/cookbook/devcorner.txt @ rev 4

Add pages/fr folder.
author Christopher Rogers <slaxemulator@gmail.com>
date Sat Feb 26 12:13:35 2011 +0000 (2011-02-26)
parents
children 1be9b5012cfd
rev   line source
slaxemulator@4 1 ====== Coin du développeur ======
slaxemulator@4 2
slaxemulator@4 3 SliTaz est une distribution //open source// dirigée par sa communauté. Tout le monde est bienvenu pour nous rejoindre et contribuer. Que l'on soit utilisateur, hacker ou développeur, il y a toujours quelque chose à faire - relecture ou écriture de documentation, signaler des bugs ou envoyer des patchs sur la [[http://www.slitaz.org/fr/mailing-list.html|liste mail]], obtenir un accès au wok et y pousser quelques nouveaux paquets ou simplement aider les autres sur la [[http://www.slitaz.org/fr/mailing-list.html|liste mail]] ou sur le [[http://forum.slitaz.org/|forum]]. SliTaz utilise des [[http://hg.slitaz.org/|dépôts Mercurial]] hébergés sur un système SliTaz. Les développeurs peuvent demander un nouveau dépôt si nécéssaire et les contributeurs ont un accès en écriture pour corriger les textes, scripts, etc.
slaxemulator@4 4
slaxemulator@4 5 SliTaz est une petite communauté et écoute ses utilisateurs. Il y a plusieurs développeurs actifs sur le [[http://forum.slitaz.org/|forum]] et la [[http://www.slitaz.org/fr/mailing-list.html|liste mail]]
slaxemulator@4 6
slaxemulator@4 7 Les artistes trouverons un [[http://community.slitaz.org/image|site web]] dédié -- créez simplement un compte et partagez vos créations. Ce site appartient à la communauté. Si vous voulez aider à administrer ce site, merci de contacter un contributeur ou d'envoyer un e-mail sur la liste de discutions.
slaxemulator@4 8
slaxemulator@4 9 \\
slaxemulator@4 10
slaxemulator@4 11 ===== KISS et respect des standards =====
slaxemulator@4 12
slaxemulator@4 13 * Le plus important : rester simple !
slaxemulator@4 14 * Respecter au mieux les standards
slaxemulator@4 15 * Réaliser un travail soigné
slaxemulator@4 16 * Écrire de la documentation de haute qualité incluant des résumés pour les sections et processus complexes et des tutoriels détaillés.
slaxemulator@4 17 * Proposer un système stable et robuste.
slaxemulator@4 18 * Conserver le //rootfs// du liveCD suffisamment léger pour fonctionner sur des machines avec 128 MB de mémoire vive.
slaxemulator@4 19 * Possibilité d'utiliser GTK+2, Dialog, Gtkdialog, des scripts SHell ou encore PHP pour coder des outils propres à la distribution.
slaxemulator@4 20 * L'idée est aussi de ne pas faire de doublons et de penser mini...
slaxemulator@4 21 \\
slaxemulator@4 22
slaxemulator@4 23 ===== Tank - Build Host & Home =====
slaxemulator@4 24
slaxemulator@4 25 Chaque contributeur peut avoir un compte sur le serveur principal du projet, avec un accès sécurisé, de l'espace disque, un répertoire public et tous les outils de développement. Les développeurs peuvent y compiler leurs paquets et les mainteneurs du miroir s'occupent de la synchronisation. Tank héberge aussi le site internet, le web boot et les dépôts Mercurial: [[http://tank.slitaz.org|tank.slitaz.org]].
slaxemulator@4 26
slaxemulator@4 27 L'utilisation du build host est décrite dans le Cookbook : [[fr:cookbook:buildhost|SliTaz Build Host (tank)]]
slaxemulator@4 28
slaxemulator@4 29
slaxemulator@4 30 \\
slaxemulator@4 31
slaxemulator@4 32 ===== SliTaz Packages =====
slaxemulator@4 33
slaxemulator@4 34 Les paquets tazpkg de SliTaz sont créés automatiquement via Tazwok et les recettes contenues dans le wok. Le [[fr:cookbook:start|Cookbook]] décrit l'utilisation des outils SliTaz et le format des [[fr:cookbook:receipts|recettes]]. C'est sans doute par un petit peu de lecture qu'il faut commencer.
slaxemulator@4 35
slaxemulator@4 36 Concernant le choix des paquets, l'idée est de proposer un paquet par tâche ou fonctionnalité, c'est à dire pas (trop) de doublons et de trouver l'application la plus légère dans son domaine. A noter que les paquets actuels ne sont pas figés, si vous trouvez une alternative à un paquet existant, étant plus légère, ayant plus de fonctionnalités ou étant plus sexy pour quelques Ko supplémentaires, vous pouvez la proposer sur la [[http://www.slitaz.org/en/mailing-list.html|liste mail]]. Une attention particulière est portée aux paquets destinés au LiveCD : strip, suppression de tout ce qui est inutile, dépendances et options de compilation. En général, les paquets candidats pour le corps du LiveCD sont discutés sur la [[http://www.slitaz.org/en/mailing-list.html|Liste mail]].
slaxemulator@4 37 Avant de commencer à compiler et créer des paquets pour SliTaz, assurez-vous qu'une recette n'existe pas dans le wok [[http://hg.slitaz.org/wok-undigest/|undigest]], disponible sur le miroir principal de SliTaz. N'oubliez pas non plus que les membres de la liste sont là pour vous aider et que pour bien commencer, la documentation du [[en:cookbook:wok|wok et des outils]] existe.
slaxemulator@4 38
slaxemulator@4 39 \\
slaxemulator@4 40
slaxemulator@4 41 ===== Nommage des paquets =====
slaxemulator@4 42
slaxemulator@4 43 Dans la majorité des cas le nom du paquet est celui des sources exception faite des modules Python, Perl, PHP, Ruby, Lua. Par example le paquet //Kid// fournissant un système de fichiers-types XML et écrit en Python se nomme: //python-kid//.
slaxemulator@4 44
slaxemulator@4 45 \\
slaxemulator@4 46
slaxemulator@4 47 ===== Dépôts Mercurial =====
slaxemulator@4 48
slaxemulator@4 49 Tous les sous-projets tels que Tazpkg, Tazwok ou Tazlito ont leurs propres dépôts Hg sur le serveur du projet, tout comme le wok. Les développeurs ont un compte et des droits en écriture afin de pouvoir envoyer leurs recettes, mises à jour ou modifications. Il est bien sûr possible de demander la création d'un nouveau dépôt pour collaborer sur un nouveau sous-projet lié à SliTaz. A noter qu'il y a 2 domaines : hg.slitaz.org est public et repos.slitaz.org nécessite une authentification, c'est-à-dire que vous pouvez cloner [[http://hg.slitaz.org|hg.slitaz.org]] mais pas y pousser vos changements ou fichiers.
slaxemulator@4 50
slaxemulator@4 51 Mercurial utilise python est peut être installé avec la commande :
slaxemulator@4 52
slaxemulator@4 53 tazpkg get-install mercurial
slaxemulator@4 54
slaxemulator@4 55 \\
slaxemulator@4 56
slaxemulator@4 57 === ~/.hgrc ===
slaxemulator@4 58
slaxemulator@4 59 Mercurial utilise un fichier caché //~./hgrc// permettant de spécifier son nom d'utilisateur. Il faut mettre votre nom et adresse mail pour qu'on sache qui a modifié quoi. Et attention à ne pas être root pour pousser vos modifications. Exemple :
slaxemulator@4 60
slaxemulator@4 61 [ui]
slaxemulator@4 62 username = Nom Prénom <vous@example.org>
slaxemulator@4 63
slaxemulator@4 64 \\
slaxemulator@4 65
slaxemulator@4 66 === Cloner, modifier, commiter et pousser ===
slaxemulator@4 67
slaxemulator@4 68 <note important>Vous devez être dans le dossier du dépôt pour utiliser la commande hg.</note>
slaxemulator@4 69
slaxemulator@4 70 Vous avez le choix de cloner anonymement via hg.slitaz.org ou directement avec votre login et mot de passe via repos.slitaz.org. Pour cloner un dépôt tel que le wok :
slaxemulator@4 71
slaxemulator@4 72 $ hg clone http://repos.slitaz.org/wok
slaxemulator@4 73
slaxemulator@4 74 Pour vérifier les logs, ou juste le dernier log :
slaxemulator@4 75
slaxemulator@4 76 $ hg log
slaxemulator@4 77 $ hg head
slaxemulator@4 78
slaxemulator@4 79 Copier, créer, modifier des recettes ou des fichiers dans //stuff//. Avant de pouvoir pousser vos modifications, il faut les additionner à votre dépôt local et les commiter. A noter que la commande status permet de savoir quels fichiers ont été modifiés :
slaxemulator@4 80
slaxemulator@4 81 $ hg add
slaxemulator@4 82 $ hg status
slaxemulator@4 83 $ hg commit -A -m "Message pour le log Mercurial..."
slaxemulator@4 84 $ hg log
slaxemulator@4 85
slaxemulator@4 86 Merci de laisser le message en anglais : il s'affiche sur la page du [[http://hg.slitaz.org|dépôt hg]] et permet aux autres contributeurs de voir ce que chacun fait.
slaxemulator@4 87
slaxemulator@4 88 <note tip>Vous pouvez utiliser la commande //rollback// pour annuler la dernière opération.</note>
slaxemulator@4 89
slaxemulator@4 90 Avant de pousser vos changements sur le serveur, il est préférable de récupérer les dernières modifications :
slaxemulator@4 91
slaxemulator@4 92 $ hg pull
slaxemulator@4 93 $ hg push
slaxemulator@4 94
slaxemulator@4 95 Si vous avez cloné depuis hg.slitaz.org, il faut alors pousser en spécifiant le bon URL :
slaxemulator@4 96 $ hg push http://repos.slitaz.org/wok/
slaxemulator@4 97
slaxemulator@4 98
slaxemulator@4 99 \\
slaxemulator@4 100
slaxemulator@4 101 === Mettre à jour un wok local ===
slaxemulator@4 102
slaxemulator@4 103 Pour mettre à jour votre wok local avec celui du serveur (//pull// pour tirer les changements) :
slaxemulator@4 104
slaxemulator@4 105 $ hg pull
slaxemulator@4 106 $ hg update
slaxemulator@4 107
slaxemulator@4 108 \\
slaxemulator@4 109
slaxemulator@4 110 === Commandes utiles ===
slaxemulator@4 111
slaxemulator@4 112 Des commandes hg qui peuvent servir.
slaxemulator@4 113 * **hg help** -- affiche la liste complète des commandes.
slaxemulator@4 114 * **hg rollback** -- annule la dernière action exécutée (commit, pull, push).
slaxemulator@4 115 * **hg log //<package>//** -- affiche les logs pour un paquet.
slaxemulator@4 116 * **hg head** -- affiche le dernier log.
slaxemulator@4 117
slaxemulator@4 118 \\
slaxemulator@4 119
slaxemulator@4 120 ===== Implémentation d'iconv() =====
slaxemulator@4 121
slaxemulator@4 122 SliTaz utilise iconv() fourni par la GNU glibc, même si certain paquets proposent d'utiliser //libiconv// il faut utiliser la version de la glibc (paquet //glibc-locale//). Il n'y a donc pas de paquet libiconv (1,2 Mb) dans SliTaz.
slaxemulator@4 123
slaxemulator@4 124 \\
slaxemulator@4 125
slaxemulator@4 126 ===== Gestion du site Web =====
slaxemulator@4 127
slaxemulator@4 128 La gestion du site est faite via un dépôt Mercurial, ce qui nous permet de travailler à plusieurs. Il faut juste installer mercurial sur SliTaz et connaître les commandes de base. Une fois le dépôt cloné vous avez une copie complète du site en local pour commencer à travailler. Pour cloner le site web :
slaxemulator@4 129
slaxemulator@4 130 $ hg clone http://hg.slitaz.org/website
slaxemulator@4 131
slaxemulator@4 132 Si vous avez les droits :
slaxemulator@4 133
slaxemulator@4 134 $ hg clone http://repos.slitaz.org/website
slaxemulator@4 135
slaxemulator@4 136 \\
slaxemulator@4 137
slaxemulator@4 138 ===== xHTML Coding Style =====
slaxemulator@4 139
slaxemulator@4 140 Le site web doit avec un style cohérent, il est également utilisé pour la documentation locale et les pages du wiki (néanmoins la syntaxe y est différente).
slaxemulator@4 141
slaxemulator@4 142 * Les pages du site sont écrites en xHTML 1.0 Transitional.
slaxemulator@4 143
slaxemulator@4 144 * Les couleurs pour <body> et les titres sont directement mis dans la page, cela permet d'avoir une présentation plus soignée pour Links
slaxemulator@4 145 * Le titre de niveau 1 est utilisé une seule fois en haut de page;
slaxemulator@4 146 * Le titre 2 correspond au titre du document;
slaxemulator@4 147 * Les titres de niveau 3 et 4 sont ensuite utilisés pour les sous-titres.
slaxemulator@4 148
slaxemulator@4 149 * Si il y a lieu d'avoir une liste à puces avec des ancres, elle se met en haut juste après le titre de niveau 2.
slaxemulator@4 150
slaxemulator@4 151 * Les paragraphes sont contenus dans les balises <p></p>.
slaxemulator@4 152
slaxemulator@4 153 * Pour indenter, nous utilisons des tabulations, elles ont une raison d'être sémantique et prennent moins de place en terme d'octets.
slaxemulator@4 154
slaxemulator@4 155 * Pour mettre du code tel que le nom d'une commande dans un paragraphe, la balise <code> est recommandée.
slaxemulator@4 156
slaxemulator@4 157 * Pour afficher une ou des commandes à lancer dans un terminal, les pages du site utilisent la balise <pre> permettant d'afficher du texte préformaté :
slaxemulator@4 158
slaxemulator@4 159 $ commande
slaxemulator@4 160
slaxemulator@4 161 * Pour afficher du texte à copier/coller tels que des scripts, des bouts de code, des exemples de fichiers de configuration, etc, c'est aussi la balise <pre> mais avec une classe CSS nommée "script". Exemple:
slaxemulator@4 162
slaxemulator@4 163 <pre class="script">
slaxemulator@4 164 code...
slaxemulator@4 165 </pre>
slaxemulator@4 166
slaxemulator@4 167 * Les mots en //English// se mettent dans la balise <em>.
slaxemulator@4 168
slaxemulator@4 169 * Les liens internes sont relatifs.
slaxemulator@4 170
slaxemulator@4 171 * Penser à vérifier la validité du code via le //validator// en ligne du W3C.
slaxemulator@4 172
slaxemulator@4 173 \\
slaxemulator@4 174
slaxemulator@4 175 ===== Diff et patch =====
slaxemulator@4 176
slaxemulator@4 177 Les utilitaires //diff// et //patch// sont des outils en ligne de commande permettant de créer et d'appliquer un fichier contenant les différences entre deux fichiers. Cette technique est souvent utilisée pour collaborer et permet d'extraire clairement les modifications apportées au fichier original. Pour créer un fichier diff lisible par les humains dans un simple éditeur de texte, il faut utiliser l'option -u en argument :
slaxemulator@4 178 $ diff -u file.orig file.new > file.diff
slaxemulator@4 179
slaxemulator@4 180 Pour appliquer un patch :
slaxemulator@4 181
slaxemulator@4 182 $ patch file.orig file.diff