تحديث لـ bin/lint يعطل سير عمل الفحص لملحقات غير مجمعة

تغيير حديث في الفرع الرئيسي main الخاص بـ Discourse (https://github.com/discourse/discourse/commit/e84d7c9f26ed) عطل طريقة فحص الأكواد (linting) التي نستخدمها في الإضافات المخصصة التي نعمل عليها.

كان عنوان طلب الدمج/التغيير كما يلي:

DEV: تحديث bin/lint ليعمل بشكل صحيح مع الإضافات غير المدمجة

لذا أتساءل عما إذا كنا نرتكب خطأً جوهريًا في سير عمل فحص الأكواد لدينا (cc @david).

كيف أقوم بفحص الأكواد (Linting)

كانت طريقتي في استخدام bin/lint هي تشغيله من جذر مشروع Discourse وتحديد مسار الإضافة داخل مجلد الإضافات:

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

توقف هذا عن العمل مع التغيير المذكور أعلاه. يظهر pnpm أخطاءً بشأن تشغيله داخل مجلد إضافة، ثم يفشل في العثور على الملفات. وإليك مثالًا من مخرجات الخطأ:

> تم تشغيل pnpm داخل مجلد إضافة. إعادة التنفيذ مع --ignore-workspace...
NoFilesFoundError: لم يتم العثور على أي ملفات تطابق النمط "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)

كان يعمل بشكل مثالي من قبل. كيف يمكنني (ما لم أعود إلى التغيير السابق…) فحص الأكواد فقط بشكل عام باستخدام bin/lint في الجذر؟ لكن هذا بالطبع يستغرق وقتًا أطول بكثير.

هل يجب تنفيذ ذلك بطريقة مختلفة؟

شكرًا على التقرير @klappradla. يجب أن يصحح هذا الأمر:

شكرًا لك!

جربت الفرع الخاص بإصلاحك. لكنه يعمل جزئيًا فقط بالنسبة لي، حيث يتوقف بعد template-lint ولا يقوم بتشغيل أي فحوصات أخرى.

أظن أنه يعمل stylelint بعد ember-template-lint، لكن المخرجات فارغة لذا لا يبدو ذلك واضحًا. لقد دفعت للتو التزامًا يضيف بعض مخرجات التقدم البسيطة، وملخصًا نهائيًا.

لقد جربت الفرع المحدث الخاص بك، لكنني أعتقد أن المشكلة تكمن في مكان آخر. إنه الآن يطبع الملخص، وهذا أمر جيد، لكنني أعتقد أنه لا ينظر إلى الملفات الصحيحة :joy:

إذا قارنته بـ 146fb61e104e، فإنه ببساطة لا يكتشف أي انتهاكات للـ linting أقوم بإدراجها في ملفات .scss أو .js.

لقد جربت إضافة انتهاكات في ملفات scss و js أثناء الاختبار، ويبدو أن الأمر نجح. هل يمكنك تشغيل bin/lint --verbose plugins/my-custom-plugin والتحقق مما إذا كانت الملفات مدرجة بشكل صحيح في المخرجات؟

نقطة جيدة بخصوص التفصيل!

نعم، مسارات الملفات تبدو صحيحة ويمكنني جعلها تُبلغ :tada:. ومع ذلك، لا تفعل شيئًا صامتًا عندما أستخدم --fix. هل قمت بتغيير الواجهة البرمجية هناك؟

أوه… :facepalm:

لقد دفعتُ التزامًا آخر. هل تمانع في المحاولة مرة أخرى؟

رائع! يعمل بشكل جيد لدي الآن :tada:

أتقدم بعتذاري عن التأخر في الرد - كنت منشغلاً بمهام غير متعلقة بالكمبيوتر.

عظيم - شكرًا لمساعدتك! لقد دمجت طلب السحب :rocket: