doc/packaging_apps_fr.md
2016-05-20 19:38:25 +02:00

4.6 KiB
Raw Blame History

Packaging dapplications

Ce document a pour but de vous apprendre à packager une application pour YunoHost.

Prérequis

Pour packager une application, voici les prérequis :

  • Un compte sur un serveur git comme GitHub pour pouvoir ensuite publier lapplication;
  • Maîtriser un minimum git, le Shell et dautres notions de programmation;
  • Une machine virtuelle ou sur un serveur distant pour packager et tester son paquet.

Contenu

Un paquet YunoHost est composé :

  • dun manifest.json
  • dun dossier scripts, composé de cinq scripts Shell install, remove, upgrade, backup et restore
  • de dossiers optionnels, contenant les sources ou de la conf
  • dun fichier LICENSE contenant la licence du paquet
  • dune page de présentation du paquet contenu dans un fichier README.md

Paquet de base nhésitez pas à vous en servir comme base de travail.

Manifeste

Manifeste

Les scripts

Scripts

Architecture et arguments

Comme les instances de YunoHost possèdent une architecture unifiée, vous serez capable de deviner la plupart des réglages nécessaires. Mais si vous avez besoin de réglages spécifiques, comme le nom de domaine ou un chemin web pour configurer lapplication, vous devrez les demander aux administrateurs lors de linstallation (voir la section arguments dans le § Manifeste ci-dessus).

Gestion des arguments

Configuration Nginx

Configuration Nginx

Multi-instance

Multi-instance

Commandes pratiques

Commandes pratiques

Améliorer la qualité du paquet dinstallation

Vous trouverez ci-dessous une liste des points à vérifier concernant la qualité de vos scripts :

  • Vos scripts utilisent bien sudo cp -a ../sources/. $final_path plutôt que sudo cp -a ../sources/* $final_path;
  • Votre script dinstallation contient une gestion en cas derreurs du script pour supprimer les fichiers résiduels à laide de set -e et de trap;
  • Votre script dinstallation utilise une méthode dinstallation en ligne de commande plutôt quun appel curl via un formulaire web dinstallation;
  • Votre script dinstallation enregistre les réponses de lutilisateur;
  • Vous avez vérifié les sources de lapplication avec une somme de contrôle (sha256, sha1 ou md5) ou une signature PGP;
  • Vos scripts ont été testés sur Debian Jessie ainsi que sur les architectures 32 bits, 64 bits et ARM;
  • Les scripts backup et restore sont présents et fonctionnels.

Script de vérification du paquet

Vérificateur de paquets

Il sagit dun script Python qui vérifie :

  • que le paquet est à jour concernant les dernières spécifications
  • que tous les fichiers sont présents
  • que le manifeste ne comporte pas derreur de syntaxe
  • que les scripts quittent bien avant de modifier le système lors de vérifications.

Publiez et demandez des tests de votre application

  • Inscrivez-vous à la mailing list Apps pour être tenu au courant des évolutions du packaging.

Officialisation dune application

Pour quune application devienne officielle, elle doit être suffisamment testée, stable et fonctionner sous les architectures 64 bits, 32 bits et ARM sur Debian Jessie. Si ces conditions vous paraissent réunies, demandez lintégration officielle de votre application.