Dépendances de plugins

Salut à tous,

Je propose d'ajouter un champ de "Dépendances" dans le fichier infos.xml accompagnant les plugins.
Ce champ contiendrait l'ensemble des noms des plugins dont le plugin dépend.

Ca pourrait ressembler à :
<?xml version="1.0" encoding="UTF-8"?>
<document>
	<title><![CDATA[MonPlugin]]></title>
	<author><![CDATA[Auteur]]></author>
	<version>1.0</version>
	<date>30/04/2015</date>
	<site></site>
	<dependencies>plnStaticPages AutrePluginDeDependance</dependencies>
	<description><![CDATA[Mon plugin]]></description>
</document>

Cette information serait, au minimum, purement indicative (affichage éventuel dans la page des plugins).

On pourrait imaginer un test automatique de pluXml à l'installation d'un nouveau plugin pour vérifier la présence des plugins dont il dépend, avec message à la clé (du genre "Attention ce plugin dépend des plugins trucs et machins, qui ne sont pas installés actuellement).

Un plugin d'installation automatique de plugins (suivez mon regard) pourrait même prendre en compte le téléchargement et l'installation automatique des dépendances :)

Si cette idée intéresse je veux bien plancher sur une proposition de code.

Le seul point qui me gêne un peu, avec cette histoire de dépendance, concerne l'esprit de pluXml : est-ce que le fait de faire des "briques techniques" à la debian est considéré comme compatible avec la philosophie de simplicité de pluXml ?

Je pense à cette évolution pour mon plugin plnStaticPages qui se veut rentrer exactement dans la catégorie des "plugins techniques" dont dépendraient d'autres plugins...

Réponses

  • Il y a déjà un champ requirements mais qui n'a jamais été exploité. Il faudrait l'avis de Stephane pour savoir pourquoi et quels étaient les freins.
  • Gari a écrit:
    est-ce que le fait de faire des "briques techniques" à la debian est considéré comme compatible avec la philosophie de simplicité de pluXml ?
    il y une règle de base dans la grande majorité des langages qui dit qu'il faut essayer de ne pas avoir de code en double
    donc même si pluXml cherche a être simple, je pense qu'il faut faire en sorte de ne pas avoir de code en double (avec par exemple de dépendances entres extensions) et ensuite réfléchir à comment optimiser tout ça pour que ça fonctionne simplement

    autre chose qui vient de passer par la tête, dans l'autre discussion, il était question de gérer plusieurs dépôts d'extension donc si l'information "dependencies" fonctionne avec cela, il faudra rajouter l'information qui indique dans quel dépôt trouver l'extension
  • StéphaneStéphane Member, Former PluXml Project Manager
    Jerry Wham a écrit:
    Il y a déjà un champ requirements mais qui n'a jamais été exploité. Il faudrait l'avis de Stephane pour savoir pourquoi et quels étaient les freins.

    Le champ "requirements" dans le fichier infos.xml était prévu à cet effet pour indiquer les dépendances entre plugins. Je n'ai pas été plus loin dans le développement car le besoin ne se faisait pas réellement sentir, et d'autres sujets me semblaient plus prioritaires à traiter.

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Stéphane a écrit:
    Jerry Wham a écrit:
    Il y a déjà un champ requirements mais qui n'a jamais été exploité. Il faudrait l'avis de Stephane pour savoir pourquoi et quels étaient les freins.

    Le champ "requirements" dans le fichier infos.xml était prévu à cet effet pour indiquer les dépendances entre plugins. Je n'ai pas été plus loin dans le développement car le besoin ne se faisait pas réellement sentir, et d'autres sujets me semblaient plus prioritaires à traiter.
    La porte est donc ouverte ]:D
  • GariGari Member
    Salut à tous,

    Je reviens sur le sujet, je suis quand même fan du principe de dépendances entre plugins.

    J'ai écrit un petit document de cadrage sur le sujet, qui permet de définir l'ensemble des besoins et fonctionnalités. Si vous pouviez le lire et me faire vos commentaires... J'ai l'intention par la suite de coder tout ça pour l'intégrer au moteur (par contre je ne sais pas du tout comment faire pour soumettre mes modifications, je suis un gros nul de Github).

    Le document : La gestion des dépendances des plugins T0.1

    Gari.
  • au sujet de GitHub, tu utilises le client Windows ? dans ce cas tu choisis la branche avec les modifications et ensuite tu cliques sur l'icône "Create Pull Request" en haut à gauche. normalement la cible (c'est à dire pluxml/master) est choisie par défaut et tu valides
  • je-evrardje-evrard Member
    juin 2015 modifié
    Bonjour,
    Jormun a écrit:
    Mon avis est que ca devrait rester au stade informatif. Le champ requirement pourrait etre affiché dans les plugins. Eventuellement avec un CSS pour mettre en avant les dépendances manquantes dans le tableau et basta.

    Tout à fait d'accord avec ça. Surtout que le moteur de pluxml n'a pas besoin de se complexifier juste pour ça. Ce champs peut etre utilisé par contre pour un plugin installeur de plugin comme ici : spxplugindowloader
    Ce plugin pouvant résoudre la problématique des dépendances en demandant si le user veut installer le plugin + les dépendances. Il pourrait aussi afficher un warning dans les plugins installés dont les dépendances ne le sont pas. Je vais surement travailler sur le sujet.

    a+

    jéjé
  • GariGari Member
    @Jormun : tes arguments sont plutôt convaincants, j'avoue !
    @je-evrard : ca, ce serait le top ! Je ne sais pas si je peux aider (d'autant qu'il me semble que tu es bien largement meilleur que moi en programmation) mais si besoin je peux donner un coup de main : ça m'intéresse vraiment de pouvoir découpler mes différentes briques de fonctionnalités !
  • StéphaneStéphane Member, Former PluXml Project Manager
    Je partage également les avis de Jormun et de je-evrard sur la question de la gestion des dépendances des plugins.

    On est tous d'accord pour dire qu'idéalement il faudrait que ce soit géré.
    Après dans la pratique, dans notre cas bien précis de PluXml, on va alourdir le moteur pour gagner quoi... pour qui... On risque donc + de complexifier plutôt que simplifier et de se rajouter des contraintes.
    Ok pour un affichage à titre informatif sur la page du plugin. Aller au delà de ça... on risque de faire fausse route

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Jormun a écrit:
    Je valide la proposition de je-evrad, c'est completement logique que le plugin téléchargeur de plugin se charge tout seul de prendre les dépendances nécessaires.

    :)

    Les gars on ne s'inquiète pas la dessus, on va plancher sur la question.
Connectez-vous ou Inscrivez-vous pour répondre.