Instalar módulos contribuidos en Drupal 10 sin la versión compatible oficial

15/02/2023

Con la venida de Drupal 10 , muchos somos los que ya estamos empezando a realizar tareas de migración hacia esta última versión o comenzar a desarrollar en ella. Sobre todo para una migración se nos puede presentar el problema de tener que portar algunos módulos contribuidos cuya versión oficial aún no ha sido migrada a Drupal 10 por parte de la comunidad. Esto tenía solución cuando nos encontrábamos en la misma tesitura pero para pasar de Drupal 8 a 9 con esta solución.

¿Qué es lenient Composer endpoint?

Es un segundo endpoint que Drupal.org lanzó para descargar via composer aquellos módulos que aún no tenían implementado el parámetro ‘core_version_requirement’ en su archivo info.yml.

El problema en Drupal 10 es que muchos módulos aún no han terminado de ser migrados a Drupal 10 y por tanto no tienen añadido la versión ‘10’ en este parámetro. Y la fórmula descrita por el anterior artículo no es válida y no aplica para realizar este procedimiento de Drupal 9 a Drupal 10.

¿Cómo solucionar este problema?

Pues lo primero que tenemos que hacer es agregar Lenient al proyecto ejecutando este comando en la consola en nuestro proyecto:

composer require mglaman/composer-drupal-lenient
Instalar módulos contribuidos en Drupal 10 sin la versión compatible oficial - Ejemplo 1

Una vez añadido el endpoint a nuestro sitio, debemos ejecutar el siguiente comando para añadir una ‘lista blanca’ de los módulos que necesitamos añadir para luego poder parchearlos adecuadamente mediante composer (link aqui a otras referencias de post en la drupalera para parchear drupal via composer).

 composer config --merge --json extra.drupal-lenient.allowed-list '["drupal/MODULE_NAME"]

Donde MODULE_NAME se sustituye por el nombre real del módulo a instalar.

Una vez hecho esto podremos observar que dentro del fichero composer.json se ha añadido la siguiente fila:

Instalar módulos contribuidos en Drupal 10 sin la versión compatible oficial - Imagen 2

Ahora finalmente nuestro composer json está capacitado para poder instalar el módulo que necesitemos en Drupal 10 ejecutando el require del módulo como lo hacemos normalmente:

composer require drupal/barcodes
Instalar módulos contribuidos en Drupal 10 sin la versión compatible oficial - Imagen 03

De esta manera podemos empezar a trabajar con aquellos módulos que necesitemos hasta que la versión oficial (normalmente de momento los parches para compatibilidad a Drupal 10 están para la versión -dev de los módulos) a Drupal 10 esté lista en el repositorio principal de drupal.org.