Cómo funcionan los parches

WARNING
Se recomienda encarecidamente probar todos los parches en un entorno de ensayo o desarrollo antes de implementarlos en producción. También recomendamos encarecidamente que realice una copia de seguridad de sus datos antes de aplicar un parche. Consulte Hacer una copia de seguridad y revertir el sistema de archivos.

Los archivos de parche (o diff) son archivos de texto que indican:

  • Los archivos que se van a cambiar.
  • El número de línea para comenzar el cambio y el número de líneas que se van a cambiar.
  • El nuevo código que se va a intercambiar.

Cuando se ejecuta el programa de revisión, este archivo se lee en y se realizan los cambios especificados en los archivos.

Existen tres tipos de parches:

  • Revisiones: parches que publica el Adobe en el Centro de seguridad.
  • Parches individuales: Parches que el Soporte técnico de Adobe Commerce crea y distribuye de forma individual.
  • Parches personalizados: parches no oficiales que se pueden crear a partir de una confirmación de Git.

Revisiones

Las revisiones son parches que contienen correcciones de alta calidad o seguridad de impacto que afectan a muchos comerciantes. Estas correcciones se aplican a la próxima versión del parche para la versión secundaria aplicable. El Adobe publica revisiones según sea necesario.

Encontrará revisiones en Centro de seguridad. Siga las instrucciones de la página para descargar el archivo de parche, según la versión y el tipo de instalación. Use la línea de comandos o Compositor para aplicar revisiones de revisión.

NOTE
Las correcciones rápidas pueden contener cambios incompatibles con versiones anteriores.

Parches individuales

Los parches individuales contienen correcciones de calidad de bajo impacto para un problema específico. Estas correcciones se aplican a la versión menor admitida más recientemente (por ejemplo, 2.4.x), pero podrían no estar presentes en la versión menor admitida anteriormente (por ejemplo, 2.3.x). El Adobe libera los parches individuales según sea necesario.

Use Quality Patches Tool para aplicar parches individuales.

NOTE
Los parches individuales no contienen cambios incompatibles con versiones anteriores.

Parches personalizados

A veces, el equipo de ingeniería de Adobe tarda un tiempo en incluir una corrección de errores realizada en GitHub en una versión del Compositor de Adobe Commerce. Mientras tanto, puede crear un parche desde GitHub y utilizar el complemento cweagans/composer-patches para aplicarlo a su instalación basada en Compositor.

Use línea de comandos o Compositor para aplicar parches personalizados.

Existen muchas maneras de crear archivos de parche personalizados. El siguiente ejemplo se centra en la creación de un parche a partir de una confirmación de Git conocida.

Para crear un parche personalizado:

  1. Cree un directorio patches/composer en el proyecto local.

  2. Identifique la solicitud de confirmación o extracción de GitHub que se utilizará para el parche. Este ejemplo utiliza la confirmación 2d31571, vinculada al problema de GitHub #6474.

  3. Anexe las extensiones .patch o .diff a la dirección URL de confirmación. Use .diff para obtener un tamaño de archivo más pequeño. Por ejemplo: https://github.com/magento/magento2/commit/2d31571f1bacd11aa2ec795180abf682e0e9aede.diff

  4. Guarde la página como archivo en el directorio patches/composer. Por ejemplo, github-issue-6474.diff.

  5. Edite el archivo y quite app/code/<VENDOR>/<PACKAGE> de todas las rutas de acceso para que sean relativas al directorio vendor/<VENDOR>/<PACKAGE>.

    note note
    NOTE
    Los editores de texto que eliminan automáticamente los espacios en blanco finales o agregan nuevas líneas pueden romper el parche. Utilice un editor de texto sencillo para realizar estos cambios.

El siguiente ejemplo muestra el archivo DIFF mencionado anteriormente después de quitar todas las instancias de app/code/Magento/Payment:

diff --git a/view/frontend/web/js/view/payment/iframe.js b/view/frontend/web/js/view/payment/iframe.js
index c8a6fef58d31..7d01c195791e 100644
--- a/view/frontend/web/js/view/payment/iframe.js
+++ b/view/frontend/web/js/view/payment/iframe.js
@@ -154,6 +154,7 @@ define(
              */
             clearTimeout: function () {
                 clearTimeout(this.timeoutId);
+                this.fail();

                 return this;
             },

Aplicación de parches

Puede aplicar parches utilizando cualquiera de los siguientes métodos:

NOTE
Para aplicar un parche a un proyecto de Adobe Commerce en la nube, consulte Aplicar parches en la guía de Commerce en la nube.
recommendation-more-help
83a60e0e-8849-4685-a8cd-c129ecd795ea