Mise à jour de bin/lint brise le flux de linting pour les plugins non regroupés

Un récent changement sur la branche main de Discourse (https://github.com/discourse/discourse/commit/e84d7c9f26ed) a cassé notre méthode de linting des plugins personnalisés sur lesquels nous travaillons.

Le sujet de la PR/commit était

DEV : Mettre à jour bin/lint pour qu’il fonctionne correctement avec les plugins non bundled

Je me demande donc si nous faisons quelque chose de totalement faux dans notre flux de travail de linting (cc @david).

Comment je fais le linting

La façon dont j’utilisais bin/lint était de l’exécuter depuis la racine de Discourse et de le pointer vers mon plugin dans le répertoire des plugins :

bin/lint --fix plugins/my-custom-plugin

Cela a été cassé par le commit mentionné ci-dessus. pnpm signale une erreur car il est exécuté dans un répertoire de plugin, puis ne parvient plus à trouver les fichiers. Voici un exemple tiré de la sortie d’erreur :

> pnpm was run inside a plugin directory. Re-executing with --ignore-workspace...
NoFilesFoundError: No files matching the pattern "plugins/zlb-community/assets/stylesheets/common/atoms/category-button.scss, plugins/zlb-community/assets/stylesheets/common/atoms/category-icon.scss, plugins/zlb-community/assets/stylesheets/common/atoms/icon-info.scss, plugins/zlb-community/assets/stylesheets/common/atoms/user-pill.scss, plugins/zlb-community/assets/stylesheets/common/base/grid.scss, plugins/zlb-community/assets/stylesheets/common/base/normalize.scss, plugins/zlb-community/assets/stylesheets/common/base/rich-text.scss, plugins/zlb-community/assets/stylesheets/common/base/stack.scss, plugins/zlb-community/assets/stylesheets/common/index.scss, plugins/zlb-community/assets/stylesheets/common/molecules/card.scss, plugins/zlb-community/assets/stylesheets/common/molecules/expander.scss, plugins/zlb-community/assets/stylesheets/common/molecules/header.scss, plugins/zlb-community/assets/stylesheets/common/molecules/user-pill-list.scss, plugins/zlb-community/assets/stylesheets/common/organisms/category-header.scss, plugins/zlb-community/assets/stylesheets/common/templates/lobby.scss, plugins/zlb-community/assets/stylesheets/community-sidebar.scss, plugins/zlb-community/assets/stylesheets/user_home.scss, plugins/zlb-community/assets/stylesheets/common/atoms/badge.scss" were found.
    at standalone (file:///Users/max/code/bitcrowd/zlb/discourse/plugins/zlb-community/node_modules/.pnpm/stylelint@17.5.0_typescript@5.9.3/node_modules/stylelint/lib/standalone.mjs:293:43)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)

Cela fonctionnait parfaitement avant. Comment (sauf si je reviens au commit précédent le changement…) je ne peux faire le linting globalement qu’avec bin/lint depuis la racine. Mais cela prend évidemment beaucoup plus de temps.

Cela devrait-il être fait différemment ?

Merci pour le rapport @klappradla. Cela devrait régler le problème :

Merci !

J’ai essayé la branche de votre correctif. Cela ne fonctionne que partiellement pour moi, car cela s’arrête après template-lint et n’exécute aucune vérification supplémentaire.

Je soupçonne que stylelint s’exécute bien après ember-template-lint, mais la sortie est vide, ce qui n’est pas évident. Je viens de pousser un commit qui ajoute un indicateur de progression simple ainsi qu’un résumé final.

J’ai essayé votre branche mise à jour, mais je pense que le problème se situe ailleurs. L’impression du résumé fonctionne maintenant, ce qui est bien, mais je crois qu’elle ne regarde pas les bons fichiers :joy:.

Si je la compare à 146fb61e104e, elle ne détecte aucun problème de linting que j’insère dans les fichiers .scss ou .js.

J’ai essayé d’ajouter des violations dans des fichiers SCSS et JS lors de mes tests, et cela semblait fonctionner. Pourriez-vous essayer d’exécuter bin/lint --verbose plugins/my-custom-plugin et vérifier si les fichiers sont correctement listés dans la sortie ?

Bonne remarque sur le mode verbeux !

Oui, les chemins d’accès aux fichiers sont corrects et je parviens à obtenir un rapport :tada:. Cependant, il ne fait rien du tout de manière silencieuse lorsque je passe l’option --fix. Avez-vous modifié l’API à cet endroit ?

Oh… :facepalm:

J’ai encore fait un commit. Est-ce que tu pourrais essayer une fois de plus ?

Super ! Ça fonctionne bien pour moi maintenant :tada:

Désolé pour ma réponse tardive — j’étais absent pour des tâches non informatiques.

Super, merci pour ton aide ! J’ai fusionné la PR :rocket: