Table of Contents



Le coin du développeur

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 liste mail, obtenir un accès au wok et y pousser quelques nouveaux paquets ou simplement aider les autres sur la liste mail ou sur le forum. SliTaz utilise des dépôts Mercurial hébergés sur un système SliTaz. Les développeurs peuvent demander un nouveau dépôt si nécessaire et les contributeurs ont un accès en écriture pour corriger les textes, scripts, etc.

SliTaz est une petite communauté qui écoute ses utilisateurs. Il y a plusieurs développeurs actifs sur le forum et la liste mail

Les artistes trouveront un 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 discussions.


KISS et respect des standards


Tank - Build Host & Home

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 : tank.slitaz.org.

L'utilisation du build host est décrite dans le Cookbook : SliTaz Build Host (tank)


Paquets SliTaz

Les paquets tazpkg de SliTaz sont créés automatiquement via Tazwok et les recettes contenues dans le wok. Le Cookbook décrit l'utilisation des outils SliTaz et le format des recettes. C'est sans doute par un petit peu de lecture qu'il faut commencer.

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 qui est plus légère, avec plus de fonctionnalités ou plus sexy pour quelques Ko supplémentaires, vous pouvez la proposer sur la 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 Liste mail. Avant de commencer à compiler et créer des paquets pour SliTaz, assurez-vous qu'une recette n'existe pas dans le wok 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 wok et des outils existe.


Nommage des paquets

Dans la majorité des cas le nom du paquet est celui des sources, exception faite des modules Python, Perl, PHP, Ruby, Lua. Par exemple le paquet Kid fournissant un système de fichiers-types XML et écrit en Python se nomme python-kid.


Dépôts Mercurial

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 hg.slitaz.org mais pas y pousser vos changements ou fichiers.

Mercurial utilise python et peut être installé avec la commande :

 tazpkg get-install mercurial


~/.hgrc

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 :

[ui]
username = Nom Prénom <vous@example.org>


Cloner, modifier, commiter et pousser

Vous devez être dans le dossier du dépôt pour utiliser la commande hg.

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 :

 $ hg clone http://repos.slitaz.org/wok

Pour vérifier les logs, ou juste le dernier log :

 $ hg log
 $ hg head

Copier, créer, modifier des recettes ou des fichiers dans stuff. Avant de pouvoir pousser vos modifications, il faut les ajouter à votre dépôt local et les commiter. A noter que la commande status permet de savoir quels fichiers ont été modifiés :

 $ hg add
 $ hg status
 $ hg commit -A -m "Message pour le log Mercurial..."
 $ hg log

Merci de laisser le message en anglais : il s'affiche sur la page du dépôt hg et permet aux autres contributeurs de voir ce que chacun fait.

Vous pouvez utiliser la commande rollback pour annuler la dernière opération.

Avant de pousser vos changements sur le serveur, il est préférable de récupérer les dernières modifications :

 $ hg pull
 $ hg push

Si vous avez cloné depuis hg.slitaz.org, il faut alors pousser en spécifiant le bon URL :

 $ hg push http://repos.slitaz.org/wok/


Mettre à jour un wok local

Pour mettre à jour votre wok local avec celui du serveur (pull pour tirer les changements) :

 $ hg pull
 $ hg update


Commandes utiles

Des commandes hg qui peuvent servir.


Implémentation d'iconv()

SliTaz utilise iconv() fourni par la GNU glibc, même si certains 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.


Gestion du site Web

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 :

 $ hg clone http://hg.slitaz.org/website

Si vous avez les droits :

 $ hg clone http://repos.slitaz.org/website


xHTML Coding Style

Le site web doit avoir 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).

 $ commande
<pre class="script">
code...
</pre>


Diff et patch

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 :

 $ diff -u file.orig file.new > file.diff

Pour appliquer un patch :

 $ patch file.orig file.diff