[spip-dev] Composer et SPIP sont dans un bateau

Salut les amis,

Pour rappel, alors qu’on ne parle de Composer que depuis un an sur cette liste, et alors que cet outil n’a toujours pas été introduit en tant qu’outil de développement pour celleux qui produisent du code dans le CMS SPIP, ce projet PERD des utilisateurs.
Ceci depuis au moins 6 ans.
Pas besoin de composer pour ça.

Pour certains d’entre nous, c’est un sujet d’inquiétude, pour d’autres, c’est un faux problème. Pour d’autres encore, ce n’est même pas un fait entendable …

Si ça vous inquiète vraiment, parlons-en, cherchons des solutions. Cherchons alors à comprendre pourquoi on perd aujourd’hui des utilisateurs alors que rien n’a vraiment bougé sur le plan technique depuis … allez, disons une dizaine d’années… (et je ne fais aucun sous-entendu ni de reproche)

Ensuite, pour rappel toujours, à propos de la disparation de l’interface graphique d’ajout de plugins : Il n’en a jamais été question.
C’est tout. C’est simple. Personne n’a annoncé que SVP allait disparaître. Personne n’a dit qu’on allait contraindre des utilisateurs ayant peu de compétences informatiques à taper des lignes de commandes. Il est aussi tout à fait abusif de laisser entendre que des membres de la team envisagent d’en faire le système par défaut de tous les utilisateurs de SPIP.

Arrêtons les fantasmes un instant, s’il vous plaît.

On évoque en toute transparence, depuis un an maintenant, que le chantier sera difficile et que ça demande donc de se faire une sorte de roadmap avec des jalons.

On se fixe comme première étape de transformer le bloc de base (le core, ses plugins-dist, son squelettes-dist et l’écran de sécurité) en une liste exhaustive de composants assemblables par composer pour produire EXACTEMENT un SPIP classique. La maquette SpipRemix présentée l’an dernier sur cette liste rempli cet objectif. Pour cette étape, on ne parle pas de la zone, On ne remet pas en question la manière de faire des plugins et des les distribuer. Cela implique le maintien de SVP dans une distribution classique de SPIP, le maintien de spip_loader, celui de files.spip.net, et de plugins.spip.net, le maintien (pour les plugins de la zone, toujours) de l’empaqueteur et des fichiers archivelist.txt, le maintien de salvatore, le maintien de trad.spip.net, le maintien de subversion comme serveur de gestion de version pour la zone… Tout reste. Rien ne bouge. Rassurés ? :slight_smile:

En gros, les changements seront les suivants : pour la distribution SPIP classique, le bloc de base quoi, on n’utilisera plus l’empaqueteur pour faire les zips. Les producteurices de code devront changer quelques habitudes en passant de svn à composer et git. Notons ici qu’on passe de l’usage d’un outil en ligne de commande à un ou deux autres et qu’il existe des interfaces graphiques intégrées à des éditeurs de texte comme PHPStorm, par exemple, mais aussi sublime-text, voir des clients lourds pour windows, mac, etc. Je rappelle qu’on parle ici de personnes qui produisent du code pour le bloc de base de SPIP.

Celleux qui produisent des plugins sur la zone pourront continuer sur la zone, sans git, sans composer, avec svn, les fichiers archivelist.txt, etc. S’ils le désirent, illes pourront essayer (et avec un peu de chance, adopter), composer et git.

Celleux qui activent des plugins depuis l’espace privé sans jamais toucher une ligne de PHP ne verront pas la différence.

Pendant ce temps, les développeurs et développeuses auront enfin le loisir d’utiliser des outils de base “modernes” pour contribuer à SPIP.

Passons cette première étape et pour que tous les chantiers qui s’en suivront ne se bloquent pas les uns les autres, on propose de fournir non pas une distribution de SPIP, mais deux :

  • La classique, c’est celle que tout le monde connait et qui permet de télécharger des plugins et de les activer depuis l’interface privée. Celle qui s’installe avec spip_loader, et tout et tout. Mais qui pourra aussi,alternativement, s’installer et se mettre à jour en ligne de commande pour ceux qui le désirent.
  • Un mini-spip, avec le moins de plugins-dist possible, voire un SPIP nu, sans plugin du tout, pour servir de base à d’autres distributions, à d’autres développements. Mais c’est une autre histoire.

La préoccupation principale semble être SVP. Soit. On vous accueille à bras ouverts pour avancer sur le sujet.
Mais le vrai problème urgent qui vient, c’est qu’il y aura nécessité à changer le fonctionnement de trad.spip.net pour fonctionner avec git et composer. Là, on aura besoin d’aide, de la patience et de la bienveillance de la part de toute la communauté. Répondrez-vous présent ? Mettrez-vous la main à la pâte ?

Amitiés,

J’ai encore une question technique
"Celleux qui activent des plugins depuis l’espace privé sans jamais

toucher une ligne de PHP ne verront pas la différence."

