oui tout a fait. Finissons en avec ces bornes à 4.y pour préferer 4.*.
Ca nous forcera ainsi à renforcer la logique semver qu’on a globalement adopté ces derniers temps, à mieux séparer ce qui relève de la tambouille interne de ce qui relève des interfaces, bref à être plus propre.
sur ce point les quelques cas que j’ai eu a traité concernait :
des constantes publiques qui sont devenus des choses dans des classes (pour tout ce qui est parsing) ; mon avis c’est que c’est lié à la fois à une meclarté en amont de qui releve de l’interface ou pas et à un changelog public pas assez précis
des changements dans les plugins-dist, notamment l’archiviste, mais là encore une logique semver pour les plugins dist + une dependance à la version de plugin-dist plutot qu’à SPIP lui même devrait résoudre ce problème.
Alors, en fait il faut tout de même faire attention, c’est qu’on a codé pour PHP 8.1+ dans SPIP 5.0-dev, et certains reports ça risque d’être aussi un peu de boulot quand même dans une 4.3 toujours compatible PHP 7.4
Une nouvelle règle « par principe » de déclarer les plugins compat 4.x pour faciliter le travail des dev et éviter que les utilisateurs doivent attendre pour faire les mises à jour, c’est tout aussi mauvais (et même plus selon moi) : ça veut dire que les utilisateurs ils vont mettre à jour et leur site va casser car un ou des plugins ne seront pas compatibles.
Donc en gros on compte sur les utilisateurs pour tester les plugins et faire le sale boulot parce qu’on a eu la flemme de le faire (ou qu’on était trop occupé à troller sur discuter.spip.net au lieu de se remonter les manches).
Maintenant chaque mainteneur peut bien faire comme il préfère, notamment au regard de la complexité du plugin et des apis internes qu’il utilise dans SPIP.
C’est clairement pas le même problème pour un plugin comme NoSpam ou un plugin comme Saisies, donc je vois pas comment une règle « par principe » va marcher bien, et ça me semblerait une très mauvaise idée que quelqu’un passe sur tous les plugins pour mettre à l’aveugle un 4.*.* partout
Je suis d’accord qu’il y a certains plugins plus ou moins complexes. Et saisies est sans doute un des plugins les plus complexe parce qu’il mêle notamment plusieurs niveaux (css/html/PHP).
Cela étant c’est aussi l’un des rares plugins à disposer d’un jeu de tests unitaires conséquents, avce la possibilité de savoir facilement de quelle fonction internes de SPIP on a besoin.
Pour ma part je maintiens que si nous faisons vraiment du semver et si nous avons vraiment des changelog et UPGRADE.md tenu à jour, ce qui est globalement le cas, les cas de rupture potentiel pourraient se detecter plus facilement… et donc nous permettre de focaliser nos tests sur ceux qui valent le coup.
La question de reporter ou pas est indépendante des autres questions. Les éventuels reports vraiment nécessaires de la 5 vers la 4 sont probablement très cernés et le reste c’est du luxe, n’est il pas ?
Où donc as-tu vu parler de « par principe » alors que depuis X messages la question principale (et ce n’est pas une question rhétorique mais une vraie question) est bien : est-ce qu’on est désormais assez semver depuis quelques versions, pour pouvoir affirmer que rien de trop grave sera cassé à chaque nouvelle version ? La question n’est pas du tout la même en 2019 ou avant, et là en 2023.
SI jamais la réponse est positive à partir de la 4.2 (et pour l’infini et au-delà), alors…
Impliquait forcément que SI la réponse est non (pour X raisons, je ne fais absolument aucun jugement là dessus !), alors bien évidemment qu’il ne faut pas mettre de compatibilité X.*, et que faut continuer comme on le fait pour l’instant. Et basta.
Mais c’était évident, si on lit bien les questions en entier et qu’on ne préjuge pas que les autres auraient déjà une certitude sur la réponse à apporter… (ce qui n’est pas le cas)
Ce questionnement ne vaut vraiment que si on considère que récemment (et à l’avenir), le noyau est assez semver pour ne pas occasionner de cassure majeure entre 4.2 et 4.3 (puis 4.4 si ça existe, ou ensuite entre 5.0 et 5.1, 5.2 etc).
Ça existe bien ailleurs, par ex là Drupal Commerce (gros truc complexe pourtant), qui indique nécessiter tout Drupal 9.*
(Parler de troll sur des discussions parfaitement légitimes et rationnelles, c’est un peu la loi de Godwin du codeur non ?)
Ce qui permettrait effectivement de mettre les plugins en X.* supérieur (chose qu’on n’a jamais fait pour l’instant),
c’est qu’on parle d’une règle de principe. Sinon on aurait parlé de "mettre des plugins en X.* "
Donc je répondais à ce que tu as littéralement écris, pardonne moi de ne pas avoir répondu à ce que tu voulais dire même si tu as écris autre chose…
Le 19/12/2023 à 14:07, cerdic via Discuter de SPIP a écrit :
c’est qu’on parle d’une règle de principe. Sinon on aurait parlé de "mettre /des/ plugins en |X.*| "
Si tu parles de ça, on met bien des 4.1.* alors qu’il y a des 4.1.Z qui sortent non ? C’est une règle de principe tacite ? C’est bien qu’on considère depuis toujours que le risque est faible d’avoir une cassure entre 4.1.2, et 4.1.3, etc. La question est donc là-maintenant la même pour de 4.2 à 4.3, 4.4, etc, si jamais on considère qu’en suivant semver par la suite, il n’y aura pas de cassure majeure.
Ça n’a jamais été le cas avant car il y a toujours eu des cassures entre Y et Y+1 du core, mais maintenant est-ce que le choix de suivre plus fortement le versionning standard (ce qui est de plus en plus le cas, ça ne fait que se bonifier sans prétendre être parfait) ferait que dans la plupart des cas (ce qui n’empêche pas d’avoir 1 ou 2 exceptions mais ça inverse le rapport du passé) ça autoriserait à dire que seul le X majeur va vraiment casser, et que donc la plupart des plugins pourraient être compat 4.* (puis 5.* plus tard) ?
Cela nécessitera « de l’abnégation et un peu de motivation » comme on dit, mais ça me semble une meilleure idée que de sortir une 4.2.z compatible PHP8.3 et ainsi de suite tant que SPIP4.2 sera maintenue.