Bonjour,
Pour informations en v4.2 il est possible de confier en partie la gestions des dépendances de vos plugins au core. C’est assez simple il suffit de créer un fichier packages.json dans plugin_info (ca sera bien sur documenté avec la sortie en stable de la 4.2, comme d’habitude pas de date). Voici quelques exemples :
{
"apt" : {
"git" : {},
"python-pip" : {},
"python-dev" : {},
"python-pyudev" : {},
"python-louie" : {},
"python-setuptools" : {},
"make" : {},
"build-essential" : {},
"libudev-dev" : {},
"g++" : {},
"gcc" : {},
"python-lxml" : {},
"unzip" : {},
"libjpeg-dev" : {},
"python-serial" : {},
"python-requests" : {}
},
"pip2":{
"wheel" : {},
"urwid" : {},
"louie" : {},
"six" : {},
"tornado" : {}
},
"post-install" : {
"script" : "plugins/openzwave/resources/post-install.sh"
}
}
{
"apt" : {
"libav-tools" : {"alternative" : ["ffmpeg"]},
"ffmpeg" : {"alternative" : ["libav-tools"]},
"python-pil" : {},
"php-gd" : {}
},
"post-install" : {
"restart_apache" : true
}
}
{
"apt" : {
"python3" : {},
"python3-pip" : {},
"python3-pyudev" : {},
"python3-requests" : {},
"python3-setuptools" : {},
"python3-dev" : {}
},
"pip3" : {
"wheel" : {},
"pyserial" : {},
"tornado" : {},
"zigpy" : {"reinstall" : true},
"zha-quirks" : {"reinstall" : true},
"zigpy-znp" : {"reinstall" : true},
"zigpy-xbee" : {"reinstall" : true},
"zigpy-deconz" : {"reinstall" : true},
"zigpy-zigate" : {"reinstall" : true},
"zigpy-cc" : {"reinstall" : true},
"bellows" : {"reinstall" : true}
}
}
Actuellement il gère : apt, pip2 et pip3, avec possibilité de lancer des script de pre/post installation et de lui demander un restart d’apache en post.
Si le fichier est présent le core ne se base QUE SUR CELUI-CI, il ignore les fonctions dependancy_info et dependancy_install. Il va donc uniquement calculer si il y a des trucs a installer ou non a partir de ce fichier json.
Ce n’est qu’un premier jet, il y a surement plein de manquement et de bug (on est en alpha). Ce qu’il va y avoir plus tard :
- gestion de l’installation de nodejs (c’est la misère ce truc en théorie faudrait prendre celui du dépôt mais c’est la v10 je crois c’est trop vieux pour certain plugin). Pouvez me dire la version de nodejs que vous voulez en général ? Si vous avez des idées de comment gerer ca au mieux (nvm peut etre mais je connais pas du tout)
- il n’y aura pas de gestion de npm ou au mieux juste le repertoire ou se trouve le fichiers des packages que veux npm
- peut etre un systeme de packges non voulu (a voir c’est costaud car va falloir gerer les conflits)
- peut etre un champs pour indiquer la version OS min/max supporté par le plugin
Voila pour les idées prévu a l’avenir sur le systeme (nodejs étant la priorité)