Introduction Jeedom 4.2 : installation de dépendance
Un petit article aujourd’hui pour mettre en avant le nouveau système d’installation des dépendances qui arrivera avec Jeedom 4.2 (en beta au moment où j’écris ces lignes).
Comment ca marchait avant ?
Avant Jeedom 4.2, chaque plugin avait une fonction qui disait si oui ou non il avait tout ce qu’il faut pour fonctionner. Si « non », il y avait alors un script qui s’occupait de tout installer. Dans l’ensemble cela marchait bien, mais pour nous :
- il manquait une vue globale qui indique quel plugin avait besoin de quoi
- c’était lourd pour les dev qui voulaient juste avoir le package XXX d’installé
- cela manquait également d’uniformité : chaque plugin gérait à sa sauce l’installation des packages
Désormais, on précise l’état que l’on veut (les packages nécessaires) et plus comment y aller (c’est automatiquement calculé par le core).
Comment ca va marcher maintenant ?
Maintenant dans chaque plugin, il pourra y avoir un fichier packages.json qui indiquera ce dont le plugin a besoin.
Le core gère l’installation de dépendances pour le système lui-même (apt), python 2 (si l’OS est Debian 10 ou moins), python 3, nodejs (npm et yarn) et des plugins (oui il sera possible de dire maintenant qu’un plugin a besoin de tel plugin pour fonctionner). Ensuite le core se débrouille pour vérifier que tout est bien installé, et si ce n’est pas le cas l’installer sur le système. Il est même possible de spécifier des packages de remplacement si le premier n’est pas installable.
Les développeurs ont bien sûr toujours la possibilité de lancer un script avant ou après le lancement de leurs dépendances.
IMPORTANT : le nouveau système ne supprime évidemment pas l’ancien, pour ne pas perdre la compatibilité ! le core prend le nouveau si le fichier packages.json est là, sinon il reprend l’ancien fonctionnement.
Le système intègre aussi automatiquement la réparation d’apt (dpkg) en cas d’erreur, ca devrait réduire les soucis d’installation des dépendances.
Je trouve ca où ?
Pour vous utilisateur, cela ne change normalement rien du tout. Vous avez toujours le même bouton d’installation des dépendances sur les plugins et il fait toujours la même chose.
Pour ceux qui veulent creuser un peu plus, vous pouvez trouver dans la configuration de Jeedom, onglet OS/DB une console de vérification des packages (présent en 4.1 mais non fonctionnel malheureusement, mais fonctionnel en 4.2 😉 ) :
Vous remarquerez que vous pouvez savoir :
- le nom du package
- le type (apt,pip2,pip3,npm,yarn,plugin et surement d’autre à venir)
- le statut et si non ok le pourquoi (enfin quand Jeedom le sait lui-même)
- si le package est vraiment nécessaire ou optionnel
- qui en a besoin (vous voyez que le core indique maintenant les packages qu’il utilise)
- la version du package
- une remarque (si le dev en a mis une bien sûr)
Vous avez un exemple ici
Conclusion
Même si pour beaucoup cela doit sembler anodin, c’est une évolution majeure du core de Jeedom qui, on l’espère, permettra de simplifier l’utilisation de Jeedom (et le développement de plugin pour les développeurs).
A noter que nous prévoyons (sûrement en 4.3) de vous permettre de gérer la mise à jour de l’OS directement depuis Jeedom. Actuellement c’est géré sur les box Jeedom (Smart et Atlas) lors des mises à jour du core mais nous allons essayer en 4.3 de rendre cela accessible à tous depuis l’interface de Jeedom. On prévoit aussi d’activer par défaut les mises à jour de sécurité en automatique (UnattendedUpgrades).