doc/pages/04.contribute/04.packaging_apps/02.technical_intro/packaging_apps.fr.md
2021-02-08 05:24:11 +01:00

5.7 KiB
Raw Blame History

title template taxonomy routes
Packaging d'applications docs
category
docs
default
/packaging_apps

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

! This page is outdated and should be reworked

Prérequis

Pour packager une application, voici les prérequis :

Si vous ne comprenez pas ces prérequis, ou si vous ne savez pas comment écrire du code, consulter d'abord l'introduction au packaging.

Contenu

Un paquet YunoHost est composé :

  • dun manifest.json
  • dun dossier scripts, composé de six scripts Shell install, remove, upgrade, backup, change_url 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

[div class="btn btn-lg btn-default"] Paquet de base [/div] nhésitez pas à vous en servir comme base de travail.

Manifeste

[div class="btn btn-lg btn-default"] Manifeste [/div]

Les scripts

[div class="btn btn-lg btn-default"] Scripts [/div]

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).

[div class="btn btn-lg btn-default"] Gestion des arguments [/div]

Configuration NGINX

[div class="btn btn-lg btn-default"] Configuration NGINX [/div]

Multi-instance

[div class="btn btn-lg btn-default"] Multi-instance [/div]

Hooks

[div class="btn btn-lg btn-default"] Hooks [/div]

Commandes pratiques

[div class="btn btn-lg btn-default"] Commandes pratiques [/div]

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 Buster 32 bits, 64 bits et ARM;
  • Les scripts backup et restore sont présents et fonctionnels.

Pour mesurer la qualité d'un paquet, celui-ci obtiendra un niveau, déterminé en fonction de divers critères d'installation et selon le respect des règles de packaging.

Script de vérification du paquet

[div class="btn btn-lg btn-default"] Vérificateur de paquets [/div]

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.

Intégration continue

Un serveur d'intégration continue est a disposition des packagers désirant tester leurs applications.
[div class="btn btn-lg btn-default"] Intégration continue [/div]

Publiez et demandez des tests de votre application

  • Demandez des tests et des retours sur votre application en publiant un post sur le Forum dans la catégorie Discussion > Apps.

  • Si votre paquet et l'application qu'il contient sont sous licence libre, faites une demande dajout de votre application dans le dépôt des applications (voir aussi la liste des apps). Vous pouvez ajouter une application même si celle-ci n'est pour le moment pas fonctionelle : l'état d'avancement peut être notworking, inprogress ou working.

  • Si votre application n'est pas sous licence libre, il se peut qu'une liste non-officielle soit créée pour gérer ces applications. Ce n'est pour l'instant pas le cas.

Officialisation dune application

!! Section obsolète au 08/03/19 - Le fonctionnement du projet est en cours d'évolution sur ce point.

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