Rupture sauvage de compat sur `saisies_modifier()`
#216
Closed
opened 9 months ago by cerdic
·
6 comments
No Branch/Tag Specified
constructeur_glisser_deposer
conteneur_inline
explication_simplifier_conteneur
fieldset_simplifier_conteneur
issue24_data_choix_autre
issue99
issue_48
master
no_submit
php8
v1
v2
v3
v1.42.11
v1.42.5
v2.0.0
v2.0.1
v2.0.2
v2.0.3
v2.0.4
v2.0.5
v2.1.0
v2.1.1
v2.1.2
v2.1.3
v2.10.0
v2.11.0
v2.11.1
v2.11.2
v2.12.0
v2.13.0
v2.14.0
v2.14.1
v2.14.2
v2.14.3
v2.14.4
v2.14.5
v2.14.6
v2.14.7
v2.14.8
v2.15.0
v2.15.1
v2.15.2
v2.16.0
v2.16.1
v2.16.2
v2.17.0
v2.17.1
v2.18.0
v2.18.1
v2.18.10
v2.18.11
v2.18.12
v2.18.13
v2.18.14
v2.18.15
v2.18.16
v2.18.17
v2.18.18
v2.18.19
v2.18.2
v2.18.20
v2.18.21
v2.18.22
v2.18.23
v2.18.24
v2.18.3
v2.18.4
v2.18.5
v2.18.6
v2.18.7
v2.18.8
v2.18.9
v2.19.0
v2.19.1
v2.19.2
v2.19.3
v2.19.4
v2.19.5
v2.19.6
v2.19.7
v2.19.8
v2.19.9
v2.2.0
v2.2.1
v2.2.2
v2.2.3
v2.20.0
v2.20.1
v2.21.0
v2.21.1
v2.21.2
v2.21.3
v2.21.4
v2.22.0
v2.23.0
v2.23.1
v2.23.2
v2.23.3
v2.23.4
v2.23.5
v2.23.6
v2.24.0
v2.24.1
v2.24.2
v2.24.3
v2.25.0
v2.25.1
v2.25.2
v2.25.3
v2.25.4
v2.26.0
v2.26.1
v2.26.10
v2.26.2
v2.26.3
v2.26.4
v2.26.5
v2.26.6
v2.26.7
v2.26.8
v2.26.9
v2.27.0
v2.28.0
v2.3.0
v2.3.1
v2.4.0
v2.5.0
v2.5.1
v2.5.10
v2.5.11
v2.5.12
v2.5.13
v2.5.14
v2.5.15
v2.5.16
v2.5.17
v2.5.18
v2.5.19
v2.5.2
v2.5.20
v2.5.21
v2.5.22
v2.5.23
v2.5.24
v2.5.25
v2.5.26
v2.5.27
v2.5.28
v2.5.29
v2.5.3
v2.5.30
v2.5.4
v2.5.5
v2.5.6
v2.5.7
v2.5.8
v2.5.9
v2.6.0
v2.6.1
v2.6.2
v2.6.3
v2.7.0
v2.7.1
v2.7.10
v2.7.11
v2.7.12
v2.7.13
v2.7.14
v2.7.2
v2.7.3
v2.7.4
v2.7.5
v2.7.6
v2.7.7
v2.7.8
v2.7.9
v2.8.0
v2.8.1
v2.9.0
v3.0.0
v3.1.0
v3.10.0
v3.10.1
v3.11.0
v3.11.1
v3.11.2
v3.12.0
v3.12.1
v3.12.2
v3.12.3
v3.12.4
v3.12.5
v3.12.6
v3.12.7
v3.13.0
v3.13.1
v3.13.2
v3.13.3
v3.13.4
v3.14.0
v3.15.0
v3.16.0
v3.16.1
v3.17.0
v3.18.0
v3.18.1
v3.18.10
v3.18.11
v3.18.12
v3.18.13
v3.18.14
v3.18.2
v3.18.3
v3.18.4
v3.18.5
v3.18.6
v3.18.7
v3.18.8
v3.18.9
v3.19.0
v3.19.1
v3.19.2
v3.19.3
v3.19.4
v3.19.5
v3.19.6
v3.2.0
v3.2.1
v3.20.0
v3.21.0
v3.21.1
v3.21.2
v3.21.3
v3.21.4
v3.22.0
v3.22.1
v3.23.0
v3.23.1
v3.23.2
v3.23.3
v3.23.4
v3.24.0
v3.25.0
v3.25.1
v3.26.0
v3.26.1
v3.27.0
v3.27.1
v3.27.2
v3.27.3
v3.27.4
v3.27.5
v3.27.6
v3.27.7
v3.28.0
v3.28.1
v3.28.10
v3.28.11
v3.28.12
v3.28.13
v3.28.14
v3.28.15
v3.28.16
v3.28.2
v3.28.3
v3.28.4
v3.28.5
v3.28.6
v3.28.7
v3.28.8
v3.28.9
v3.29.0
v3.29.1
v3.3.0
v3.3.1
v3.3.2
v3.3.3
v3.3.4
v3.30.0
v3.30.1
v3.30.2
v3.31.0
v3.31.1
v3.31.2
v3.31.3
v3.32.0
v3.36.2
v3.37.0
v3.37.1
v3.38.0
v3.38.2
v3.39.0
v3.4.0
v3.40.0
v3.40.1
v3.41.0
v3.41.3
v3.41.5
v3.41.6
v3.42.0
v3.42.1
v3.42.2
v3.42.5
v3.42.6
v3.42.7
v3.42.8
v3.43.0
v3.43.2
v3.43.3
v3.43.4
v3.43.5
v3.44.0
v3.44.1
v3.45.0
v3.45.1
v3.45.2
v3.46.0
v3.47.0
v3.47.1
v3.47.2
v3.47.3
v3.48.0
v3.48.1
v3.48.2
v3.49.0
v3.49.1
v3.5.0
v3.5.1
v3.50.0
v3.50.1
v3.50.2
v3.51.0
v3.51.1
v3.51.2
v3.51.3
v3.51.4
v3.51.5
v3.51.6
v3.51.7
v3.51.8
v3.52.0
v3.52.1
v3.52.2
v3.53.0
v3.53.1
v3.53.2
v3.53.3
v3.54.0
v3.54.1
v3.54.10
v3.54.2
v3.54.4
v3.54.6
v3.54.7
v3.54.8
v3.54.9
v3.55.0
v3.55.1
v3.55.2
v3.55.3
v3.55.4
v3.56.0
v3.56.1
v3.56.2
v3.56.3
v3.56.4
v3.56.5
v3.6.0
v3.6.1
v3.6.2
v3.6.3
v3.6.4
v3.7.0
v3.7.1
v3.7.2
v3.8.0
v3.8.1
v3.8.10
v3.8.11
v3.8.2
v3.8.3
v3.8.4
v3.8.5
v3.8.6
v3.8.7
v3.8.8
v3.8.9
v3.9.0
v3.9.1
v4.0.2
v4.0.3
v4.0.4
v4.1.0
v4.2.0
v4.2.1
v4.2.3
v4.3.0
v4.3.1
v4.3.2
v4.3.3
v4.3.4
v4.3.5
v4.3.6
v4.4.0
v4.4.1
v4.5.0
v4.5.1
v4.6.0
v4.6.1
v4.7.0
No Label
amélioration
bug
doublon
help wanted
invalide
question
refusé
Milestone
Set milestone
Clear milestone
No items
No Milestone
Assignees
Assign users
Clear assignees
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
This issue currently doesn't have any dependencies.
Reference in new issue
There is no content yet.
Delete Branch '%!s(MISSING)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
C'est une histoire en 2 commits sur la fonction
saisies_modifier()
D'abord le 21 mars 2021, on prend en charge le
nouveau_type_saisie
à la racine au lieu d'être dansoptions
et en signalant que "ça disparaitra" en 4.0ae4a71c896
Et puis bon le 8 mai 2021 on vire le support de compat sur l'ancienne position
e0c6472776
en mentionnant "une compatibilite historique qu'on supprime"
"une compatibilite historique" qui date d'il y a 2 mois c'est quand même fort de café, et bon du coup paf, le code des plugins perso pète tout à fait gratuitement - je ne sais même pas si il y a une quelconque raison technique ou un avantage à déplacer cette option...
C'est pas vraiment ce que j'appelerai un développement smooth pour les utilisateurs...
je vois bien que l'idée c'est d'avoir introduit le support de la nouvelle syntaxe dans la v3 puis de virer l'ancienne syntaxe dans la v4 du plugin, mais franchement tout ça avec un overlap de 2 mois et alors même que la nouvelle syntaxe est apparue en loucedé dans une version existante ça me parait assez léger...
Pour comprendre, je ne me rappelle même plus déjà pourquoi ça a été déplacé à la racine, je ne retrouve pas encore dans les tickets/PR où ça a été discuté.
ah oui ça je sais pas...
Concernant la suppression, elle fait partie de la liste des élagages que j'avais proposés concernant le passage en 4.0 #10
a l'époque, j'avais demandé l'avis des gens concernant toutes ces suppressions en 4.0, et obtenu l'avis positif de Rastapopoulos (via IRC). Et donc c'était annoncé que cela sauterait en 4.0
Quant au choix de ne plus mettre cela dans options : et bien effectivement je ne retrouve plus de traces en tickets. Mais cela avait été discuté via IRC, lorsqu'on réflechissait à la syntaxe concernant les héritages / modification de saisies. L'idée est qu'une information de transformation n'est pas une option de la saisie, mais bien une option de la transformation.
Maintenant, si vous tenez on peut reverter le second commit, mais bon, ne disons pas que les choses n'avaient pas été annoncés.
Je suppose que ce que voulais dire @cerdic c'est qu'un truc annoncé 1) dans un commentaire du code, 2) dans un ticket ou jalon lu juste par les mainteneurs du plugin + 3) avec juste 2 mois entre l'annonce déjà semi-cachée et la suppression finale… bah c'est un peu comme si ça n'avait jamais été annoncé du tout pour les utilisateurs finaux de l'api.
En fait le cas le plus courant, c'est que quand on décide de déprécier une fonctionnalité, c'est le fait d'être pour l'instant seulement dépréciée qui est releasé (et donc annoncé) dans la version suivante N+1. Puis cette déprécation reste un moment. Puis la fonctionnalité est retirée définitivement en N+2. Alors que là on a mis (relativement caché) que c'était déprécié directement dans la version N du moment, puis ça a été supprimé en N+1 (très) peu de temps après. C'est vouloir aller trop vite.
Il faudra qu'on soit plus attentif (je m'inclus bien sûr dedans) à ça pour les prochains nettoyages, déprécations, suppressions.
Sinon, vu que le fallback pour chercher dans l'ancienne manière ne coûte rien, éventuellement ça pourrait être remis… si c'est ce que demande @cerdic (vu que le ticket ne demande rien et parle d'une release d'il y a 7 mois ou plus)
moi j'ai modifié mon code perso pour le refaire marcher mais
Donc t'as aucune chance d'éviter le bug même en étant plein de bonne volonté.
Je pense en effet que le mieux serait de garder le patch de compat, en indiquant dans le code que c'est déprécié, et en générant un log pour donner une chance aux gens de savoir qu'ils font un truc déprécié et que ça va bientôt casser...
Mais aussi il faut que les ruptures de compat (effectives ou prévues) figurent clairement quelque part, surtout sur une brique de base comme saisies sur laquelle plein d'autres plugins reposent...
Même a minima on préfèrerait que l'utilisation de cette ancienne option non supportée génère une
erreur_squelette()
avec un message : au moins c'est clair, tu as une erreur, tu sais quoi corriger.Là c'est juste que silencieusement ça marche plus, et si tu fais pas un examen détaillé de ton interface après migration (et encore si tu as la chance que ce soit dans un bout d'interface directement visible) tu rates totalement le bug