Обновление bin/lint нарушает процесс линтинга для плагинов без сборки

Недавнее изменение в основной ветке Discourse (https://github.com/discourse/discourse/commit/e84d7c9f26ed) нарушило наш процесс линтинга для кастомных плагинов, над которыми мы работаем.

Тема PR/коммита была следующей:

DEV: Обновить bin/lint для корректной работы с плагинами, не входящими в сборку

Поэтому я задаюсь вопросом, не делаем ли мы что-то совершенно неправильно в нашем рабочем процессе линтинга (cc @david).

Как я выполняю линтинг

Раньше я запускал bin/lint из корневой директории Discourse, указывая путь к моему плагину внутри каталога плагинов:

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

После упомянутого выше коммита это перестало работать. pnpm выдает ошибку о запуске внутри директории плагина и затем не может найти файлы. Пример из вывода ошибки:

> 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)

Раньше всё работало отлично. Как теперь (если только не откатиться к коммиту до этого изменения…) я могу выполнять линтинг только глобально через bin/lint в корне. Но это, очевидно, занимает гораздо больше времени.

Не следует ли делать это иначе?

Спасибо за отчёт @klappradla. Это должно исправить ситуацию:

Спасибо!

Я попробовал ветку с вашим исправлением. Но оно работает только частично: процесс останавливается после template-lint, и дальнейшие проверки не запускаются.

Я подозреваю, что действительно запускается stylelint после ember-template-lint, но вывод пуст, поэтому это неочевидно. Я только что отправил коммит, который добавляет простой вывод прогресса и итоговую сводку.

Я попробовал вашу обновлённую ветку, но, кажется, проблема где-то в другом. Теперь он выводит сводку, это хорошо, но, похоже, он смотрит не на те файлы :joy:

Если сравнить с 146fb61e104e, то он просто не обнаруживает ни одного нарушения линтинга, которое я добавляю в файлы .scss или .js.

Я попробовал добавить нарушения в файлы scss и js во время тестирования, и это, похоже, сработало. Не могли бы вы запустить bin/lint --verbose plugins/my-custom-plugin и проверить, правильно ли файлы отображаются в выводе?

Хорошее замечание насчёт verbose!

Да, пути к файлам в порядке, и мне удалось получить сообщение :tada:. Однако при передаче --fix программа молча ничего не делает. Вы изменили API в этом месте?

Ох… :facepalm:

Я отправил ещё один коммит. Не могли бы вы попробовать ещё раз?

Отлично! У меня теперь всё работает :tada:

Извините за поздний ответ — был занят делами, не связанными с компьютером.

Отлично, спасибо за помощь! Я объединил PR :rocket: