Update für bin/lint unterbricht den Linting-Workflow für nicht gebündelte Plugins

Eine kürzliche Änderung im main-Branch von Discourse (https://github.com/discourse/discourse/commit/e84d7c9f26ed) hat unsere Vorgehensweise beim Linting unserer benutzerdefinierten Plugins zunichtegemacht.

Der Betreff des PR/Commits lautete:

DEV: Update bin/lint, damit es korrekt für nicht-bundelnde Plugins funktioniert

Daher frage ich mich, ob wir bei unserem Linting-Workflow etwas völlig falsch machen (cc @david).

Wie ich linte

Meine bisherige Nutzung von bin/lint bestand darin, es vom Discourse-Root auszuführen und dabei auf mein Plugin im Plugin-Verzeichnis zu verweisen:

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

Dies ist mit dem oben genannten Commit nicht mehr möglich. pnpm meldet einen Fehler, da es in einem Plugin-Verzeichnis ausgeführt wurde, und kann danach die Dateien nicht mehr finden. Ein Beispiel aus der Fehlerausgabe:

> pnpm wurde in einem Plugin-Verzeichnis ausgeführt. Neuerlicher Start mit --ignore-workspace...
NoFilesFoundError: Keine Dateien, die dem Muster entsprechen, wurden gefunden: "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"
    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)

Früher hat es einwandfrei funktioniert. Wie kann ich nun linten (es sei denn, ich gehe zum Commit vor der Änderung zurück…)? Ich kann nur noch global mit bin/lint im Root linten. Das dauert jedoch offensichtlich viel länger.

Sollte dies anders gehandhabt werden?

Danke für den Bericht @klappradla. Das sollte es beheben:

Danke!

Ich habe den Branch mit deiner Korrektur ausprobiert. Bei mir funktioniert er jedoch nur teilweise, da er nach template-lint stoppt und keine weiteren Prüfungen mehr durchführt.

Ich vermute, dass stylelint tatsächlich nach ember-template-lint ausgeführt wird, aber die Ausgabe ist leer, sodass es nicht offensichtlich ist. Ich habe gerade einen Commit gepusht, der eine einfache Fortschrittsausgabe und eine abschließende Zusammenfassung hinzufügt.

Ich habe deinen aktualisierten Branch getestet, aber ich glaube, das Problem liegt woanders. Es wird jetzt die Zusammenfassung ausgegeben, was gut ist, aber ich denke, es schaut nicht die richtigen Dateien an :joy:

Wenn ich es mit 146fb61e104e vergleiche, werden keine von mir eingefügten Linting-Verstöße in .scss- oder .js-Dateien erkannt.

Ich habe beim Testen versucht, Verstöße in SCSS- und JS-Dateien hinzuzufügen, und es schien zu funktionieren. Könntest du bitte bin/lint --verbose plugins/my-custom-plugin ausführen und prüfen, ob die Dateien korrekt in der Ausgabe aufgeführt sind?

Guter Punkt bezüglich ‘verbose’!

Ja, die Dateipfade sind in Ordnung, und ich bekomme es dazu, :tada: zu melden. Allerdings passiert beim Übergeben von --fix stillschweigend nichts. Hast du die API dort geändert?

Oh… :facepalm:

Ich habe noch einen Commit gepusht. Würdest du es bitte noch einmal versuchen?

Super! Bei mir funktioniert es jetzt :tada:

Entschuldige die späte Antwort – ich war für nicht-computerbezogene Aufgaben abwesend.

Super – danke für deine Hilfe! Ich habe den PR gemerged :rocket: