Outils de QA

Hello,

@b_b signalait hier sur irc que phpstan 2.0 est sorti.

Pour info, rector, qui peut être utilisé par certains d’entre nous, dépend encore de la v1.12 de phpstan … et je crains qu’il y ait une incidence dans ce cas.

et l’erreur signalée avec le test de @b_b se corrige de la manière suivante :

# comme on est dans un exec, l'auth a deja ete testee
# on peut appeler directement public.php
-include 'public.php';
+include __DIR__ . '/../public.php';
// flushons si cela ne l'a pas encore ete
ob_end_flush();

Quoiqu’il en soit, c’est un bon moment pour regarder ce qu’on a dans le require-dev de la branche de SPIP5 :

Actuellement :

  • phpcs et les règles spip adaptées
  • phpcompatibility qui s’ajoute à phpcs pour check la compat php du code
  • phpstan 1
  • lolli42/finediff dont j’ai du mal à identifier le rôle
  • phpunit 11
  • ecs
  • var-dumper de symfony

Usages:

  • phpstan sait faire du check de compat PHP et les polyfills de symfony font très bien leur job → je pense qu’on pourrait virer phpcompatibility
  • ecs fait le job aussi de phpcs → je pense qu’on pourrait virer phpcs :slight_smile:
  • il est « relativement » simple d’utiliser phpstan en temps qu’outil externe (docker, dépendance global avec composer, brew.sh sur mac, phive, … voir Getting Started | PHPStan). → Il me semble qu’on pourrait très bien le retirer des dépendances de dev de spip tout en conservant sa config et la baseline actuelle dans git

Des avis ? des retours d’expérience ?

1 « J'aime »
  • Si ECS convient (même principe de config que Rector), oui, je pense qu’on peut enlever phpcs
1 « J'aime »

Perso je m’en fiche un peu du moment qu’il y ait un accompagnement pour migrer de phpcs à ecs. Et quid de PHPcbf ?

il est « relativement » simple d’utiliser phpstan en temps qu’outil externe (docker, dépendance global avec composer, brew.sh sur mac, phive, … voir Getting Started | PHPStan). → Il me semble qu’on pourrait très bien le retirer des dépendances de dev de spip tout en conservant sa config et la baseline actuelle dans git

oui je suis d’accord sur ce point

Je crois que c’est très basique :

avant après
vendor/bin/phpcs vendor/bin/ecs
vendor/bin/phpcbf vendor/bin/ecs --fix

pour phpstan, rector, ecs, c’est comme pour composer, il y a une aide contextuelle : vendor/bin/l-outil help , etc.

Ah si la descripton des règles restent les memes, effectivement ca reste basique. J’ai été trompé par le « phpcs et les règles spip adaptées » dans la première partie du message.

Donc oui go alors si c’est si simple que cela.

test: suppression de phpcs et de ses outils connexes, phpstan 2.0 est à utiliser de manière externe (!6099) · Requêtes de fusion · spip / spip · GitLab :slight_smile:

Done dans spip/spip master.

A voir maintenant, en mode cool/relax, ce qu’on fait pour la milestone 4.4, les plugins-dist :stuck_out_tongue:

Je clos ici du coup.