Là je ne comprend pas si le fait qu’un plugin soit géré avec git +
composer empechera qu’il soit distribué par ailleurs avec SVP. Puisque,
à ma connaissance, nous n’avons pas encore de passerelle composer →
SVP.

Je vais faire plusieurs réponses, j’espère que je ne vais embrouiller personne :

Dans le contexte de la “première étape”, c’est comme aujourd’hui :

  • Un plugin développé sur github qui est aussi configuré sur la zone avec une propriété externals + archive_externals.txt se trouve de fait installable via SVP.

  • Si ce même plugin est “composerisé”, il pourra être installé avec composer en ligne de commande.

  • Un plugin géré sur la zone vit sa vie comme aujourd’hui.

La question épineuse, c’est celle des dépendances de ce plugin :

Les <necessite …> les <utilise …> du fichier paquet.xml seront toujours valide avec SVP tel qu’il est aujourd’hui, disons SVP 1.x, pour peu, bien sur, que les plugins nécessités soit sur plugins.spip.net. Je ne m’avance pas sur ce que SVP deviendra, c’est l’objet du chantier qu’on pourra appeler “SVP Composer compatible” ou “SVP 2.0”.

Un plugin “composerisé” avec des dépendances issues de l’écosystème PHP gérées par composer ne sera opérationnel que dans un contexte ou il sera installé en ligne de commande (toujours dans le contexte de la première étape), il sera inutile de le pousser dans SVP 1.x.

Un plugin qui embarque des dépendances dans un sous-répertoire (vendor/ à coté de paquet.xml+composer.json) sur la zone ou ou sur github, ça devient imprédictible si on veut qu’il soit installable avec les 2 méthodes. Ça marchera surement pour SVP 1.x et probablement pas en ligne de commande. Je comprends les gens qui font comme ça, mais franchement, ça devra être les premiers trucs à faire corriger aux mainteneurs de ce genre de plugins; ils auront certainement un choix à faire, hélas. Heureusement, ils ne sont pas très nombreux. :slight_smile:

Le chantier “SVP Composer compatible” devra tenir compte de plusieurs problèmes techniques et de sécurité qui sont en partie déjà identifiés. J’hésite à entrer dans les détails, parce que je ne veux perdre personne (:D) avec de la technique, mais pourtant il va bien falloir s’y mettre. Y a rien de magique et tant qu’il n’y aura qu’un trop petit nombre de producteurices de code au sein de la communauté, qui expérimentent composer, se sera très compliqué et très lent. La première étape aidera peut-être à dédramatiser l’outil.

À titre personnel, ça ne me choque pas particulièrement de faire coexister les 2 modes avec les risques d’incompatibilité que cela entraine pour un certain temps. Ces risques d’incompatibilités seront du fait et de la responsabilité d’un tout petit nombre de plugins facile à identifier. Mais pour que ce temps de cohabitation soit le plus court possible, on devra paralléliser des chantiers, SVP 2.0 étant celui qui sera, malgré tout, le plus long je pense.

Amitiés

Maïeul

Amitiés,

Hello,

Dans le contexte de la “première étape”, c’est comme aujourd’hui :

  • Un plugin développé sur github qui est aussi configuré sur la zone avec une propriété externals + archive_externals.txt se trouve de fait installable via SVP.

Oui mais pour Plugins SPIP ça pose quelques problèmes actuellement pour certains liens du plugin. Si on veut les multiplier il faudra résoudre aussi ce problème.

  • Si ce même plugin est “composerisé”, il pourra être installé avec composer en ligne de commande.
  • Un plugin géré sur la zone vit sa vie comme aujourd’hui.

La question épineuse, c’est celle des dépendances de ce plugin :

Les <necessite …> les <utilise …> du fichier paquet.xml seront toujours valide avec SVP tel qu’il est aujourd’hui, disons SVP 1.x, pour peu, bien sur, que les plugins nécessités soit sur plugins.spip.net. Je ne m’avance pas sur ce que SVP deviendra, c’est l’objet du chantier qu’on pourra appeler “SVP Composer compatible” ou “SVP 2.0”.

Un plugin “composerisé” avec des dépendances issues de l’écosystème PHP gérées par composer ne sera opérationnel que dans un contexte ou il sera installé en ligne de commande (toujours dans le contexte de la première étape), il sera inutile de le pousser dans SVP 1.x.

Oui mais si c’est le cas on n’aura plus la possibilité de référencer sur Plugins SPIP.
SVP et Smart-paquets sert au zips et à l’installation mais aussi à Plugins SPIP qui à mon avis est très utile dans la galaxie SPIP actuellement.

Un plugin qui embarque des dépendances dans un sous-répertoire (vendor/ à coté de paquet.xml+composer.json) sur la zone ou ou sur github, ça devient imprédictible si on veut qu’il soit installable avec les 2 méthodes. Ça marchera surement pour SVP 1.x et probablement pas en ligne de commande. Je comprends les gens qui font comme ça, mais franchement, ça devra être les premiers trucs à faire corriger aux mainteneurs de ce genre de plugins; ils auront certainement un choix à faire, hélas. Heureusement, ils ne sont pas très nombreux. :slight_smile:

