[spip-dev] Core.xml

Hello,

Après une discussion sur le déclaratif avec Fil, je me suis plongé dans le fichier de SPIP ecrire/core.xml qui est sensé déclarer les boutons, onglets, pipelines de SPIP à l’instar du fameux plugin.xml des plugins.

Cependant, toutes les balises de plugin.xml (ou de la nouvelle DTD paquet.dtd) ne sont pas encore utilisées et pourraient surement avoir un intérêt à l’être. Je pense à :

  • version, version_base et etat
  • nom, slogan (nouvelle DTD), description
  • licence, copyright (nouvelle DTD)
  • auteur, credits (nouvelle DTD)
  • lien (pour la doc, sera renommé en documentation dans la nouvelle DTD)
  • traduire

Qu’en pensez-vous ?

Après une discussion sur le déclaratif avec Fil, je me suis plongé dans le
fichier de SPIP ecrire/core.xml qui est sensé déclarer les boutons, onglets,
pipelines de SPIP à l'instar du fameux plugin.xml des plugins.

Cependant, toutes les balises de plugin.xml (ou de la nouvelle DTD
paquet.dtd) ne sont pas encore utilisées et pourraient surement avoir un
intérêt à l'être. Je pense à :

- version, version_base et etat
- nom, slogan (nouvelle DTD), description
- licence, copyright (nouvelle DTD)
- auteur, credits (nouvelle DTD)
- lien (pour la doc, sera renommé en documentation dans la nouvelle DTD)
- traduire

Ce serait pas mal.

Ma remarque portait sur les cron, qu'il faut déclarer dans un pipeline
qui appelle une fonction qui set une valeur en PHP... ce serait bcp
plus simple de les déclarer dans le XML <cron fréquence=xxx
fonction=xxxx>, au moins pour les cas simples. Le système ferait un
charger_fonction(xxxx, "genie/").

(je ne me fais toujours pas au mot "génie", d'ailleurs, car ça
m'évoque daemon, donc programme résident, et pas cron, programme lancé
périodiquement)

-- Fil

Oui, oui je suis d’accord.

Mais ça m’a donné l’idée que l’on pourrait aussi le faire évoluer vers un plugin.xml de SPIP non ?
En particulier pour la balise traduire ça permettrait d’intégrer sans contournement les modules dans traductions.txt et je me demande si ça serait pas aussi intéressant pour les prochaines distributions.

Mais ça m'a donné l'idée que l'on pourrait aussi le faire évoluer vers un
plugin.xml de SPIP non ?

Oui ; le nom "plugin" fait bizarro, mais indépendamment de ça, au
moins faisons qu'on y récupère "traduire" et les balises qui font
sens.

Pour la notion de "distribution" aussi ça paraît clair. D'ailleurs,
est-ce que ça ne pourrait tout simplement pas se baser sur "necessite"
? Le zippeur prendrait le xml de la distrib, et irait chercher tous
ses paquets nécessités.

-- Fil

Yop,

Oui ; le nom « plugin » fait bizarro, mais indépendamment de ça, au
moins faisons qu’on y récupère « traduire » et les balises qui font
sens.

Oui et même on peut garder core.xml.
Les balises qui me paraissent avoir un sens sont :

  • version, version_base et etat
  • nom, slogan (nouvelle DTD), description
  • licence, copyright (nouvelle DTD)
  • auteur, credits (nouvelle DTD)
  • lien (pour la doc, sera renommé en documentation dans la nouvelle DTD)
  • traduire

Pour la notion de « distribution » aussi ça paraît clair. D’ailleurs,
est-ce que ça ne pourrait tout simplement pas se baser sur « necessite »
? Le zippeur prendrait le xml de la distrib, et irait chercher tous
ses paquets nécessités.

Oui, ça pourrait le faire.
Et par contre, il faudrait juste prévoir :

  1. de considérer ces necessite comme « non désactivables »
  2. permettre de créer d’autres distrib eventuellement en surchargeant ce fichier core.xml par un distrib.xml si il existe. Enfin je sais pas trop :stuck_out_tongue:

1) de considérer ces necessite comme "non désactivables"

Oui, c'est cohérent : si tu enlèves le plugin A tous les plugins qui
nécessitent A se désactivent. Si le core se désactive, on est mal :slight_smile:

2) permettre de créer d'autres distrib eventuellement en surchargeant ce
fichier core.xml par un distrib.xml si il existe. Enfin je sais pas trop :stuck_out_tongue:

créer une distrib reviendrait à créer un core.xml, à partir duquel on
fabriquerait l'ensemble des fichiers (ou des amorces svn) nécessaires
?

-- Fil

Je rappelle que j'avais un peu décrit des possibilités ici :
http://blog.smellup.net/spip.php?article33

Pour moi core.xml c'est vraiment les déclarations *du core*. Pas de la distrib. Car le core lui-même a une version (juste celle du moteur) différente de la distrib. Pareil pour d'autres déclarations.

Donc d'après moi il vaut mieux un fichier *en plus* qui détermine spécifiquement la distribution. Celle par défaut aurait le nom de la distribution "SPIP", sa version propre, les extensions qu'elle nécessite, etc.