Accueil > Gazette > Gazette de Juin 2023

Gazette de Juin 2023

mercredi 5 juillet 2023, par JLuc

Actualité

Rendez-vous de septembre à Paris

Du 8 au 10 septembre 2023, nous aurons l’occasion de nous (re)voir ! Deux jours de rencontre dans la bonne humeur, pour se former, avancer, discuter !
La rencontre aura lieu à Paris, au Defap, 102 bd Arago où nous disposerons de quelques logements et de 2 salles. Le programme est à construire ensemble, selon les envies des uns et des unes.
Inscription et informations pratiques par là : https://blog.spip.net/Rencontre-SPIP-du-8-au-10-septembre-2023.html

Piratages de SPIP

Ça y est. Après 20 ans, SPIP est enfin comme les autres CMS, puisqu’une vague de piratage a ciblé les sites SPIP.

À savoir : Plus de 99,9% des sites impactés n’étaient pas à jour, puisque les dernières versions corrigent les failles.

Rappel : Sur tous vos sites, il faut mettre SPIP à jour avec la dernière version de sa branche. Malheureusement, exactement 100% des personnes qui ne mettent pas leur site à jour ne suivent pas cette recommandation. N’en faites pas partie ! spip_loader permet des mises à jour très faciles... mais il faut tout de même s’assurer de la compatibilité des plugins utilisés.

Nouveaux plugins

Gis plus : marqueurs (markers) et légende configurables

Le plugin « gis_plus » permet d’attribuer des icônes aux points GIS liés à des articles et d’afficher leur légende dans la carte.
Site exemple : https://toten-occitanie.fr/retours_experiences (bas de page)

Un nouveau squelette : Squelette Koinós

La vocation de ce squelette est de permettre la création de sites supports d’information locale et indépendante.
Initialement réalisé à l’usage des habitantes de la vallée du Cousin (Morvan, Bourgogne), il est désormais disponible de manière générique et utilisable dans n’importe quel territoire.
Son nom, « Koinós » (prononcé Koynos) vient du mot grec κοινός qui signifie « commun » au sens de « commun à tous », « qui participe à », « qui est en communauté », « qui se prête à tous également ».
Site exemple : https://www.valleeducousin.fr

PDForm : générer un PDF à partir de données éditoriales

Le nouveau plugin PDForm permet de créer un PDF à partir d’objets éditoriaux de SPIP et de définir précisément sa mise en page, avec champs textes variables et illustrations.
La documentation donne l’exemple d’un courrier personnalisé adressé aux adhérents d’une association, et qui contient leur carte d’adhérent.

GraphQL : Exposer un endpoint graphQL avec les données de SPIP grâce à la bibliothèque graphql-php. Pas de documentation, mais un readme.md dans le repo. Si vous ne connaissez pas graphQL, voici une documentation.

Si les thèmes graphQL, REST, CRUD et SPIP headless vous intéressent, consultez ce fil de discussion et voyez aussi les plugins « REST Factory, simplifier les API REST » et « Collection json : un Serveur HTTP abstrait » (code sur la forge git.spip.net), ainsi que APIBridge (sur la forge nursit).

Des réflexions

Sur discuter.spip, il y a eu (et il y a encore parfois) des échanges sur des sujets qui sont l’occasion de réaffirmer les valeurs de SPIP :

L’Inclusivité dans la communauté SPIP

@touti : « Un des trucs de l’I.A., si iel n’est pas guidé est de reprendre la façon dont la majorité des textes est écrite, avec ses travers. Pour s’adresser à une communauté ouverte (qui a très peu de participantes comme beaucoup de projets libres) SPIP essaye d’éviter les terminaisons masculines. Ce que ne fait pas Chattruc. Ainsi, on préfèrera écrire les personnes qui font du développement ou les personnes qui utilisent plutôt que développeurs ou utilisateurs. Quand on ne peut pas écrire de façon épicène, on met alors un point médian. »

@jeanmarie : « Changer sa façon de penser, ça prend du temps et c’est rarement facile car ça demande à bouger des trucs qui peuvent être profondément ancrés dans notre personnalité sans même qu’on s’en rende compte.
 Des fois, on n’est pas aussi avancée qu’on le croit sur certains sujets donc ça vaut le coup de se poser et de se documenter pour éviter de dire des conneries qu’on regrettera quand on aura fait notre chemin (histoire vécue)
 Les personnes concernées sont bien souvent les personnes les mieux placées pour parler de ces sujets donc on gagne toujours à les écouter (merci à elles pour leur temps et énergie)
 C’est très compliqué de penser ces questions de domination quand est dans le groupe dominant.
