Compositor sem integração contínua
Se você é um desenvolvedor WordPress que está usando o Composer sem integração contínua, é provável que você tenha uma etapa crucial de descobrir como gerenciar o diretório do fornecedor ao implantar seus plugins.
Aquilo é:
- Sabemos que é uma má ideia colocar todo o diretório do fornecedor sob controle de origem,
- Outros desenvolvedores que estão familiarizados com o Composer devem ser capazes de começar a trabalhar sem a necessidade de muita instrução,
- A integração contínua não está sendo usada por vários motivos,
- E ficamos com a necessidade de fornecer uma entrega de nível de produção que use certas dependências, mas não outras.
Por mais que os pontos acima possam descrever nossa situação, eles não nos dizem o que podemos fazer com ela.
Em outras palavras, aqui está o caso de uso: você construiu um plugin WordPress para alguém. Este plugin usa uma variedade de dependências, todas mantidas pelo Composer.
Você não está verificando o diretório do fornecedor no repositório, mas também não está usando a integração contínua para implantar o plug-in. Em vez disso, o cliente é, ou um terceiro é.
E daí?
Distribuição com Composer sem Integração Contínua
A versão curta é esta:
Exporte o branch master (ou release branch ou como você o chamar) de sua cópia local do plug-in e, em seguida, certifique-se de executar o comando Composer que o instrui a criar o diretório do fornecedor sem as dependências no nível de desenvolvimento.
Em seguida, você pode agrupar o arquivo gerado e distribuí-lo ao seu cliente.
Mas como?
Primeiro, estou assumindo que a cópia local do seu plugin não tem uma cópia do diretório do fornecedor, mas tem todo o código mais recente extraído do repositório remoto.
Ou seja, você tem a versão mais recente e estável do código pronta para ser lançada, mas ainda não está pronto para isso porque ela não possui as dependências necessárias para, digamos, carregamento automático e outras funcionalidades semelhantes.
O primeiro passo será exportar o repositório local para um arquivo. Veja como você pode fazer isso soltando-o na área de trabalho:
$ git archive -o ~/Desktop/plugin-name.zip HEAD
Em seguida, instrua o Composer a instalar as dependências que estão fora da diretiva require-devcomposer.json em seu arquivo:
$ composer install --no-dev
Agora você pode arquivar o diretório gerado em um plugin e distribuir esse arquivo.
Isso é o ideal?
Eu não diria que isso é ideal, mas é uma solução para um caso de uso que certamente existe, então eu diria que é algo que pode ser feito para resolver um problema específico.
Em última análise, se você está procurando uma maneira de distribuir um plugin do WordPress que usa o Composer sem integração contínua, esta é uma maneira de fazê-lo.
Eu reconheço, porém, que é um caso de uso específico e, portanto, tem uma solução específica.