Ils sont peu nombreux.
Il faudra décider oui.
Le souci c’est que ce ne sont pas des plugins dist. Enfin YAML pourrait l’être d’ailleurs…

Le chantier “SVP Composer compatible” devra tenir compte de plusieurs problèmes techniques et de sécurité qui sont en partie déjà identifiés. J’hésite à entrer dans les détails, parce que je ne veux perdre personne (:D) avec de la technique, mais pourtant il va bien falloir s’y mettre. Y a rien de magique et tant qu’il n’y aura qu’un trop petit nombre de producteurices de code au sein de la communauté, qui expérimentent composer, se sera très compliqué et très lent. La première étape aidera peut-être à dédramatiser l’outil.

Je ne comprends ce que tu veux dire.
Pourquoi faut -il beaucoup de plugins sous Composer pour traiter le sujet ?

À titre personnel, ça ne me choque pas particulièrement de faire coexister les 2 modes avec les risques d’incompatibilité que cela entraine pour un certain temps. Ces risques d’incompatibilités seront du fait et de la responsabilité d’un tout petit nombre de plugins facile à identifier. Mais pour que ce temps de cohabitation soit le plus court possible, on devra paralléliser des chantiers, SVP 2.0 étant celui qui sera, malgré tout, le plus long je pense.

C’est quoi dure pas longtemps dans SPIP ?

Hello,

Salut les amis,

Pour rappel, alors qu’on ne parle de Composer que depuis un an sur cette liste, et alors que cet outil n’a toujours pas été introduit en tant qu’outil de développement pour celleux qui produisent du code dans le CMS SPIP, ce projet PERD des utilisateurs.
Ceci depuis au moins 6 ans.
Pas besoin de composer pour ça.

Oui mais là on est dans le raccourci.
Il faut distinguer les profils d’utilisateurs : les développeurs, les intégrateurs (qui sont quand même la cible principale actuellement de SPIP), les rédacteurs d’articles qui ne font que naviguer dans l’espace privé en ne sachant rien de SPIP ou presque et les créatrices de site pour le plaisir ou pour une association, qui ne connaissent rien à l’informatique mais qui veulent écrire des articles avec des potes et les afficher d’un façon “moderne” en choisissant le layout et les couleurs simplement. Ces derniers je les connaissaient très bien car c’étaient les utilisateurs privilégiés de Sarka-SPIP…
Il y a surement d’autres profils mais en se limitant à ceux-là savons nous qui on perd ?
Si j’extrapole ce que tu n’as pas dit :wink: je dirais des devs puisque Composer ne s’adresse qu’à eux.
Moi je ne suis pas sur.

Et surtout je ne suis pas sur que la réponse Composer soit adaptée aux autres profils que les devs.
Alors oui on aura surement marqué un point important dans l’intégration vers un écosystème PHP moderne et plus attractif actuellement mais ça ne changera rien pour les rédacteurs et autres créateurs amateurs.
Si je fais le parallèle avec mon expérience professionnelle, les systèmes métro, ont se fait hyper chier à rénover les systèmes d’automatismes et de sécurité avec les problématiques que tu peux imaginer. Et bien que vois les gens ? La couleur et le design du nouveau train ou le nouveau carrelage de la station.
Je pense que l’ergonomie du privé et l’accès à des squelettes facilement paramétrables (noisettes, layout, thèmes roller…) sont des chantiers bien plus attractifs pour certains profils d’utilisateurs. Et nous avons tous les moyens pour ça avec ZCore, N-Core, le noiZetier, les squelettes Z… C’est tellement plus visible de l’extérieur.

Mais ça ne veut pas dire que le pas Composer ne doit pas être fait.
Au contraire tout pas DOIT être fait car à minima ça anime la communauté et lui évite de rester dans une léthargie néfaste.
Donc j’y suis favorable mais pas pour les raisons que tu invoques mais il ne faut pas s’arrêter là dans les grands chantiers.

Pour certains d’entre nous, c’est un sujet d’inquiétude, pour d’autres, c’est un faux problème. Pour d’autres encore, ce n’est même pas un fait entendable …

Oui c’est inquiétant et surtout pas mérité vu la qualité du logiciel.

Si ça vous inquiète vraiment, parlons-en, cherchons des solutions. Cherchons alors à comprendre pourquoi on perd aujourd’hui des utilisateurs alors que rien n’a vraiment bougé sur le plan technique depuis … allez, disons une dizaine d’années… (et je ne fais aucun sous-entendu ni de reproche)

Voir plus haut.

Ensuite, pour rappel toujours, à propos de la disparation de l’interface graphique d’ajout de plugins : Il n’en a jamais été question.
C’est tout. C’est simple. Personne n’a annoncé que SVP allait disparaître. Personne n’a dit qu’on allait contraindre des utilisateurs ayant peu de compétences informatiques à taper des lignes de commandes. Il est aussi tout à fait abusif de laisser entendre que des membres de la team envisagent d’en faire le système par défaut de tous les utilisateurs de SPIP.

