Outils pour packager une application

Bonjour,
Je souhaiterai éventuellemnt me lancer dans le packaging d’une application pour yuno. Mais pour cela je souhaiterai connaître les outils et procédures nécessaires pour le faire. Pour cela je dispose de windows 10. Il faudra je suppose installer avec virtualbox une debian 8 puis yuno. Mais après comment procéder pour être le plus efficace possible? Quels sont vos conseils en dehors du tuto: https://yunohost.org/#/packaging_apps_fr
En vous remerciant

bonjour, voici comment je m’y suis pris, c’est indépendant du système d’exploitation (j’utilise Fedora).

La préparation

Dans une VM, installer debian 8, qu’on appelera “deb8-brute” :

Dans “deb8-brute”, installer git, aptitude et vim (remplacez vim par l’outil de votre choix)

Cloner “deb8-brute” deux fois : en “deb8-pcheck” et “deb8-ynh”. Ça vous permettra d’avoir toujours une Debian propre, de laquelle repartir en cas de besoin actuel ou futur.

Dans “deb8-pcheck”:

Dans “deb8-ynh” :

  • installer YunoHost sur un domaine de votre choix, par exemple “ynh.dev”
  • ajouter à votre fichier hosts “ynh.dev” vers “deb8-ynh”
  • créer un utilisateur sur “ynh.dev”, j’utilise personnellement l’interface web classique
  • prendre un instantané, en cas de boulette, on pourra revenir facilement en arrière, sur cette machine c’est très important

Lancez les machines virtuelles deb8-pcheck et deb8-ynh, notez les adresses IP (sudo ifconfig).

Ajouter à votre navigateur de fichiers deux liens, une connexion ssh sur deb8-pcheck et l’autre en connexion ssh sur deb8-ynh (peut-être qu’il faudra utiliser un outil du genre filezilla sur windows).

Voilà, tout est en place.

Le développement

Maintenant, voici comment je procède lors ce que je travaille sur monappli_ynh :

  • je fais un projet monappli_ynh avec Gnome Builder
  • je copie colle le dossier monappli_ynh vers deb8-pcheck
  • je me connecte en ssh, puis je lance ./package_check/package_check.sh monappli_ynh
  • si le message d’erreur est compréhensible, je corrige dans Gnome Builder, je copie-colle etc.
    • Sinon, je je parcours le journal less package_check/Complete.log
      • Sinon, par exemple dans le une cas d’une erreur nginx, je lance la commande en mode interruption ./package_check/package_check.sh monappli_ynh --interrupt (cela permet de se connecter en SSH, et d’apporter quelques modifications, d’où l’intérêt de vim et Aptitude).

Quand les résultats des tests sont bons, je vais sur “deb8-ynh”

  • je copie mon dossier, je vérifie que l’application fonctionne effectivement bien, tant à la racine qu’en sous-dossier
  • si mon application est la mise à jour d’une application déjà existante, je teste aussi l’installation de l’application précédente, puis je force la mise à jour en utilisant mon dossier de travail sudo yunohost app upgrade appliancienne -f monappli_ynh

Voilà, tout ceci a été après grâce aux membres du groupe apps qui ont un salon XMPP. Et il y a du travail pour une éternité, et de la place pour tout le monde !

Compléments

  1. Il n’est pas indispensable d’utiliser une machine virtuelle pour yunohost, mais personnellement je n’ai pas envie de prendre le risque de planter mon serveur et de perdre du temps à le remettre sur pied :slight_smile: Avoir une petite idée de ce qu’on fait ne veut pas dire que tout se passe toujours bien :wink:
  2. on notera qu’on peut tout à faire cloner “deb8-pcheck” pour lancer plusieurs machines en parallèle, les vérifications complètes peuvent prendre plusieurs dizaines de minutes et dépasser une heure… Il suffit pour ça d’avoir des paquets à compiler avec pip par exemple, des fichiers à compiler ou simplement beaucoup de dépendances.
  3. la page d’aide sur l’empaquetage a l’air toute simple, mais en fait elle contient de très nombreuses informations utiles, il faut aller y perdre son temps et cliquer partout ! https://yunohost.org/#/packaging_apps_fr
4 Likes

La réponse de jibecfed est déjà très complète, merci à lui :slight_smile:

J’ajouterais simplement qu’il y a une doc sur l’usage de VirtualBox, si nécessaire.

Il n’est pas indispensable d’utiliser 2 VM différentes, il est possible de tester sur la même VM que package check sans conflit.
Par contre, je suis en désaccord sur un point:

Si, c’est indispensable d’utiliser une machine dédiée, car sinon tu ne pourras pas savoir si ça marche réellement sur un serveur lambda. Un serveur en prod n’est jamais neutre.

1 Like

Merci pour le lien sur virtualhost