Vous êtes sur le wiki de développement du projet SLIS

Ceci est une ancienne révision du document !


Conventions pour le développement

Méthodologie de développement

Voici les étapes que l'on fait habituellement lorsqu'on fait une modification dans un paquet pour SLIS :

  1. faire les modifications proprement dites,
  2. documenter les modifications (dch),
  3. construire le paquet (svn-buildpackage),
  4. tester le paquet,
  5. si la modification fonctionne, envoyer (debcommit) la modification dans le dépôt SVN,
  6. faire d'autres modifications de la même manière,
  7. une fois la nouvelle version du paquet prête, le noter dans le changelog (dch -r),
  8. construire le paquet (svn-buildpackage),
  9. relire ses modifications (debdiff),
  10. envoyer le paquet dans l'archive (dput),
  11. étiquetter la version dans le dépôt SVN (debcommit –release).

Placement et nommage des fichiers binaires

Grace au travail d'Olivier Lecam, l'élévation de privilèges pour les scripts lancés par l'interface web se font via un wrapper de sudo, rootexec

Les scripts binaires peuvent donc être placés dans les répertoires /bin, /sbin, /usr/bin, et /usr/sbin pour être en conformité avec le debian file hierarchy standart

les fichiers binaires, pour éviter toute confusion devraient :

  • avoir comme préfixe slis-
  • Si le binaire est destiné à une action uique, être suivie de l'action , i.e. test pour un test, mk pour la construction d'un fichier
  • et terminer par le service concerné.

exemple :

  • /usr/bin/slis-mk-squidconf binaire qui crée un fichier de conf
  • /usr/bin/slis-test-squid binaire qui teste un service
  • /usr/sbin/slis-firewall binaire avec de multiples actions possibles

Guide de style pour le code

  • Indentation de 4 caractères par défaut (mais une tabulation fait toujours 8 caractères).
  • Voir les exemples ci-dessous pour chaque langage.

Shell

do_something() {
    echo "blabla"
}
 
while true; do
    if [ "$1" = "yes" ]; then
        # Short comment
        do_something $2
    elif [ "$1" = "no" ]; then
        touch /tmp/bla
    else
        touch /tmp/else
    fi
done
 
case "$var" in
    remove)
        find /tmp -type f | xargs echo rm -f
    ;;
 
    add)
        date
    ;;
esac

Perl

sub do_something {
    print "blabla\n";
}
 
while (1) {
    if ($ARGV[1] eq "yes") {
        do_something();
    } else {
        do_something_else();
    }
}

PHP

 

QR Code
QR Code devel:conventions (generated for current page)