Arrêtons les fantasmes un instant, s’il vous plaît.

Je ne crois pas que ce soit un fantasme mais plus une incompréhension.
Et aussi la connaissance de l’histoire plus si minuscule que ça de SPIP qui montre que les changements sont… lents.

On évoque en toute transparence, depuis un an maintenant, que le chantier sera difficile et que ça demande donc de se faire une sorte de roadmap avec des jalons.

On se fixe comme première étape de transformer le bloc de base (le core, ses plugins-dist, son squelettes-dist et l’écran de sécurité) en une liste exhaustive de composants assemblables par composer pour produire EXACTEMENT un SPIP classique. La maquette SpipRemix présentée l’an dernier sur cette liste rempli cet objectif. Pour cette étape, on ne parle pas de la zone, On ne remet pas en question la manière de faire des plugins et des les distribuer. Cela implique le maintien de SVP dans une distribution classique de SPIP, le maintien de spip_loader, celui de files.spip.net, et de plugins.spip.net, le maintien (pour les plugins de la zone, toujours) de l’empaqueteur et des fichiers archivelist.txt, le maintien de salvatore, le maintien de trad.spip.net, le maintien de subversion comme serveur de gestion de version pour la zone… Tout reste. Rien ne bouge. Rassurés ? :slight_smile:

Oui sauf pour Plugins SPIP.
Les plugins de la dist n’y seront plus sauf à faire un truc spécial pour les réintégrer.
Tu me diras vu qu’ils ont presque pas de documentation…
Si on est d’accord d’accepter ça un temps pourquoi pas.

  • Un mini-spip, avec le moins de plugins-dist possible, voire un SPIP nu, sans plugin du tout, pour servir de base à d’autres distributions, à d’autres développements. Mais c’est une autre histoire.

Ca sert à quoi surtout si on a deux sources de plugins ?
Là je trouve que c’est une source de confusion.

La préoccupation principale semble être SVP. Soit. On vous accueille à bras ouverts pour avancer sur le sujet.
Mais le vrai problème urgent qui vient, c’est qu’il y aura nécessité à changer le fonctionnement de trad.spip.net pour fonctionner avec git et composer. Là, on aura besoin d’aide, de la patience et de la bienveillance de la part de toute la communauté. Répondrez-vous présent ? Mettrez-vous la main à la pâte ?

Ok.
Faut juste nous y embarquer avec douceur car on est pas tous rompus au sujet.
Et ce qui serait bien c’est aussi d’embarquer un groupe vers les autres sujets que j’ai mentionné.
Sinon, on ne fera de SPIP qu’une plateforme technique, c’est toujours ma crainte depuis le début de cette proposition.

Oui mais si c'est le cas on n'aura plus la possibilité de référencer sur Plugins SPIP.
SVP et Smart-paquets sert au zips et à l'installation mais aussi à Plugins SPIP qui à mon avis est très utile dans la galaxie SPIP actuellement.

[ Question un peu hors-sujet (?), mais puisqu'il y est fait mention... ]

Je n'ai jamais bien compris la différence / le rôle / l'enjeu d'avoir à la fois contrib.spip.net et plugins.spip.net
L'impression que ça me donne, c'est que c'est générateur de flou et de dispersion : s'il n'y avait qu'un "portail plugins", ça aurait le mérite de la clarté, de la simplicité.... Quelle est la raison d'avoir ces différents lieux ?

Hop,

Quelle est la raison d'avoir ces

différents lieux ?

Pour faire court : plugins.spip référence *tous les plugins* qu'il aient une doc ou non, alors que contrib.spip référence les documentations des plugins (mais pas que).

Yop,

Je n’ai jamais bien compris la différence / le rôle / l’enjeu d’avoir à
la fois contrib.spip.net et plugins.spip.net
L’impression que ça me donne, c’est que c’est générateur de flou et de
dispersion : s’il n’y avait qu’un “portail plugins”, ça aurait le mérite
de la clarté, de la simplicité… Quelle est la raison d’avoir ces
différents lieux ?

Houla.
D’abord c’est historique.
SPIP-Contrib existait avant Plugins SPIP et bien avant que l’on parle de plugin.
Donc Contrib n’a jamais été limité aux plugins c’est une des raisons.
Quand SPIP a lancé le plugin, quelques temps, après Arno* a créé le site Plugins SPIP pour y référencer d’une façon standard certains plugins (aucun automatisme).
Quand SVP a été créé on a pu systématiser Plugins SPIP à l’ensemble des plugins.
Je me rappelle qu’à l"époque on a évoqué le rapprochement sachant qu’il est facile de créé un site plugins spip car il est entièrement automatisé mais on a finalement dit non.

Donc voilà.
L’idée aujourd’hui est surtout d’harmoniser la structure de la partie Plugins de Contrib avec celle de Plugins SPIP. Mais pourquoi pas intégrer Plugins SPIP à Contrib, ça reste toujours une possibilité.

Ce serait peut être un gros chantier d'intégrer plugins.spip à contrib (ou l'inverse ?), mais je trouve que ça concentrerait utilement l'annuaire et la doc.

    Pour certains d'entre nous, c'est un sujet d'inquiétude, pour
    d'autres, c'est un faux problème. Pour d'autres encore, ce n'est
    même pas un fait entendable ...