Tout ça n’est pas forcément de notre faute et la question n’est pas là ; mais le jour où les personnes concernées demandent plus d’inclusivité, tu n’as que 2 choix : refuser et camper sur tes acquis ... ou accepter et changer ta façon de penser.
Spoiler alert : la 2e solution n’est pas si douloureuse :-D »

Les plugins payants et le modèle économique de SPIP

@maieul : « Je ne crois pas que grand monde dans la communauté SPIP serait intéressé à dev des plugins qu’on paie à l’installation. Une fois qu’un truc est codé, le travail a été fait, il n’y a pas besoin de repayer. Certains devs intègrent la maintenance/dev des plugins lorsqu’ielles font des prestations. Par ailleurs les dev du noyau SPIP sont pour une grande partie soit embauchés par une structure qui fait du SPIP, soit le font sur du temps bénévole. »

@b_b « perso je préfère le faire pour le plaisiiiiiiiiiiiiiiiir :-P Et je ne crois pas que le point de vue capitaliste puisse sauver quoi que ce soit. Sinon, je rappelle que notre charte inclue une défiance vis-à-vis de l’argent.

@epilibre « tout le monde est libre de faire ce qu’il veut avec SPIP. C’est le principe même du Logiciel Libre. Par contre c’est certain qu’il ne faut pas s’attendre à un système intégré à l’interface privée avec un accès à des modules payant car ce n’est pas dans l’éthique des fondateurs de SPIP. »

@liberte « il y a quelques années, certains utilisateurs avaient proposé de monter des cagnottes pour financer des développements, quitte à reverser les résultats à la communauté. Non développeur moi-même, ça me semblait un bon compromis. »

@rastapopoulos « De (très) nombreux plugins ont au final été créés (ou améliorés) durant des projets pros, donc ce sont bien des développements qui ont été payés, pas faits pour le fun le week-end en loisir. De même que ce soit noyau (core) ou plugins, de nombreuses parties ont été faites en tant qu’investissement par des structures pros, sur leurs journées (ou nuit, chacun s’organise comme il veut) de travail, pour qu’ensuite avoir telle ou telle fonctionnalité (ou tel noyau, API bien propre) disponible à proposer comme service dans leur CMS préféré.
Le problème le plus complexe vient pour des actions longues (voire très longues) à mener qui ne peuvent absolument pas s’inscrire dans le cadre d’un projet (que ce soit un projet pro, ou dans une asso peu importe). Par ex refonte de l’admin, ou refonte ergo-com du site vitrine principal spip.net, ou remaniement du noyau, etc. Ce sont des projets qui intéressent plusieurs personnes, mais qui n’avancent soit pas, soit goutte à goutte, depuis plus de 10 ans, car personne ne trouve le temps pour ça. On voit une différence majeure et immédiate avec la rapidité avec laquelle se créent ou s’améliorent les plugins fonctionnels qui sont fait durant des vrais projets de site (pro ou asso). Pour ces travaux là, ça ne me choquerait pas outre mesure que des gens s’organisent pour avoir du temps payé pour les faire avec des financements comme NLNet. Cela évite la fatigue et le burn out du libre (phénomène bien réel et étudié). »

Des ressources

SPIP 4 : vu du côté de la rédaction  : Un guide de 26 pages A4 illustrées en couleurs, pour des personnes qui sont amenées à rédiger ou administrer un site tournant avec ce logiciel de gestion de contenu mais n’ayant pas à intervenir sur l’aspect technique. À récupérer en version PDF ou EPUB.

Ça bouge sur programmer.spip
 Personnaliser les couleurs de l’espace privé
 Créer un critère pour faire une jointure
 Pipeline libeller_logo
 Cache des boucles DATA
 Pipeline formulaire_receptionner
 Filtre media_determine_autolien
 Pipeline calculer_rubriques
 Formulaire de configuration
 Pipeline quete_logo_objet

