@deprecated dans ecrire/

Salut @Stephane_Santon

Serais-tu intéressé au point d’assurer la maintenance et le support dudit plugin ?

J’ajoute que l’autodoc est là aussi : SPIP : Fichier ecrire/inc/chercher_logo.php

Si on « améliore » les mentions @deprecated et @see en utilisant la convention que @marcimat a indiqué, on aura une information plus précise.

A quel endroit ? je ne vois pas d’article en ce sens…
Sinon oui, il y a ou il y a eu des notes de version, mais je ne sais plus trop où.
@erational @marcimat @b_b @JLuc peut être ?

Patience, ça viendra, on a pas encore fini le travail … :slight_smile:

Ok, « à terme » m’avait échappé :slight_smile:

Tickets/PR

Une fois ces PR approuvées et mergées, il restera, en plus de la documentation, à traiter les cas suivants :

@deprecated 3.1.0

Fonctions encore utilisées dans le core et/ou les plugins-dist

fichier fonction commit date commentaire @deprecated de la fonction
ecrire/inc/filtres.php lignes_longues a47259a20f 2013-02-09 « @deprecated Utiliser le style CSS word-wrap:break-word; »
ecrire/inc/filtres.php filtre_icone_dist 5982ecf564 2013-09-03 « @deprecated Utiliser le filtre icone_verticale »
ecrire/inc/distant.php recuperer_page 5d3001212c 2013-02-26 « @deprecated »
ecrire/inc/distant.php recuperer_lapage 5d3001212c 2013-02-26 « @deprecated »
ecrire/inc/distant.php recuperer_entetes 5d3001212c 2013-02-26 « @deprecated »
ecrire/inc/lister_objets.php inc_lister_objets_dist 0ca694d170 2013-02-13 « @deprecated Créer ou utiliser un squelette dans prive/objets/liste/ »
ecrire/inc/utils.php lire_meta 400bc9d61e 2013-02-25 « @deprecated Utiliser '$GLOBALS[‹ meta ›][$nom]oulire_config(‹ nom ›) »
ecrire/base/upgrade.php maj_version 44c3de1d2c 2013-05-30 « @deprecated Utiliser maj_plugin() ou la globale maj pour le core. »
ecrire/base/connect_sql.php table_jointure b3dcf1dca5 2013-03-25 « @deprecated »
ecrire/base/connect_sql.php spip_query 662b48f193 2013-02-25 « @deprecated Pour compatibilité. Utiliser sql_query() ou l’API sql_*. »

Il y a des chantiers plus où moins important. On a peut-être le temps de les traiter avant la sortie de la 4.0

fichier fonction commit date commentaire @deprecated de la fonction
ecrire/public/criteres.php critere_POUR_tableau_dist d0e4b43349 2012-08-07 « @deprecated Utiliser une boucle (DATA){source table,#XX} »

Cf. @deprecated dans ecrire/ - #17 par marcimat

fichier fonction commit date commentaire @deprecated de la fonction
ecrire/public/interfaces.php « public $statut = false; » dddf916787 2012-08-05 « @deprecated Remplacé par $boucle->modificateur[‹ criteres ›][‹ statut ›] »

Cf. @deprecated dans ecrire/ - #17 par marcimat

Fonctions qui ne sont plus utilisées dans le core et/ou les plugins-dist

fichier fonction commit date version commentaire @deprecated de la fonction
ecrire/inc/rubriques.php calcul_branche 1fd225331a 2012-07-12 3.1.0 « * @deprecated/@see calcul_branche_in() »
ecrire/inc/modifier.php modifier_contenu ab6fe4c020 2012-07-13 3.1.0 « * @deprecated »
ecrire/inc/modifier.php revision_objet ab6fe4c020 2012-07-13 3.1.0 « * @deprecated Utiliser objet_modifier(); »
ecrire/inc/notifications.php notifier_publication_article 12de03891f 2013-02-27 3.1.0 « * @deprecated Ne plus utiliser »
ecrire/inc/notifications.php notifier_proposition_article 12de03891f 2013-02-27 3.1.0 « * @deprecated Ne plus utiliser »
ecrire/req/mysql.php spip_query_db 66427ad2e4 2014-10-21 3.1.0 « * @deprecated Utiliser sql_query() ou autres »
ecrire/req/mysql.php spip_get_lock 66427ad2e4 2014-10-21 3.1.0 « * @deprecated Pas d’équivalence actuellement en dehors de MySQL »
ecrire/req/mysql.php spip_release_lock 66427ad2e4 2014-10-21 3.1.0 « * @deprecated Pas d’équivalence actuellement en dehors de MySQL »
ecrire/exec/fond_monobloc.php le fichier f58af01c0e 2013-09-26 3.1.0 « * @deprecated »
ecrire/exec/fond_monobloc.php exec_fond_monobloc_dist f58af01c0e 2013-09-26 3.1.0 "* @deprecated Ne plus utiliser. Migrer vers prive/squelettes/"

On peut a priori les supprimer, mais j’ai plus de doutes…

@deprecated 3.2

Mentions @deprecated apparues dans la branche 3.2

fichier fonction commit date commentaire @deprecated de la fonction
ecrire/inc/autoriser.php auteurs_article 4b6d174d00 2017-02-11 « * @deprecated utiliser auteurs_objets() »
ecrire/inc/cvt_multietapes.php cvtmulti_formulaire_charger b73a49c977 2017-05-05 « * @deprecated : appel direct de cvtmulti_formulaire_charger_etapes par le core »
ecrire/inc/cvt_multietapes.php cvtmulti_formulaire_verifier b73a49c977 2017-05-05 « * @deprecated : appel direct de cvtmulti_formulaire_verifier_etapes par le core »
ecrire/public/criteres.php critere_par_joint 0d8ed5feba 2017-01-31 « * @deprecated »

Je propose qu’on les laisse mais qu’on « améliore » la mention en uilisant la convention que @marcimat a indiqué

@deprecated 4.0

Mentions @deprecated apparues dans la branche de 3.3.0-dev → 4.0

fichier fonction commit date commentaire @deprecated de la fonction
ecrire/inc/chercher_logo.php type_du_logo e11cc93ae7 2019-07-25 « @deprecated MAIS NE PAS SUPPRIMER CAR SERT POUR L’UPGRADE des logos et leur mise en base »
ecrire/inc/exporter_csv.php exporter_csv_ligne b835082a25 2021-02-15 « @deprecated »
ecrire/action/super_cron.php action_super_cron_dist 65f8ba2dc8 2020-09-11 « @deprecated »
ecrire/auth/sha256.inc.php _nano_sha256 319f0f1598 2019-08-14 « * @deprecated »
ecrire/auth/sha256.inc.php sha256 319f0f1598 2019-08-14 « * @deprecated »

Je propose qu’on les laisse mais qu’on « améliore » la mention en uilisant la convention que @marcimat a indiqué

Sauf peut-être pour les fonctions « sha256 ». Elles sont certes dépréciées, mais :

La fonction _nano_sha256, créée dans le cadre de la 2.3.0-dev est supposée être « privée » et n’est plus utlisée dans le core
la fonction sha256 est là pour assurer la compatibilité avec l’extention PHP5 Suhosin. Et SPIP4 n’est plus compatible avec PHP5

à mon avis les deux sont supprimables, mais je préfère avoir un retour d’expert :wink:

Plugin Compresseur

fichier fonction commit date version commentaire @deprecated de la fonction
plugins-dist/compresseur/compresseur_fonctions.php compacte 691d6f96 2012-08-21 1.6.8 « @deprecated Utiliser minifier() »

Là, je ne sais pas quoi faire…

Avis et retours bienvenus !

alors le critère POUR, je serais d’avis de le garder

  1. Il est utilisé à plein d’endroit
  2. Ca syntaxe est moins absconne que l’équivalent en data.

Heu ? tu peux développer sur l’absonse ? Parce que entre

  • (POUR){tableau #LISTE{a,b,c}}>
  • (DATA){source tableau, #LISTE{a,b,c}}

Ça change pas grand chose…

bah dans un cas tu sais que tu va manipuler un tableau, qui est un concept précis. De l’autre tu dois manipuler des data, concept general et en plus anglophone, en disant que ces data sont un tableau. Abscon est peut être un peu fort comme terme, disons, nettement moins intutitif.

Alors… il y a aussi un concept d’apprentissage : tu apprends à faire des « tableaux » avec POUR, et dès que tu veux autre chose (json, ou je ne sais quoi) alors tu dois apprendre DATA. …

Pour moi il n’y a aucune raison d’avoir les 2, quand DATA fait tout mieux :

  • pas limité à des tableaux PHP
  • tu peux utiliser #TRUC directement dedans (et pas #VALEUR{truc}) …

Accessoirement : il est déjà déprécié (le critère critere_POUR_tableau) qui sert à la boucle POUR :stuck_out_tongue:

1 « J'aime »

Accessoirement : il est déjà déprécié (le critère critere_POUR_tableau) qui sert à la boucle POUR

heu oui je sais. Mais il y a des fonctions dépreciées parfois gardée longtemps, genre le support de datas dans saisies :slight_smile:

pour info 607 occurences de la boucle POUR sur la zone (bon après ce serait une simple regepx pour rendre tout cela selon la nouvelle syntaxe)

Oui, au vu de l’usage encore présent, l’idée était bien d’ajouter @deprecated 4.0 par exemple (mais de la laisser fonctionnelle).

Oui, au vu de l’usage encore présent, l’idée était bien d’ajouter @deprecated 4.0 par exemple (mais de la laisser fonctionnelle).

Ah ! autant pour moi, je n’avias pas compris.

Oui, j’avais déjà fait la même remarque. Il faut passer de POUR à DATA car deux écritures pour la même chose n’a pas de sens et est pas vraiment explicable autrement que par le canal historique.
Ce qui serait bien c’est que déprécié 4.0 ne dise pas « reste jusqu’à la fin des temps… ».

De manière très générale, une fonction dépréciée dans une version X.y es supprimée dans la version X+1.0. C’est le cas dans PHP lui-même, par exemple.

Suivant cet exemple, pour SPIP, toute fonction qui est dépréciée en 4.0 ou en 4.1 disparaîtrait en 5.0.

C’est un des principe de SemVer. Une suppression de fonction de portée publique marque un changement MAJEUR de son « API ». Et comme on fait du procédurale, toute fonction PHP est de portée publique… même celle qu’on appelle _quelquechose().

Cependant, on pourrait considérer que SPIP ne suit pas exactement SemVer et que le seul X ne représente pas une version MAJEURE… Après tout, ce n’est qu’une convention. On pourrait considérer que c’est X.Y qui définit une version majeure. C’est un peu ce qu’on fait depuis quelques années.

Ainsi, et c’est ce qu’on espère faire ici (mais ça peut changer, pas de soucis) :

  • toute fonction qui est dépréciée en 3.1 est supprimée en 4.0 (si on y arrive à temps)
  • toute fonction qui est dépréciée en 3.2 serait supprimée en 4.1
  • toute fonction qui est dépréciée en 4.0 serait supprimée en 4.2 (ou 5.0 …)

Ou un mix au cas par cas …

@eric_tonton a mon sens, POUR un un raccourci, plus simple à retenir que DATA source tableau …

mais bon, ca ne me dérange pas plus que cela qu’on décide à terme de l’enlever.

Et du coup je viens de le faire dans formidable à coup de

find . -name "*.html" -type f -exec sed -i "s/(POUR) *{tableau/(DATA){source tableau,/" {} \;

idem pour le core et les plugins-dist (ex ou pas) :slight_smile:

Y a quelques PR à approuver :wink:

Sortir du core oui, mais pas dans le plugin grenier qui risque de devenir un fourre-tout, un plugin LDAP bien nommé et identifié aura plus de chance de trouver des personnes motivées pour reprendre la maintenance et le faire évoluer :slight_smile:

Mais c’est aussi ce qu’on souhaite ne plus forcément faire depuis qu’on a annoncé un nouveau cycle de release :slight_smile:

Sinon, +1 pour la méthode de retrait des deprecated, ça mériterait d’être référencé dans un article de bonnes pratiques de dev ça !

1 « J'aime »

J’aii dit grenier en pensant à un plugin « ldap » à metttre dans le dépôt grenier des plugins.

J’avais oublié qu’il existait un plugin « grenier », my bad.