Cómo aplicar parches a Magento2 Open Source con composer

Aplicando parches de forma automática y sencilla

Profile picture for user admin
By Way2 Ecommerce
· Actualizado:

Ya vimos hace tiempo cómo actualizar la versión de Magento2 de forma sencilla utilizando composer, era algo tan sencillo como ejecutar algunos comandos de composer o cambiar la versión en composer.json y hacer un composer update. Esto se puede hacer sin problema siempre y cuando nuestros módulos sean compatibles con la nueva versión a la que se va actualizar. Si los módulos no son compatibles lo ideal es actualizar estos también a una versión compatible con la versión de Magento2 a la que queremos subir. Al hacer “composer update” se suelen resolver todas estas dependencias de versiones y debería descargar las últimas versiones definidas o bien mostrar cuál es el problema para no poder hacerlo. La verdad es que composer es una herramienta fantástica.

Luego están los módulos instalados “a pelo” en app/code, estos habría que descargarlos de forma manual y comprobar que todo funcione correctamente. Normalmente siempre que actualizamos módulos de Magento, ya sean del core o no, ya sea por composer o no, hay que hacer las comprobaciones oportunas para ver que todo funcione correctamente en un entorno de desarrollo y una vez que esté todo bien subir los cambios a producción. En ocasiones nos hemos encontrado que después de actualizar un módulo, la nueva versión no solo tenía cambios a nivel de UX, también tenía nuevos bugs, por eso lo de hacer las comprobaciones oportunas.

Vamos a centrarnos ya en las acciones concretas que nos llevarán a aplicar un parche vía composer en Magento2, lo más sencillo es tomar un caso práctico como ejemplo:

Parche disponible en Magento2

Paso 1. Instalar la herramienta

Primero necesitamos instalar algún “aplicador” de parches para composer, aquí tenemos unos cuantos:

  1. https://github.com/Loxzibit/magento2-composer-patcher
  2. https://github.com/netresearch/composer-patches-plugin
  3. https://github.com/cweagans/composer-patches (mi favorito)

Vamos a instalar este último, que es muy sencillo. Para ello ejecutamos en la raíz de nuestro proyecto Magento2 lo siguiente:

composer require cweagans/composer-patches

Paso 2. Configurar la herramienta

Para que composer sepa qué tiene que parchear necesitaremos incluirle en el apartado “extra” (fichero /composer.json) los datos siguientes:

    "extra": {
        "magento-force": "override",
        "enable-patching": true,
        "composer-exit-on-patch-failure": true,
        "patches": {
            "magento/framework": {
                "Datetime format - Magento 2.3.5 - issue 26675": "patches/datetime_format_2_3_5.patch"
            }
        }
    }

Paso 3. Descargar el parche

Descargamos el parche y lo situaremos en la ruta definida en el json que hemos agregado a composer.json, en este caso la ruta sería /patches/datetime_format_2_3_5.patch:

Paso 4. Instalar el parche

Para instalar el parche, una vez descargado y configurada la herramienta de parchear, ejecutaremos en la raíz de nuestro proyecto Magento2 lo siguiente:

composer install

Esto hará que se borre la versión instalada de “magento/framework”, se instale la última versión de “magento/framework” que corresponde a la versión instalada de Magento2 y luego aplica el parche de forma automática:

Parche aplicado

¡No puede ser más sencillo! Esperamos que si no tenías este conocimiento te haya servido y que disfrutes tus desarrollos tanto como nosotros.

 

 
 

 

 

Etiquetas