Oui c'est inquiétant et surtout pas mérité vu la qualité du logiciel.

Oui, SPIP c'est bien, c'est bôôôô, et y'a plein de choses que j'apprécie énormément dans le logiciel, mais parfois je me dis aussi que c'est simplement parce que je le connais quasiment par cœur et que je suis très productif avec.

Mais les autres CMS ne nous ont pas attendu pour évoluer en qualité, au niveau fonctionnel et technique. Sans parler des "petits nouveaux" qui montent (Bolt, October...) et qui n'ont pas les pieds entravés dans un historique.

C'est vers eux que se tournent les dévs actuels, qui ont envie de code et d'outils modernes.
Et ce sont bien les dévs qui font avancer les choses, en produisant des plugins, des templates, des pull requests.
Combien de nouvelles personnes accueillies dans la communauté ces derniers mois (allez, années) ?
On a des stats sur le nombre de personnes qui commitent sur le core et sur la zone ? Ça doit se concentrer sur très peu de gens, et que des historiques.

    - Un mini-spip, avec le moins de plugins-dist possible, voire un
    SPIP nu, sans plugin du tout, pour servir de base à d'autres
    distributions, à d'autres développements. Mais c'est une autre histoire.

Ca sert à quoi surtout si on a deux sources de plugins ?
Là je trouve que c'est une source de confusion.

Ça sert à faire avancer les choses dans une "branche" sans toucher à l'existant : tester des trucs, avoir des retours d'expérience, partager des connaissances, et, oserais-je, s'amuser, retrouver un peu de plaisir à coder :slight_smile:

Et ce qui serait bien c'est aussi d'embarquer un groupe vers les autres sujets que j'ai mentionné.
Sinon, on ne fera de SPIP qu'une plateforme technique, c'est toujours ma crainte depuis le début de cette proposition.

Tout le monde ne peut pas tout gérer, tu peux être leader sur ces sujets là (noizettier and co).

Hello,

Oui, SPIP c’est bien, c’est bôôôô, et y’a plein de choses que j’apprécie
énormément dans le logiciel, mais parfois je me dis aussi que c’est
simplement parce que je le connais quasiment par cœur et que je suis
très productif avec.

Mais les autres CMS ne nous ont pas attendu pour évoluer en qualité, au
niveau fonctionnel et technique. Sans parler des “petits nouveaux” qui
montent (Bolt, October…) et qui n’ont pas les pieds entravés dans un
historique.

Oui enfin, le terme entravé me parait excessif.
Je pense qu’on peut encore faire beaucoup de choses mais je veux bien te croire, je ne suis pas un développeur avec SPIP.

C’est vers eux que se tournent les dévs actuels, qui ont envie de code
et d’outils modernes.

Oui soit.
Et donc tu pense que quand on aura Composer l’espace privé ne sera plus une contrainte et deviendra ergonomique, que les squelettes et les thèmes fleuriront de partout et que la documentation sera hyper accessible?
Moi j’ai des doutes.

Et ce sont bien les dévs qui font avancer les choses, en produisant des
plugins, des templates, des pull requests.

C’est quoi avancer ? Pour aller où ?
C’'est l’essence même de mon interrogation.
Je ne suis pas contre Composer bien au contraire, faisons ce pas au plus vite et n’en parlons plus.
Mais que fait-on après pour les utilis

la je suis d'accord , comment faire c'est une autre histoire

mais avoir qu'un source sur les plugins avec la doc associé est fondamentalement un plus

Hello,

Bon je reprend le mail interrompu par une séquence de touches de m… sur gmail.

Oui, SPIP c'est bien, c'est bôôôô, et y'a plein de choses que j'apprécie énormément dans le logiciel, mais parfois je me dis aussi que c'est simplement parce que je le connais quasiment par cœur et que je suis très productif avec.

Mais les autres CMS ne nous ont pas attendu pour évoluer en qualité, au niveau fonctionnel et technique. Sans parler des "petits nouveaux" qui montent (Bolt, October...) et qui n'ont pas les pieds entravés dans un historique.

Oui enfin, le terme entravé me parait excessif.
Je pense qu'on peut encore faire beaucoup de choses mais je veux bien te croire, je ne suis pas un développeur *avec* SPIP.

C'est vers eux que se tournent les dévs actuels, qui ont envie de code et d'outils modernes.

Oui soit.
Et donc tu pense que quand on aura Composer l'espace privé ne sera plus une contrainte et deviendra ergonomique, que les squelettes et les thèmes fleuriront de partout et que la documentation sera hyper accessible?
Moi j'ai des doutes.

Et ce sont bien les dévs qui font avancer les choses, en produisant des plugins, des templates, des pull requests.

