Aplicar un parche a un módulo contrib en Drupal

Tutoriales
reading time 10

Muchas veces necesitamos aplicar un parche a un módulo contrib que estamos usando en nuestro proyecto y para hacerlo necesitamos preparar nuestro durpal.

En este tutorial veremos como hacerlo paso a paso.

Para el ejemplo vamos a aplicar un parche al módulo storybook (módulo que estoy usando en uno de mis proyectos).

Antes que nada debemos preparar nuestro drupal para que pueda importar parches tanto sea al core como a los módulos contribs o themes.

Instalamos el paquete: cweagans/composer-patches

 composer require cweagans/composer-patches

Ahora instalamos el módulo en nuestro drupal como siempre (en este caso es un Drupal 11)

composer require 'drupal/storybook:^1.0'
drush en -y storybook
drush cr

Ahora vamos a buscar el parche. Cabe aclarar que la issue o problema del módulo tiene que tener un parche provisto y aprovado por los mantenedores del módulo, en este caso veremos la issue relacionada a un problema con las imágenes que tiene el módulo de storybook, la issue se titula: Image not displayed correctly because image path is relative.

Dentro de la issue buscamos una sección donde se encuentran los parches para la version del módulo que estamos usando

seccion de patch

Vamos a copiar la url al parche, en este caso: https://www.drupal.org/files/issues/2024-12-19/storybook-images_not_displayed_correctly_because_image_path_is_relative-3441430-11.patch

Bien ahora que tenemos el parche vamos a incorporarlo en el composer.json file de nuestro proyecto en la sección llamada extra

"extra": {
        "patches": {
            "drupal/storybook": {
                "Issue #3441430": "https://www.drupal.org/files/issues/2024-12-19/storybook-images_not_displayed_correctly_because_image_path_is_relative-3441430-11.patch"
            }
        },
        "drupal-scaffold": {
            "locations": {
                "web-root": "web/"
            }
        },

Es importante que pongamos bien el nombre del módulo contrib que estamos parchando, en este caso drupal/storybook y luego en el nombre del parche podemos poner lo que deseemos, en mi caso pongo el número de la issue relacionada con el problema: #3441430.

Ahora para que el parche sea aplicado tendremos que ejecutar el comando (tambien funciona con el composer update) 

composer install

Luego en la consola podremos ver el mensaje de parche aplicado, si todo fue bien veremos algo así

patch 2

Como se puede ver en la imagen el parche fue aplicado con éxito. Si vemos un mensaje de error puede ser porque el parche no es para la version del módulo que estamos usando, en cuyo caso debemos pedir que se cree un parche para nuestra version o bien desarrollar nosotros mismos el parche y contribuirlo a la comunidad 😉

Bueno eso es todo por ahora respecto de la aplicación de parches en módulos contrib.

Este post fue inspirado por este gran aporte realizado por Goran Nikolovski.

 

.