لكنني متأكد تمامًا أنه عندما أتبع التدقيق النحوي الذي يتم في الإضافة، تفشل اختبارات التدقيق النحوي في إجراء GitHub.
آها!!! يبدو أن pnpm i هو السحر الذي أفتقده. لقد أضفت pnpm i إلى النص البرمجي الخاص بي الذي يقوم بتحديث نواة discourse وتلك التي تقوم بالتدقيق النحوي. . .
لذا إليك ما يفعله النص البرمجي الخاص بي الآن:
if [[ "$ARG" == "eslint" ]]
then
# انظر https://github.com/discourse/.github/blob/main/.github/workflows/discourse-plugin.yml
if [ -f plugin.rb ]
then
echo "التدقيق النحوي للدليل الحالي."
else
echo "ليس على إضافة. استخدام $DEFAULT_PLUGIN"
cd $DEFAULT_PLUGIN
fi
echo "التدقيق النحوي لـ $(pwd)"
#cd /home/pfaffman/src/literatecomputing/discourse-display-email
# pnpm install
echo "القيام بـ `pnpm i`"
pnpm -i
echo -n ESLINT. . .
pnpm eslint --no-error-on-unmatched-pattern {test,assets,admin/assets}/javascripts
exit_code="?"
if [[ $exit_code -ne 0 ]]
then
echo "كان eslint غير سعيد -- $exit_code -- محاولة الإصلاح"
pnpm eslint --fix --no-error-on-unmatched-pattern {test,assets,admin/assets}/javascripts
exit_code="?"
if [[ $exit_code -ne 0 ]]
then
echo "كان eslint لا يزال غير سعيد -- $exit_code -- انتهت اللعبة"
exit
fi
fi
echo انتهى ESLINT.
## styllint
echo -n STYLELINT . . .
pnpm stylelint --allow-empty-input "assets/**/*.scss"
exit_code="?"
if [[ $exit_code -ne 0 ]]
then
echo "stylelint غير سعيد. محاولة الإصلاح . . . "
fi
pnpm stylelint --fix --allow-empty-input "assets/**/*.scss"
pnpm stylelint --allow-empty-input "assets/**/*.scss"
exit_code="?"
if [[ $exit_code -ne 0 ]]
then
echo "stylelint لا يزال غير سعيد. هذا محزن. انتهت اللعبة."
exit
fi
echo "تم!"
## نهاية stylelint
## PRETTIER
echo -n "Prettier . . . "
if [ -n "$(find assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.gjs" -or -name "*.hbs" \) 2>/dev/null)" ]; then
#pnpm prettier --write 'assets/**/*.{scss,js,gjs,es6,hbs}'
# echo "القيام بـ pnpm prettier --write --log-level warn assets/**/*.{scss,js,gjs,hbs}"
pnpm prettier --write --log-level error "assets/**/*.{scss,js,gjs,hbs}"
if [[ $? -ne 0 ]]
then
echo "قام prettier assets بشيء ما!!! -- $?"
sleep 5
fi
fi
if [ -n "$(find admin/assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.gjs" -or -name "*.hbs" \) 2>/dev/null)" ]; then
#pnpm prettier --write 'assets/**/*.{scss,js,gjs,es6,hbs}'
# echo "القيام بـ pnpm prettier --write --log-level warn admin/assets/**/*.{scss,js,gjs,hbs}"
pnpm prettier --write --log-level log "assets/**/*.{scss,js,gjs,es6,hbs}"
if [[ $? -ne 0 ]]
then
echo "قام prettier admin/assets بشيء ما!!! -- $?"
pnpm prettier --check --log-level log "assets/**/*.{scss,js,gjs,es6,hbs}"
fi
fi
if [ -n "$(find test -type f \( -name "*.js" -or -name "*.gjs" \) 2>/dev/null)" ]; then
#pnpm prettier --write 'assets/**/*.{scss,js,gjs,es6,hbs}'
# echo "القيام بـ pnpm prettier --write --log-level warn assets/**/*.{scss,js,gjs,es6,hbs}"
pnpm prettier --write --log-level warn "test/**/*.{js,gjs}"
if [[ $? -ne 0 ]]
then
echo "قام prettier test بشيء ما!!! -- $?"
pnpm prettier --check --loglevel log "test/**/*.{js,gjs}"
fi
fi
echo "تم الانتهاء من prettier"
echo "ember-template-lint"
pnpm ember-template-lint --fix --no-error-on-unmatched-pattern assets/javascripts admin/assets/javascripts
exit_code="?"
if [[ $exit_code -ne 0 ]]
then
echo "تم الانتهاء من ember-template-lint --fix --no-error-on-unmatched-pattern assets/javascripts -- مع $exit_code"
echo sleep 5
sleep 5
fi
#bundle exec stree write Gemfile $(git ls-files '*.rb') $(git ls-files '*.rake') $(git ls-files '*.thor')
bundle exec stree check Gemfile $(git ls-files '*.rb') $(git ls-files '*.rake') $(git ls-files '*.thor')
exit_code="?"
if [[ $exit_code -ne 0 ]]
then
echo "stree غير سعيد. محاولة الإصلاح في ثانيتين . .. "
sleep 2
echo "ها نحن ذا!!!"
bundle exec stree write Gemfile $(git ls-files '*.rb') $(git ls-files '*.rake') $(git ls-files '*.thor')
fi
bundle exec stree check Gemfile $(git ls-files '*.rb') $(git ls-files '*.rake') $(git ls-files '*.thor')
exit_code="?"
if [[ $exit_code -ne 0 ]]
then
echo "stree لا يزال غير سعيد. هذا محزن. الانتظار لجعلك أكثر حزنًا"
sleep 15
fi
echo تم الانتهاء من stree
echo "rubocop!"
bundle exec rubocop -A $(find . -name "*.rb"|grep -v gems)
exit_code="?"
if [[ $exit_code -ne 0 ]]
then
echo "تم الانتهاء من rubocop -- $exit_code"
sleep 15
fi
exit
fi
ولكن لدي أيضًا هذا، والذي أعتقد أنه يعمل تقريبًا بنفس الطريقة:
if [[ "$ARG" == "lint" ]]
then
cd ~/src/discourse-repos/discourse
find plugins/discourse-pfaffmanager/assets -type f \( -name "*.scss" -o -name "*.js" -o -name "*.gjs" -o -name "*.hbs" -o -name "*.rb" \) -exec ./bin/lint --fix {} +
cd -
fi
الفرق الوحيد الآن على ما يبدو هو أن تدقيق النواة النحوي غير سعيد بشأن هذا (وأعتقد أنني أفهم سبب عثور النواة عليه وعدم عثور الإضافة عليه، ولا يوجد أي ضرر في إصلاح تلك الإهمالات في وقت مبكر بدلاً من وقت لاحق):
/home/pfaffman/src/discourse-repos/discourse/plugins/discourse-pfaffmanager/assets/javascripts/discourse/components/modal/really-delete.gjs
2:8 error Use Glimmer components(@glimmer/component) instead of classic components(@ember/component) ember/no-classic-components
✖ 1 problem (1 error, 0 warnings)
وإذا استخدمت bin/lint فلن أضطر للقلق بشأن تغيير شيء ما في التدقيق النحوي يتطلب تحديث نصي المكون من 54 سطرًا. أليس كذلك؟
انتظر. توثيقها أين في مستودعات الهيكل؟
أود الحصول على بعض الإرشادات حول كيفية نشر التغييرات بشكل منهجي، على الرغم من أنني أتفهم أن مجموعتي الصغيرة من الأشياء ليست مشكلتك حقًا. . . هذا لا ينتمي حقًا إلى هنا، لكنني حاولت مرتين فهم mass-pr، ولكن لم أنجح بعد. عادةً ما أقوم بنسخ بعض ملفات .whatever بشكل دوري من سحب حديث للهيكل وآمل أن يسير الأمر على ما يرام.
وهناك 16 من هذه النصوص البرمجية. هل أراقب المستودع ثم أقوم بتشغيله في أي وقت يتم فيه تحديث أي منها؟ ويبدو أن العديد من السمات لا تستنسخ مستودعات الهيكل، لذا تفشل في نسخ الملفات المطلوبة؟
والعديد منها يفشل بشيء مثل sed: can’t read s/default.yml/stree-compat.yml/: No such file or directory ؟ لأنها لا تستنسخ مستودعات الهيكل؟ (سأبدأ موضوعًا في مكان مناسب لذلك عندما أحصل على فرصة).