Como funcionam os patches
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.
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.
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:
-
Crie um diretório
patches/composer
em seu projeto local. -
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. -
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 -
Salve a página como um arquivo no diretório
patches/composer
. Por exemplo,github-issue-6474.diff
. -
Edite o arquivo e remova
app/code/<VENDOR>/<PACKAGE>
de todos os caminhos para que eles sejam relativos ao diretóriovendor/<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: