Gestión de conflictos de versión de Gem en Plugins de Discourse

Hola, estoy creando un plugin para Discourse utilizando gems externas. Ya he incorporado algunas sugerencias de otras publicaciones sobre el uso de gems externas, como Requiring external gems y Plugin using own gem - #3 by kgish. Estas sugerencias implican agregar paquetes adicionales necesarios para los paquetes externos utilizados. Funciona bien para desarrollar un plugin para Discourse. Sin embargo, a veces, después de cada actualización de Discourse, encuentro errores relacionados con conflictos en las versiones de las gems al reconstruir Discourse con el plugin y la última versión de Discourse.

Aquí un ejemplo de un error:

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

He observado una situación similar en otros plugins, como se ve en algunos casos en las siguientes publicaciones del foro: Install discourse failed due to Custom Wizard plugin y Failed to Bootstrap after upgrade.

Actualmente, la solución que he estado intentando es actualizar el paquete a la última versión, alineándolo con la versión utilizada en Discourse Core.

Sin embargo, me gustaría preguntar si existe una solución a este problema que no requiera actualizar el paquete para que coincida con la última versión en Discourse Core cada vez que quiera actualizar.

Necesitas actualizar (o hacer un PR) a cada plugin dependiente para alinear las versiones, basándote en Core. No puedes mezclar versiones.

En este caso, si algún plugin que utilizas usa addressable-x.x.x, debes asegurarte de que se actualice a addressable-2.8.5.

2 Me gusta

Gracias por la respuesta, @merefield. Sí, esto es lo que hago cada vez que me encuentro con conflictos en las versiones de los paquetes. Quizás necesite considerar un mejor control de versiones para el plugin, de modo que los usuarios que aún quieran usar una versión anterior de Discourse puedan seguir usando el plugin.