C'est quoi avancer ? Pour aller où ?
C''est l'essence même de mon interrogation.
Je ne suis pas contre Composer bien au contraire, faisons ce pas au plus vite et n'en parlons plus.
Mais que fait-on après pour les utilisateurs qui eux cherchent de la fonctionnalité pas de la technologie ?
Pour ceux qui cherchent de la doc ?

Et ce qui serait bien c'est aussi d'embarquer un groupe vers les autres sujets que j'ai mentionné.
Sinon, on ne fera de SPIP qu'une plateforme technique, c'est toujours ma crainte depuis le début de cette proposition.

Tout le monde ne peut pas tout gérer, tu peux être leader sur ces sujets là (noizettier and co).

Ben voilà on y est.
Mais non c’est ça qui ne va pas.
Je ne veux pas y aller tout seul.
On a besoin de tous pour ces chantiers importants et c’est ça qui est chouette et motivant.
Bien sur qu’on ne peut pas s’occuper de tout mais on peut s’intéresser et parfois même apporter son expertise quand d’autres en manquent.
Jamais je n’aurais pu développer N-Core et le noisetier sans Charles, Matthieu, Rasta ou Joseph et aujourd’hui je suis bloqué sur des sujets de css ou d’autres pour un nouveau squelette générique pour remplacer Sarka et je sais que ça n’intéresse personne.

Pour moi SPIP c’est bosser ensemble sur un truc chouette, tout le contraire de Github…

le soucis c'est qu'on a pas un endroit ou sont répertoriés des groupes de travail, des chantiers, des choses a faire

et si on voudrais s'investir un peu plus en fonction des compétences que l'on possède du temps qu'on peu y consacré

il est difficile de s'y retrouver pour pouvoir ne serais ce que mettre un petit cailloux ou un grain de sable dans le ciment de SPIP

Je suis vraiment désolé, j'ai un email en préparation sur ça depuis 3
semaines (depuis la formation Composer) et un article en en brouillon
sur spip.net depuis l'année dernière…

J'essaye de vraiment finir ça d'ici demain soir…

C'est là, me semble t il, l'intérêt potentiel que je vois au passage à Composer :
pouvoir plus facilement utiliser des librairies extérieures,
pour l'espace privé, pour les squelettes, pour les thèmes comme tu l'évoques,
mais surtout, j'imagine, pour les briques fonctionnelles :
job queue, cache, notifications et envois de mails, etc etc

D'une certaine manière, composer sera aux briques fonctionnelles
ce que Z est aux noisettes.

Est-ce que je me trompe où c'est là le principal intérêt de passer à Composer ?

Mais ça veut dire modulariser chaque fonctionnalité de SPIP,
ce qui n'est pas rien, au vu de ce qui a déjà été fait (dans les plugins-dist).

JLuc

Plus que d'attirer de nouveaux devs,
qui baignent déjà dans un jaillissement mondialisé et permanent de code,
ce serait surtout pour retenir certains des devs actuels de SPIP,
qui brûlent de jouer avec tout ce dont disposent les copains à côté,
et que Composer rendrait - potentiellement - accessible.

N'est ce pas ?

JL

Je vais éviter de répondre quatre fois en créant autant de branches dans
le fil, et essayer de regrouper des réponses à Matthieu, James, Eric…

Et de temps à y consacrer

Ça c'est pas propre à l'interface pour composer mais à n'importe quel
gros chantier (refonte admin, refonte spip.net et docs, etc). On sait
bien qu'on n'en a pas des masses quelque soit le sujet (alors plusieurs
sujets à la fois…).

Des plugins ou tous les plugins ?

Potentiellement tous puisque la majorité ont des dépendances, et pareil
pour les squelettes partagés (tous dépendent de nombreux plugins) et
parfois même pour les thèmes (scss, bootstrap ou autre). Donc si un
plugin nécessité est fait en Composer afin de lui-même nécessiter une
lib (yaml, etc), et bien tous les plugins et squelettes qui en dépendent
devront pouvoir trouver et installer ces dépendances en même temps par
l'interface aussi. Donc oui, très probablement tous les plugins.

Il n'y a donc pas de demi-mesure possible. Et je vois mal comment il
pourrait y avoir de transition avec les deux systèmes à la fois.

