إدارة تعارضات إصدارات Gem في إضافات Discourse

مرحباً، أنا أقوم ببناء إضافة لـ Discourse باستخدام gems خارجية. لقد قمت بالفعل بدمج بعض الاقتراحات من مشاركات أخرى تتعلق باستخدام gems خارجية، مثل Requiring external gems و Plugin using own gem - #3 by kgish. تتضمن هذه الاقتراحات إضافة حزم إضافية مطلوبة للحزم الخارجية المستخدمة. يعمل هذا بشكل جيد لتطوير إضافة لـ Discourse. ومع ذلك، في بعض الأحيان، بعد كل تحديث لـ Discourse، أواجه أخطاء تتعلق بتعارض إصدارات الـ gems عند إعادة بناء Discourse مع الإضافة وأحدث إصدار من Discourse.

هنا مثال لخطأ:

rake aborted!
Gem::LoadError: can't activate addressable-2.8.4, already activated addressable-2.8.5

لقد لاحظت موقفًا مشابهًا في إضافات أخرى، كما هو موضح في بعض الحالات في مشاركات المنتدى التالية: Install discourse failed due to Custom Wizard plugin و Failed to Bootstrap after upgrade.

حاليًا، الحل الذي كنت أحاول تطبيقه هو تحديث الحزمة إلى أحدث إصدار، ومواءمتها مع الإصدار المستخدم في Discourse Core.

ومع ذلك، أود الاستفسار عما إذا كان هناك حل لهذه المشكلة لا يتطلب تحديث الحزمة لمطابقة أحدث إصدار في Discourse Core في كل مرة أرغب في التحديث.

تحتاج إلى تحديث (أو طلب سحب) لكل إضافة تابعة لمواءمة الإصدارات، بناءً على النواة. لا يمكنك خلط الإصدارات.

في هذه الحالة، إذا استخدمت أي إضافة، فإنها تستخدم addressable-x.x.x، فأنت بحاجة إلى التأكد من تحديثها إلى addressable-2.8.5

إعجابَين (2)

شكراً على الرد، @merefield . نعم، هذا ما أفعله في كل مرة أواجه فيها تعارضات مع إصدارات الحزمة. ربما أحتاج إلى التفكير في إصدار أفضل للمكون الإضافي حتى يتمكن المستخدمون الذين ما زالوا يرغبون في استخدام إصدار أقدم من Discourse من الاستمرار في استخدام المكون الإضافي.