Devo fonte controle módulos contribuídos no meu projeto?

8

Foi-me dito que durante o desenvolvimento eu deveria controlar tudo o código-fonte sites/no meu repositório de código (por exemplo, SVN).

Supondo que eu nunca vou tocar em qualquer um dos módulos contrib eu uso ( ctools, viewsetc), mas só vai criar o meu próprio tema, deve ainda fazer isso?

Ou devo apenas controlar a origem de tudo sites/all/themes/?

obrigado

cherouvim
fonte

Respostas:

10

Na minha equipe, passamos a buscar apenas o que é específico ao nosso projeto atual. Se estamos usando Visualizações por exemplo, podemos adicionar a entrada do nosso Drush make -file, ea versão que , mas não o próprio módulo.

Isso nos deixa com um repositório muito pequeno, consistindo em qualquer módulo personalizado específico para o site atual, o tema atual e as exportações de recursos.

A menos que você absolutamente não possa usar drush e drush make, não vejo por que alguém deve controlar o código de controle que está bem versionado em outro lugar. E se você pretende invadir um dos módulos, adicione-o como um submódulo , novamente, não versionando o código em seu próprio repositório. (Acredito que isso seja chamado de filial do fornecedor no SVN).

Edit: Para mais detalhes e uma configuração mais avançada, você pode dar uma olhada neste repositório: [email protected]: letharion / Drupal-build-scripts.git Os scripts são escritos em bash para dar suporte ao fluxo de trabalho de minhas equipes, que inclui uma construção um perfil de instalação base ( NodeStream ) e, em seguida, o perfil específico do site, um arquivo de criação para cada perfil, ganchos para aplicar patches ou fazer outras alterações nas etapas individuais da compilação etc. Espero encontrar tempo para -escreva-o como uma extensão drush em um futuro próximo.

Letharion
fonte
Obrigado pela sua explicação detalhada. Sim, eu uso drush e planejo automatizar o máximo possível. E não pretendo alterar nenhum código nos módulos principais ou de contribuição.
23412 cherouvim
+1 de versão do arquivo make é uma ótima idéia, acho que vou estar fazendo isso no futuro;)
Clive
11
@ Letharion Eu não entendo direito como isso funciona ao desenvolver o mesmo site com vários desenvolvedores ao mesmo tempo? O AFAIK drush make sempre baixa todas as dependências e tenta sobrescrever sites / padrão, mesmo se esses módulos já tiverem sido D / L'd, ou existe alguma opção não documentada para baixar apenas módulos atualizados / novos? Em outras palavras: eu entendo o benefício de usar o Drush make para instalar novamente, mas como você o usa para manter as dependências do módulo sincronizadas em uma equipe distribuída?
Creynders
Estou usando essa abordagem há mais de um ano, mas agora estou questionando se é realmente melhor do que ter tudo em um repositório ao trabalhar com outros desenvolvedores que podem não estar reconstruindo a plataforma todos os dias. Além disso, essa abordagem não é realmente compatível com a maneira como a Acquia estrutura seus repositórios para hospedagem na nuvem.
David Meister
6

Como contrapartida à resposta da @ Letharion, colocar tudo no SVN faz sentido para algumas organizações e realmente depende de como você faz suas implementações. A inserção de módulos e temas de contribuição no SVN pode fazer sentido se você precisar voltar no tempo e olhar uma versão antiga de um site.

Um exemplo disso é útil quando você suspeita de um erro em um módulo de contribuição, ou está vendo um comportamento diferente. Ser capaz de restaurar uma versão completa do passado pode ajudar.

Também achei útil ter um instantâneo completo do site no SVN quando preciso descobrir o que um cliente fez em um site. Posso tirar um instantâneo completo de sua versão e colá-lo no SVN como um ramo e comparar.

mpdonadio
fonte
Para voltar no tempo, eu também precisaria do backup completo correspondente do banco de dados. Porque algumas definições e configurações estão no banco de dados. Isso está certo?
23412 Cherouvim
Sim. O módulo Backup and Migrate e / ou drush archive-backup é seu amigo aqui.
mpdonadio
11
O uso desse método permite clonar uma instalação inteira do controle de versão e do backup, o que pode ser muito útil para o desenvolvimento ou a depuração de sites ativos.
23412 keithm