Scénario (très) crédible :
- Touti développe un plugin avec Composer qui nécessite une lib, ce
n'est donc installable que par Composer
- Charles développe un squelette générique, totalement destiné aux
end-users donc, qui doivent pouvoir le choisir dans leur site, et ce
squelette nécessite le plugin de Touti (et 15 autres dont plusieurs
peuvent être en Composer)
- Jean-Michel Admin a lu la doc du super squelette configurable de
Charles et le trouve génial, il décide donc de l'installer sur son site
(sur lequel il n'a pas la main techniquement, ou bien il a un mutu sans
accès à l'extérieur). Jean-Michel DOIT pouvoir trouver et installer le
squelette ET tous les plugins dont il dépend (et toutes les libs vendor/
dont eux-mêmes dépendent).

Si tu veux donc "profiter de Composer" pour ton petit plaisir personnel
de dev ok, c'est compréhensible, mais donc faut bien être conscient que
ça ne sera utilisable QUE par les prestataires de service.

Tout est hypothétique… même le fait de perdre N% des utilisateurices… qui seraient déjà partis de toutes façon pour plein d’autres bonnes raisons…

Totalement en désaccord pour ce point. Et là ça rejoint des réponses à
d'autres plus loin dans la discussion.

James a écrit :

Si ça vous inquiète vraiment, parlons-en, cherchons des solutions. Cherchons alors à comprendre pourquoi on perd aujourd'hui des utilisateurs alors que rien n'a vraiment bougé sur le plan technique depuis ... allez, disons une dizaine d'années... (et je ne fais aucun sous-entendu ni de reproche)

Utilisateurices tout court ça ne veut rien dire, et j'ai bien fait des
distinctions précédemment.

Les gens qui sont des utilisateurices au sens "utilisateurices d'un
framework", bah s'illes veulent vraiment un framework, illes vont
utiliser ce qui est réellement conçu pour ça (laravel, symfony etc).

Je ne crois absolument pas qu'on va amener des gens à SPIP parce qu'on
se mettrait à faire du Composer. Allez pour être gentil, une ou deux
personnes à la marge.

Pour les utilisateurices au sens "intégrateurices, du dimanche, ou pro,
mais pas énorme" : il n'y a RIEN d'hypothétique, là on a eu noir sur
blanc des réactions sur le blog, les réseaux sociaux, etc, que si pas
d'interface, on les perdait. Alors je n'en sais rien de la quantité,
d'où le N%, mais dans un cas on est sûr de perdre des gens, et dans
l'autre ya aucune sorte d'indice qui laisserait penser qu'on en
gagnerait *pour cette raison*.

Pour les utilisateurices au sens "end-users de l'interface, admins,
rédacs", là encore moins. S'illes ne peuvent plus installer Accès
Restreint ou Formidable sans faire appel à un⋅e tech.

La raison principale pour laquelle on va passer en Composer (pour moi
c'est acté), c'est pour que les gens *déjà actifs* puissent utiliser des
projets tierces, afin d'arrêter de tout maintenir nous-mêmes,
d'économiser nos forces, et nous concentrer sur ce qu'on veut vraiment
apporter et améliorer dans SPIP.

Cela touchera donc les end-users, mais de manière indirecte, en ayant un
peu plus de temps et d'esprit libre pour des choses plus importantes que
les morceaux que d'autres ont codé mieux que nous ailleurs (et mieux
maintenus).

Je suis pour ma part totalement d'accord avec Éric, ce qui fait qu'on
perd des gens, c'est surtout que ça n'a pas bougé depuis 10 ans au
niveau ergonomique, et pour certaines fonctionnalités majeures qui sont
maintenant partout ailleurs (constructions par blocs, vrai
multi-domaines, etc). Et ce point pour le coup vaut d'abord pour les
end-users mais AUSSI pour les devs et intés : c'est parce qu'un logiciel
est assez utilisé, aimé, plébiscité, et ça encore mieux dans plusieurs
domaines différents (assos, militants, collectivités, musées, médias,
etc) que du coup il y a des dévs et intés qui vont vouloir/devoir
travailler avec, puis dessus.

Attention je ne confonds pas : oui quand on part de zéro, de la base, on
peut faire un truc avant tout destiné aux devs, qui font ensuite décider
de l'utiliser pour les fondations d'un truc plus gros qui sera pour des
end-users. Mais là on parle de SPIP. D'un CMS "produit final" pour les
gens qui écrivent et publient. C'est donc avant tout ce public là qu'il
faut aider et chérir pour espérer augmenter les dévs.

Passons cette première étape et pour que tous les chantiers qui s'en suivront ne se bloquent pas les uns les autres, on propose de fournir non pas une distribution de SPIP, mais deux :

C'est une expérience de pensée intéressante :), mais au niveau concret,
ça aboutit à une balkanisation des plugins puisque de fait le principal
but est dans la phrase juste avant :

Pendant ce temps, les développeurs et développeuses auront enfin le loisir d’utiliser des outils de base "modernes" pour contribuer à SPIP.

Et que donc dès qu'un plugin nécessitera un projet tiers de l'écosystème
PHP, il ne pourra s'installer qu'avec Composer, et que donc sans
interface dès le début de prévu… bah impossible d'avoir une seule
communauté unie. Cf le détail plus haut dans la réponse à Matthieu dès
qu'il y a des dépendances (y compris dans un squelettes donc).

La préoccupation principale semble être SVP. Soit. On vous accueille à bras ouverts pour avancer sur le sujet.

Oui, c'est bien tout l'objet de la discussion (pour moi). Je ne
m'inquiète absolument pas du noyau, de la dist.

Et donc c'est contradictoire avec :

Personne n'a annoncé que SVP allait disparaître. Arrêtons les fantasmes un instant, s'il vous plaît.

C'est bien dit pour rassurer, mais concrètement… non, on n'a pour
l'instant pas de solution sous la main pour trouver et installer les
plugins (je parle bien uniquement des plugins) qui de plus en plus vont
se mettre à nécessiter des projets tiers (donc plus installables par
SVP). Cf encore le scénario très basique et commun décrit plus haut. Et
tu le dis de toute façon toi-même dans le mail suivant.

Et comme dit plus haut, je ne vois pas comment ça pourrait cohabiter.

Mais le vrai problème urgent qui vient, c'est qu'il y aura nécessité à changer le fonctionnement de trad.spip.net pour fonctionner avec git et composer

Oui, et ça on en a besoin dès le core…

Je n'en sais rien de l'ampleur (jamais regardé le code de trad.spip et
salvatore), mais si de toute façon il faut recoder des choses, je me
demande tout haut si on ne devrait pas aller vers du format standard
côté trad, quand bien même ensuite un script retransformerait tout en
format SPIP machin_fr.php (qui sont surchargeables, fusionnables etc).

Ça permettrait peut-être de ne plus avoir à maintenir une appli dédiée
trad.spip, avec ses tables, etc. Mais bon je dis ça à l'arrache, si
c'est "juste" que salvatore puisse pusher vers les différents Git,
peut-être que c'est trop différent en temps pour que ça vaille le coup.

Pouet, dodooooo :frowning:

RastaPopoulos a écrit le 25/03/2019 à 01:18 :

Je vais éviter de répondre quatre fois en créant autant de branches dans
le fil, et essayer de regrouper des réponses à Matthieu, James, Eric…

Et de temps à y consacrer

Ça c'est pas propre à l'interface pour composer mais à n'importe quel
gros chantier (refonte admin, refonte spip.net et docs, etc). On sait
bien qu'on n'en a pas des masses quelque soit le sujet (alors plusieurs
sujets à la fois…).

Des plugins ou tous les plugins ?

Potentiellement tous puisque la majorité ont des dépendances, et pareil
pour les squelettes partagés (tous dépendent de nombreux plugins) et
parfois même pour les thèmes (scss, bootstrap ou autre). Donc si un
plugin nécessité est fait en Composer afin de lui-même nécessiter une
lib (yaml, etc), et bien tous les plugins et squelettes qui en dépendent
devront pouvoir trouver et installer ces dépendances en même temps par
l'interface aussi. Donc oui, très probablement tous les plugins.

Dans ce cas, pour permettre l'installation des plugins par Composer *et* par SVP, il *suffirait* que le mécanisme qui fait les zip et le xml des dépôts fasse ça pour ce qui se trouve sur la Zone actuelle (+ externals) *et* construise aussi les zip de ce qui serait géré par composer.
Comme SVP n'a besoin que de depots.xml + .zip déclarés dedans, ça marcherait pour les utilisateurs finaux de manière totalement transparente pour eux.

Et bien… pas du tout, car :

1) Notre but c'est avant tout de ne PLUS générer de ZIP (c'est le plus
chiant à faire avec le calcul des dépendances) et de le déléguer à
l'outil où on sera. Donc là on va continuer à le faire pour les anciens
plugins pendant un moment, mais ce n'est pas à garder, le but c'est
vraiment de ne plus avoir à le faire à la fin.

