Como funcionam os patches

WARNING
Recomendamos testar todos os patches em um ambiente de preparo ou desenvolvimento antes de implantar na produção. Também recomendamos que você faça o backup dos seus dados antes de aplicar um patch. Consulte Fazer backup e reverter o sistema de arquivos.

Arquivos de patch (ou diff) são arquivos de texto que observam:

  • Os arquivos a serem alterados.
  • O número da linha que iniciará a alteração e o número de linhas a serem alteradas.
  • O novo código a ser trocado.

Quando o programa de patch é executado, esse arquivo é lido e as alterações especificadas são feitas no(s) arquivo(s).

Há três tipos de patches:

  • Hotfixes—Patches que o Adobe publica na Central de Segurança.
  • Patches individuais — Patches criados e distribuídos individualmente pelo Suporte da Adobe Commerce.
  • Patches personalizados — Patches não oficiais que você pode criar a partir de uma confirmação do Git.

Hotfixes

Hotfixes são patches que contêm correções de segurança ou qualidade de alto impacto que afetam muitos comerciantes. Essas correções são aplicadas à próxima versão de patch da versão secundária aplicável. O Adobe lança hotfixes conforme necessário.

Você pode encontrar hotfixes na Central de Segurança. Siga as instruções na página para baixar o arquivo de patch, dependendo da sua versão e do tipo de instalação. Use a linha de comando ou o Composer para aplicar patches de hot fix.

NOTE
Hot fixes podem conter alterações incompatíveis com versões anteriores.

Patches individuais

Patches individuais contêm correções de qualidade de baixo impacto para um problema específico. Essas correções são aplicadas à versão secundária com suporte mais recente (por exemplo, 2.4.x), mas podem estar ausentes da versão secundária com suporte anterior (por exemplo, 2.3.x). O Adobe lança patches individuais conforme necessário.

Use o Quality Patches Tool para aplicar patches individuais.

NOTE
Os patches individuais não contêm alterações incompatíveis com versões anteriores.

Patches personalizados

Às vezes demora um pouco para a Equipe de engenharia de Adobe incluir uma correção de erro feita no GitHub em uma versão do Adobe Commerce Composer. Enquanto isso, você pode criar uma correção do GitHub e usar o plug-in cweagans/composer-patches para aplicá-la à instalação baseada no Composer.

Use a linha de comando ou o Composer para aplicar patches personalizados.

Há muitas maneiras de criar arquivos de patch personalizados. O exemplo a seguir se concentra na criação de um patch a partir de uma Git Commit conhecida.

Para criar um patch personalizado:

  1. Crie um diretório patches/composer em seu projeto local.

  2. Identifique a solicitação de confirmação ou extração do GitHub a ser usada para o patch. Este exemplo usa a confirmação 2d31571, vinculada ao problema do GitHub #6474.

  3. Anexe as extensões .patch ou .diff à URL de confirmação. Use .diff para um arquivo menor. Por exemplo: https://github.com/magento/magento2/commit/2d31571f1bacd11aa2ec795180abf682e0e9aede.diff

  4. Salve a página como um arquivo no diretório patches/composer. Por exemplo, github-issue-6474.diff.

  5. Edite o arquivo e remova app/code/<VENDOR>/<PACKAGE> de todos os caminhos para que eles sejam relativos ao diretório vendor/<VENDOR>/<PACKAGE>.

    note note
    NOTE
    Os editores de texto que removem automaticamente os espaços em branco à direita ou adicionam novas linhas podem quebrar a correção. Use um editor de texto simples para fazer essas alterações.

O exemplo a seguir mostra o arquivo DIFF mencionado anteriormente após a remoção de todas as instâncias 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;
             },

Aplicação de patches

Você pode aplicar patches usando qualquer um dos métodos a seguir:

NOTE
Para aplicar um patch a um projeto do Adobe Commerce na infraestrutura em nuvem, consulte Aplicar patches no guia do Commerce na nuvem.
recommendation-more-help
83a60e0e-8849-4685-a8cd-c129ecd795ea