[spip-dev] Remarques additionnelles sur plugin.xml et necessite

Je bascule sur spip-dev, là où a lieu la discussion. Toutes mes excuss, j'avais sur spipé-zone par erreur

Eric a écrit :

Yop,

    Vu qu'une grande discussion est lancée sur plugin.xml, je me dis que
    c'est le bon moment pour poser deux autres remarques à propos de ce
    fichier.

J'ai ouvert le forum sur l'article traitant du plugin.xml, ça serait bien de poster les messages là bas afin que je regroupe toutes les propositions au même endroit.

    Tout d'abord, je n'ai pas vu dans la doc s'il était possible de
    spécifier une version minimum/maximum de PHP. Cela ne doit pas
    concerner beaucoup de plugins mais il peut arriver que certains
    plugins ne puissent fonctionner qu'avec certaines versions de PHP.
    Certains plugins par exemple ne sont pas compatibles PHP4. Sans
    rendre cela obligatoire, est-il possible ou non de spécifier une
    version de PHP ? Si non, cela serait-il une évolution souhaitable ?

Oui mais parfois tu n'as qu'une fonctionnalité qui ne marche pas en PHP4 et tout le reste oui...

Il importe néanmoins de pouvoir spécifier cette information quelque part, pour éviter à un utilisateur lambda de ne pas comprendre pourquoi il a une erreur. Après, reste à savoir le meilleur endroit pour mettre cette information.

    <necessite> permet de spécifier une dépendance. La balise <utilise>
    permet, sans imposer de dépendance, de surcharger un autre plugin.
    Par ailleurs, il arrive fréquemment qu'il soit conseillé d'installer
    avec un plugin donné un autre plugin sans que cela soit nécessaire.
    Par exemple, cfg n'est pas obligatoire avec compositions mais
    conseillé si pour le configurer. YAML et verifier ne sont pas
    obligatoires avec le noiZetier mais sont fortement conseillés pour
    profiter pleinement du plugin, de même que YAML avec le plugin Menus
    pour exporter ses menus.
    Bref, certains plugins envisagent des fonctionnalités
    supplémentaires lorsqu'ils sont utilisés conjointement avec
    d'autres. Certes, cette information pourrait être présente
    uniquement dans la documentation du plugin. Mais on pourrait
    également envisager une balise dans plugin.xml pour spécifier les
    plugins conseillés, libre à chacun de les installer ou non. Cette
    information pourrait ainsi être reprise dans SVP pour améliorer
    l'affichage et ainsi centraliser toute l'information au même
    endroit. Après, à discuter de savoir si c'est pertinent ou non.

Mais la balise utilise ne le permet pas ? C'est la différence entre surcharge et ajoute une fonction qui te manque ?
Par contre hier je suis tombé sur le cas de Codes pour porte plume. Il <utilise> CFG et Saisies sauf que si on ne met que CFG sans saisies, le formulaire n'est pas exploitable. Donc la fonction additionnelle "Configuration du plugin" utilise conjointement CFG + Saisies et ça ce n'est pas précisé.

Je pense que cette balise n'a qu'un seul intérêt celui de la surcharge mais le "peut utiliser pour ajouter une fonction" je ne le trouve pas fonctionnel.

++
Eric

Il y a en plus une confusion sur necessite. En effet, selon http://doc.spip.org/@Plugin-xml, necessite est "Identique à necessite, mais non impératif, uniquement indicatif. Par exemple pour indiquer un plugin pouvant être paramétré avec CFG.".

http://programmer.spip.org/Gestion-des-dependances précise que utilise permet de gérer des dépendances optionnelles. Par conséquent, utilise a un impact sur l'ordre des pipelines et sur chemin. On ne peut donc pas utiliser <utilise> uniquement pour indiquer une fonctionnalité supplémentaire ou pour recommander un plugin.

Je prends un exemple. Si j'installe champs extra 2, il est intéressant pour moi de savoir qu'il y a un plugin interface pour champs extra 2. Ce n'est pas la balise utilise qui peut être utilisée pour ça.

Bref, il arrive fréquemment qu'on doive informer l'utilisateur que certains plugins sont recommandés avec un autre plugin ou bien encore qu'un plugin est compatible avec un autre plugin. Il y a donc d'autres interactions entre les plugins que la question des dépendances. Ce n'est pas forcément dans plugin.xml que l'info doit figurer. Peut être que la doc suffit. Ceci dit, il me semble que la question peut être posée.

Joseph