Ça bouge dans le carnet-wiki de contrib
 Créer les objets SPIP décrits par un fichier csv (création)
 Utiliser l’API SPIP de recherche avec l’API SQL (création)
 FAQ pratique : SPIP avec GIT (mise à jour)
 Nginx et Spip (mise à jour)
 Convertir spip en markdown (mise à jour)
 SPIP vs Wordpress (mise à jour)
 Migrer de SPIP 3.2 à SPIP 4.0 : le livre de cuisine (mise à jour)

Ça bouge sur spip.net

De nouvelles traductions en anglais ont été produites.

Ça bouge dans le code

Voyez vous-même dans le code de SPIP. Dans le code des plugins, il faut regarder plugin par plugin.

SPIP5 et l’avenir de SPIP

Il est prévu que SPIP5 arrive en Janvier 2024. Il y a donc encore du temps et le code n’est pas stabilisé.

CSS

Depuis le commit 7e0ef909, les CSS de la dist utilisent des variables CSS. Il y en a de 2 sortes :
 des variables « publiques » qui pourront être communiquées, elles permettent de modifier simplement les principaux éléments qui régissent l’apparence du thème : couleur d’accent, etc.
 des variables « privées » à usage interne, qu’il n’est pas recommandé de surcharger dans ses styles persos.

Exemple :

.success    { 
    background: var(--dist-color-success-bg); 
    color: var(--dist-color-success-text); 
    border-color: var(--dist-color-success-border); 
}

@tcharlss précise que ça s’inscrit dans un projet plus vaste d’évolutions du thème et des squelettes de la dist. :
 #4865 : Ajout de variables CSS : permet de personnaliser plus simplement l’apparence, et facilite la maintenance [FAIT]
 #4871 : Configuration du thème : ajout d’une configuration pour choisir la couleur et éventuellement les polices du thème dans l’espace privé [PRÉVU]
 #4866 : Guides de styles : une aide pour les devs [EN COURS]
 Remaniement du thème : rafraîchir l’apparence. Si pas intégré à la dist, ça pourra finir en thème à part [PRÉVU s’il y a le temps]
 #4872 : Mode clair/sombre, un petit widget pour basculer entre le thème clair ou foncé et qui garde en mémoire la préférence utilisateur⋅ice [PRÉVU s’il y a le temps]

Modularisation du code pour Composer
@james a mené un travail d’analyse et de décomposition du code de SPIP en petits morceaux modulaire. Le projet à long terme est de sortir SPIP de son isolement technologique vis-à-vis de l’écosystème PHP.

« Ce qui est fait à ce jour, c’est l’assemblage de la distribution classique de SPIP avec composer pour SPIP 5.0, qui devrait sortir en début d’année prochaine. La suite, pour les 6 mois (le court terme) qui nous restent jusque là, c’est de tenter de remplacer la plus grosse part possible du PHP historique du dossier ecrire/ par des composants (pas des plugins) techniques spécialisés, basés eux-mêmes, dans la mesure du possible, sur des bib (lib) externes plus sûres, maintenues par d’autres pour alléger notre propre charge mentale. En ce moment, j’analyse le code existant et je classe les fonctions, les fichiers, les globales, les constantes. On aura peut-être besoin d’étaler ça sur un peu plus temps plus long. On verra …

À moyen terme, (disons pour les 3 années suivantes ? pour les SPIP 5.x grosso modo ?) ça nous permettra, d’assurer plus facilement la compatibilité des plugins communautaires, et donc les diverses montées de version, mais aussi, je l’espère de ne plus avoir besoin d’un dossier physique ecrire/, de faire des distributions « moins classiques » plus facilement, de proposer d’autres manières de sécuriser des applications SPIP sur le web, de ne plus copier/coller du code de bib (lib) externes dans des plugins, voire des dossiers vendor/ entier …

Le résultat principal intéressant, pour le moment, bah ça dépend de ce à quoi on s’intéresse, forcément… mais je pense que l’assemblage de SPIP avec composer, ça nous facilite pas mal la production des zip de SPIP et donc des sorties (releases) mais aussi pour les devs en local (mais c’est plus aux autres de le dire…). Si on tient nos objectifs, ça devrait aussi être plus facile de maintenir des plugins…

Les orientations induites, sans être 100% sûr de répondre à ta question, c’est qu’on bénéficie des standards d’autotéléchargement partagés avec l’écosystème PHP : on peut donc faire du code objet, ce qui nous facilite notamment la production de tests unitaires automatisables (parce que c’est plus facile de tester des classes que des fonctions mélangées à des globales, par exemple) »

API SQL, SPIP 5 et PHP 8.1

Question : Pourrait on améliorer la facilité de l’API SQL en passant toutes les options en tableau associatif ?

Réponse : SPIP 5 nécessite PHP 8.1+ et on y disposera donc des arguments nommés sur les fonctions, ce qui permettra d’écrire :

sql_fetsel(
  select: '*',
  from: 'spip_patates left join spip_patates_liens on…',
  orderby: 'rang_lien',
);

Accessoirement, on pourra aussi construire ton tableau d’options avant, et l’éclater lors de l’appel :

$tab = [  
  'select' => '*',
  'from' => 'spip_patates left join spip_patates_liens on…',
  'orderby' => 'rang_lien',
];
sql_fetsel(...$tab);

Quelques trucs super pas intéressants

Statistiques

 SPIP 4.2 est paru le 23 février.
 début mai, 250 plugins étaient marqués comme compatibles
 mi juin, ils étaient 314
 en ce 4 juillet, ils sont 357.

Chapeau la communauté !

On nous signale quand même un plugin qui n’est pas encore à jour, bien qu’il soit bien fait et inspirant : Bouquinerie. Combien de temps résistera-t-il encore ?

Témoignage de mise à jour

« J’ai fait la mise à jour de plusieurs sites, de la dernière version de SPIP 4.0 vers SPIP 4.1 à jour, sans aucun problème. Cool, hein ?! En me creusant la tête, je me souviens que pour la mise à jour des plugins, ça a du se faire en plusieurs étapes, avec des pichenettes manuelles (notamment j’ai mis à jour la constante de compatibilité, qui était encore 3.2). Sinon, rien à signaler. Comme SPIP 4.0 c’est vieux et plus maintenu maintenant, c’est vraiment pas une gloire que d’avoir réussi si tardivement cette migration… mais tout de même, c’est cool, et je remercie SPIP ! »

Personnalisation des notifications de Formidable (déjà dans la doc)

Formidable, le générateur de formulaire est un plugin incroyablement puissant et agréable à utiliser pour générer des formulaires et mettre fin à l’hégémonie des googleforms et des framaforms ;-)
 Question : Je voudrais insérer des liens actifs dans le courriel envoyé par Formidable, via un champ pré-rempli au chargement.
 Réponse : Il faut créer ton propre squelette notifications/formulaire_XX_email.html pour le formulaire XX en question (XX étant l’identifiant, pas le numéro). Et là tu peux récupérer ton champ caché dans #ENV{valeurs/tonchamp} et construire le squelette du mail avec.

Rôle de <procure> dans le paquet.xml d’un plugin (déjà dans la doc)

 Question : Dans quel cas faut il déclarer une balise <procure> dans le fichier paquet.xml ?
 Réponse : 1) Ça peut servir quand un plugin fournit une bibliothèque dans le dossier « lib »
2) Ça peut aussi servir à un plugin d’indiquer qui supplante un autre (car il a intégré ses fonctionnalités), exemple avec SPIP qui indique qu’il procure les fonctionnalités de l’ancien plugin itérateurs spip/paquet.xml

Faut en parler

 « Côté développements il y a des outils pour la qualité du code : phpstan, phpcbf, rektor. On pourrait en parler en présentant les conséquences de leur usage pour la communauté et l’avenir de SPIP : une montée en qualité et sécurité. Et en présentant chaque outil et comment l’utiliser. »
 « Il y a aussi la vie de la forge avec maintenance et cie. Ça ne se voit pas mais bon… »

Bonnes idées, gogogo !

Réhabillage du forum discuter.spip
Le forum https://discuter.spip.net a été réhabillé. C’est lui qui accueille les discussions, les demandes d’aides et leurs réponses, et qui annonce les petits commits et les grandes nouvelles (et l’inverse aussi). Voici à quoi il ressemble, dans sa version « claire » :

Et voilà

La prochaine lettre de nouvelles de SPIP est prévue début septembre.

D’ici là, passez un heureux été, en vacances ou avec SPIP !

Messages

  • Merci pour ce résumé :)

  • C’était un plaisir de faire ce suivi tout au long du mois... en sachant que quelqu’un d’autre prenait la relève ensuite.
    Par contre le résumé est sévère en ce qui concerne le code, et ne fait que peu écho à tout ce qui a été commité.

Un message, un commentaire ?

Qui êtes-vous ?
Se connecter
Votre message

Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.