2) Mais surtout de toute façon, les plugins faits en Composer qui vont
utiliser des projets tiers attendent donc les projets tiers dans le
dossier vendor/ (par défaut) qui serait à la racine de l'installation.
Et si un plugin nécessite 4 projets tiers par exemple, ces 4 projets
doivent être dans vendor/ donc. Tu crois vraiment qu'on va zipper ça ?
Et ça doit pas être dans plugins/leplugin/vendor/ hein, mais bien dans
/vendor *commun* à la racine (comme /lib). Et ça doit être partagé, si
un autre plugin nécessite un même projet tiers, ça DOIT être mutualisé,
c'est pas chaque plugin qui doit avoir la même lib en interne.
On ne doit pas avoir
/plugins/plugin1/vendor/yamltruc
/plugins/plugin2/vendor/yamltruc
Mais bien
/vendor/yamltruc

Et ça en étant sûr et certain qu'il n'y a pas de conflit entre les
projets, que toute les versions sont bonnes suivant les dépendances de
chacun. C'est justement le but principal de Composer, le cœur de son boulot.

Bref non, ce n'est pas du tout comme ça que ça pourrait fonctionner.

Quand j'ai lu ce mail, les bras m'en sont tombés.

Au milieu de toute ta littérature, tu glisses des contre vérités et tu prêtes à certains des intentions qu'ils n'ont pas.
Calomnie et désinformation.

Non seulement tu instilles le doute chez ceux qui s'intéressent au sujet, alors que James avait été très clair, mais surtout, tu démotives totalement ceux qui le portent.

Je n'ai pas l'énergie pour citer/répondre point par point parce que tout ça finit par me fatiguer.