Atualização do bin/lint quebra o fluxo de linting para plugins não empacotados

Uma mudança recente na branch main do Discourse (https://github.com/discourse/discourse/commit/e84d7c9f26ed) quebrou nossa forma de fazer lint nos plugins personalizados que estamos desenvolvendo.

O assunto do PR/commit foi:

DEV: Atualizar bin/lint para funcionar corretamente em plugins não empacotados

Então estou me perguntando se estamos fazendo algo totalmente errado no nosso fluxo de trabalho de lint (cc @david).

Como eu faço o lint

A maneira como eu usava o bin/lint era executá-lo a partir da raiz do Discourse e apontá-lo para o meu plugin dentro do diretório de plugins:

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

Isso quebrou com o commit mencionado acima. O pnpm reporta erro por ter sido executado dentro de um diretório de plugin e, em seguida, não consegue mais encontrar os arquivos. Um exemplo da saída de erro:

> pnpm foi executado dentro de um diretório de plugin. Reexecutando com --ignore-workspace...
NoFilesFoundError: Nenhum arquivo correspondente ao padrão "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" foi encontrado.
    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)

Funcionava perfeitamente antes. Como (a menos que eu volte para o commit anterior à mudança…) só consigo fazer o lint globalmente com bin/lint na raiz. Mas isso obviamente leva muito mais tempo.

Isso deveria ser feito de forma diferente?

Obrigado pelo relatório, @klappradla. Isso deve resolver:

Obrigado!

Testei a branch da sua correção. Ela funciona apenas parcialmente para mim, pois para após o template-lint e não executa as verificações subsequentes.

Suspeito que o stylelint esteja sendo executado após o ember-template-lint, mas a saída está vazia, o que não torna isso óbvio. Acabei de enviar um commit que adiciona uma saída simples de progresso e um resumo final.

Tentei sua branch atualizada, mas acho que o problema está em outro lugar. Agora ele está imprimindo o resumo, o que é ótimo, mas acho que não está analisando os arquivos corretos :joy:

Se eu comparar com 146fb61e104e, ele simplesmente não detecta nenhuma violação de linting que eu insiro em arquivos .scss ou .js.

Tentei adicionar violações em arquivos SCSS e JS durante meus testes, e pareceu funcionar. Você poderia executar bin/lint --verbose plugins/my-custom-plugin e verificar se os arquivos estão listados corretamente na saída?

Bom ponto sobre o verbose!

Sim, os caminhos dos arquivos estão ok e consigo fazê-lo relatar :tada:. No entanto, ele não faz nada silenciosamente quando passo --fix. Você alterou a API ali?

Ah… :facepalm:

Empurrei outro commit. Você se importaria de tentar mais uma vez?

Ótimo! Funciona perfeitamente para mim agora :tada:

Desculpe pela resposta tardia — estive ausente para tarefas fora do computador.

Ótimo - obrigado pela sua ajuda! Eu já fiz o merge do PR :rocket: