Réflexions sur le fait d’installer une application depuis Github

De plus en plus de logiciels sont mis à disposition sur Github et disponible à l'installation à partir d'un simple téléchargement ou git clone sur sa machine du code source depuis le dépôt Github. C'est une solution de facilité qui marche généralement bien (parfois il faut faire quelques commandes en plus, dans le cas d'une utilisation d'un système comme npm, node ou autre).

Les applications Yunohost

C'est le cas par exemple des applications packagées pour Yunohost. Le package se trouve sur Github, on indique le chemin du dépôt comme source d'installation et la moulinette (l'outil interne de Yunohost) fait son travail. Le package ne fait que rajouter des scripts shell et de configuration permettant l'installation et la mise à jour de l'application, l'application en elle-même étant récupérée depuis le site officiel de l'application. C'est donc bel et bien la même application qui est installé de la même façon que si on l'avait fait soi-même.

C'est quoi le soucis ?

Avant je trouvais déjà lourd le fait d'embarquer toutes les traductions d'un logiciel. Certe ce n'est pas bien lourd, surtout à l'heure actuelle où le tera-octet de disque est devenue monnaie-courante (et je ne parle pas de la quantité de RAM, il est loin le temps où l'on pouvait penser "640K ought to be enough for anybody.").

Mais désormais, avec les framework de développement, une simple application web peut faire des dizaines de méga octets. Et surtout, on a tous les fichiers de tests unitaires de l'application. Des tas de fichiers dont je n'aurai pas l'usage.

On a donc d'un côté l'application, assez lourde, et à côté, les test unitaires, la documentation et des tas d'autres fichiers qui ne servent pas et qui potentiellement peuvent contenir des failles de sécurité. Je ne suis pas assez pointu dans le domaine pour savoir si c'est quelque chose qui peut réellement poser problème (en théorie oui, plus il y a de fichiers et plus on multiplie les chances qu'il y ait une faille exploitable. Un peu comme ajouter des tas de plugin divers et variés dans un Wordpress par exemple... - On est vendredi quand je rédige ce billet).

Ce que j'aimerais ?

Il faudrait deux mode :
- un mode développeur pour lequel on a tout le code source, les jeux de tests, la documentation etc.
- un mode production permettant d'avoir les fichiers de configuration, les fichiers utiles à l'application et seulement eux.

Simple non ?

Conclusion

La prochaine fois, on parlera peut être des applications proposées uniquement sous la forme de conteneur Docker ou d'un autre sujet ;)