Cómo aplicar parches a Magento2 Open Source con composer

Aplicando parches de forma automática y sencilla

Profile picture for user admin
Por Way2 Ecommerce
02 Feb 2021

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.

 

 
 

 

 

Profile picture for user admin
Way2 Ecommerce

Expertos en Magento ecommerce. Definimos, desarrollamos, mantenemos y potenciamos tiendas online de la más alta calidad para que tu ecommerce supere todas tus expectativas.

Etiquetas