Solução para quando os patches do Drupal auto-hospedados não se aplicam por causa das redes domésticas

PROBLEMA :
É bastante comum (pelo menos no Canadá) que seu ISP em casa ou no trabalho (se você trabalha para uma grande empresa como um banco) defina uma página de serviço de pesquisa padrão para redirecionar seu navegador se você solicitar um URL que não não resolver em qualquer lugar. Você obterá essa resposta em vez de um erro HTTP 404 (não encontrado), que é o que acontecerá em todos os outros casos.

Para aqueles que usam arquivos .make para seu desenvolvimento Drupal; isso pode causar um problema se você decidiu hospedar um patch que é criado executando o arquivo make. De vez em quando, especialmente ao desenvolver em um repositório privado para um cliente, você não pode se dar ao luxo de esperar que um arquivo .patch seja aprovado no drupal.org. Ou talvez, por motivos de confidencialidade, você não possa postar.

Entre, o patch auto-hospedado. Em seu arquivo .make, será semelhante a este:

Cenário

O processo make pegará o URL especificado no arquivo .make para o patch e tentará baixá-lo da Internet (ou seja, como um nome de domínio totalmente qualificado) para colocá-lo no cache do Drush.

Obviamente, como este é um patch auto-hospedado, o caminho de “/tmp/patches/my-issue-###.patch” não responderá com uma resposta HTTP 200. Em vez disso, ele obterá um erro 404 e o processo make irá procurá-lo localmente; o que na maioria dos casos funcionará bem.

No entanto, considere o cenário em que você está em casa e as solicitações de URLs malformados não apresentam o erro 404 do qual o Drupal está dependendo como uma verificação para alternar para a pesquisa local. Em vez disso, uma resposta HTTP 200 é fornecida. Nesse ponto, a resposta HTTP 200 não está correta, mas o Drush armazena em cache a resposta do patch; que não é realmente a diferença que você esperava. Em vez disso, é a marcação HTML da página de pesquisa padrão que não será aplicada durante o processo .make.

Veja abaixo a pasta de cache do Drush que contém versões em cache de patches especificados no arquivo .make.

Cenário

Então, como faço para lidar com isso? Não quero ir para o escritório às 23h ou em um fim de semana apenas para executar o processo .make com êxito.

SOLUÇÃO ALTERNATIVA :
– Navegue até a pasta de cache do Drush (no Mac será algo como /Users/{user_name}/.drush/cache/download).
– Lá, você verá arquivos com nomes de arquivo semelhantes ao caminho do arquivo do patch, conforme referenciado no arquivo make. (ou seja, /tmp/patches/my-issue-###.patch torna-se tmp-patches-my-issue – ###. patch na pasta de cache).
– Abra esse arquivo em um editor.
– Copie o conteúdo de cada arquivo de patch auto-hospedado nessa versão em cache do arquivo.
– Execute novamente seu processo de construção / fabricação.
– Os patches serão aplicados desta vez com sucesso.

Nota : Quando você limpa seu cache drush (ou seja, drush cc drush), isso provavelmente removerá o conteúdo desta pasta e você precisará repetir essas etapas na próxima vez que precisar executar o processo de make.