إطلاق .discourse-compatibility: إصدارات مثبتة من الإضافات/السمات لعمليات Discourse الأقدم

رائع، شكرًا لشرح ذلك.

لذا، صببتُ لنفسي :wine_glass: وجربتُ الأمر باستخدام إضافة السحر المخصص.

فحصتُ كل علامة (tag) على حدة بالترتيب العكسي بدءًا من v2.6.0.beta1. وجدتُ أن أوامر git التالية مفيدة:

git tag --list \\ مثال: git tag --list 'v2.5.0*'
git checkout tags/tag \\ مثال: git checkout tags/v2.5.0.beta7

لم يستغرق الأمر وقتًا طويلاً لإيجاد علامة لا تعمل مع الإصدار الحالي من الإضافة: v2.5.0.beta7 لا يتضمن discourse/app/components/d-textarea الذي تحاول إضافة السحر المخصص استيراده.

لذا، وجدتُ الالتزام (commit) في الإضافة الذي أضاف هذا الاستيراد، وأخذتُ قيمة sha1 من الالتزام السابق، وقمتُ بالتحقق منه واختباريه (عمل بشكل جيد)، وأضفتُ هذا إلى .discourse-compatibility:

v2.5.0.beta7: 802d74bab2ebe19a106f75275342dc2e9cc6066a

ثم دفعتُ ذلك إلى فرع يحتوي على أحدث كود للإضافة (فرع للاختبار، غير ضروري عادةً)، وأعدتُ بناء خادم اختبار معزول بـ docker باستخدام فرع الإضافة هذا مع تعيين version إلى v2.5.0.beta7.

لم ينجح ذلك، ثم خطرت لي فكرة، بالطبع، أن مهمة rake plugin:pull_compatible_all غير موجودة في v2.5.0.beta7، لذا لن يعمل هذا بشكل رجعي (ألوم :wine_glass:). كما هو متوقع، أرى في سجلات المشغل (launcher logs):

Don't know how to build task 'plugin:pull_compatible_all' (See the list of available tasks with `rake --tasks`)

هل هذه هي الفكرة العامة لكيفية تخيلك لاستخدام هذا؟

أما فيما يتعلق بـ required_version، فقد واجهتُ ذلك هنا لأن خادم الاختبار كان يحتوي على إضافة discourse-legal-tools المثبتة، والتي تحتوي على required_version يساوي v2.5.0، لذا فشلت في البداية عند v2.5.0.beta7. أعتقد أنني سأقوم بنقل هذه الإضافة إلى النظام الجديد. لا يزال بإمكانني رؤية فائدة required_version في تحديد حد أدنى مطلق كما ذكرت.

11 إعجابًا