Fonctionnement de la synchronisation des informations de plugins sur SPIP contrib

Les informations sur les versions et compatibilités de plugins sur spip-contrib sont, dans la mesure du possible, automatiquement synchronisées avec les informations disponibles sur https://plugins.spip.net. Ainsi, il n’est pas nécessaire d’attribuer à la main les compatibilités SPIP pour les articles documentant des plugins.

Cet article en explicite le fonctionnement.

Conditions de synchronisation

  • Le plugin doit être disponible sur plugins.spip.net sous forme de zip, grâce à une déclaration dans dans un des fichiers archivelist.txt
  • Le fichier paquet.xml (ou plugin.xml) doit contenir un lien de documentation vers l’article ou la rubrique de contrib:
    • attribut documentation pour paquet.xml
    • balise <lien></lien> dans plugin.xml
    • Le lien doit être sous la forme https://contrib.spip.net/<url>, <url> pouvant être:
      • Le numéro d’article seul
      • L’url sous forme ?articleXXX ou ?rubriquexxx
      • L’url propre de l’article ou de la rubrique concerné

Ce qui est synchronisé

  • Le zip du plugin est automatiquement associé, en tant que document distant, à l’article référencé dans paquet.xml / article.xml. Si le lien pointe vers une rubrique, le zip est associé à tous les articles de la rubrique (sur un niveau).
  • Le titre du document distant est :“<Nom du plugin> (<numéro de version>)”.
  • L’état du plugin est associé à chaque zip via un champ extra.
  • Les mots clés de compatibilité de version SPIP sont associés et dissociés automatiquement, en se basant sur les infos fournis dans paquet.xml / plugin.xml
    • aux documents distants pointant vers les zip
    • aux articles de documentation
  • Le lien distant associé à chaque article renvoie vers https://contrib.spip.net/<prefixe>. Le lien n’est mis à jour que si le champ est vide.

Fréquence de la synchronisation

  • La source première des informations est https://plugin.spip.net. Pour rappel, les informations sur les plugins sont mis à jour là bas toutes les six heures.
  • Les informations sont diffusées via la page https://plugins.spip.net/infos_plugin.api/?lien_doc=https://contrib.spip.net [1]
  • Un génie spécifique à SPIP contrib passe toutes les X minutes et synchronise automatiquement Y plugins. Chaque plugin est identifié par son préfixe. S’il y a donc trois zips pour trois versions différentes du plugin, les trois seront synchronisés d’un coup.
  • À l’itération suivante, les Y plugins suivants dans l’ordre du json sont synchronisés. Lorsque tous les plugins ont été synchronisés, on recommence depuis le début de la liste à l’itération suivante.
  • Actuellement (26 février 2019), toutes les 45 minutes, 25 plugins sont synchronisés. Ce qui signifie qu’en 24 h, 800 plugins sont synchronisés. Il y a un peu plus de 800 plugins référencés par https://plugins.spip.net, donc un plugin voit ses informations synchronisées à peu près toutes les 24 h.

Lien vers les codes de synchronisation

Remarques finales

En théorie, une rubrique ou un article ne devrait documenter qu’un seul plugin, et non pas deux. Toutefois, dans certains cas, cela se justifie :
-  s’ils s’agit de plusieurs plugins correspondant à plusieurs versions d’une même librairie externe
-  s’ils s’agit de plugins prévues pour fonctionner ensemble mais découpé en bloc fonctionnel

Dans ce cas, les mots clé de compatibilité de version SPIP associé à l’article correspondent à l’ensemble des versions de compatibilités des plugins. Ainsi, si un plugin est marqué comme compatible 3.0 seulement et un autre 3.1 seulement, l’article sera marqué comme compatible 3.0 et 3.1.

Footnotes

[1Et d’autres pages similaires pour les anciennes urls de contrib, essentiellement pour les anciens zips.

updated on 17 March 2019

Discussion

2 discussions

  • d’accord, et il y a déjà beaucoup de boulot effectué dans tous les domaines, merci à vous.

    Reply to this message

  • 1

    Merci pour ces informations. Une suggestion, serait-il possible d’avoir, par un moyen ou un autre (filtre de tri, colonne, mot-clé etc.) l’information de la compatibilité directement dans l’affichage des plugins au sein d’une liste de recherche ? De manière à ne pas se “casser le nez” (façon de parler) en cliquant sur le nom d’un plugin attrayant pour la recherche considérée, et constater en colonne de droite qu’il n’est accessible que pour la version antérieure (ex. 2.* alors que la dernière est en v. 3.2.3). Ca n’est pas très gênant bien sûr.

    • oui, cela fait partie des choses en cours de reflexion, de masquer par défaut les infos pour les versions non maintenus. Mais c’est sur un travail plus global de refonte ergo du site.

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom