¿Debo controlar los módulos contribuidos en mi proyecto?

8

Me han dicho que, durante el desarrollo, debería controlar todo sites/en mi repositorio de código (por ejemplo, SVN).

Suponiendo que nunca tocaré ninguno de los módulos contrib que uso ( ctools, viewsetc.) pero solo crearé mi propio tema, ¿debería hacerlo?

¿O debería simplemente controlar todo lo que está debajo sites/all/themes/?

Gracias

cherouvim
fuente

Respuestas:

10

En mi equipo, hemos pasado a buscar solo lo que es específico de nuestro proyecto actual. Si estamos usando Vistas por ejemplo, se añade la entrada al nuestro drush maquillaje -file, y la versión de que , pero no el propio módulo.

Esto nos deja con un repositorio muy pequeño, que consta de cualquier módulo personalizado específico para el sitio actual, el tema actual y las exportaciones de características.

A menos que no pueda usar drush y drush make, no veo por qué uno debería controlar el código de versión que está bien versionado en otro lugar. Y si tiene la intención de piratear uno de los módulos, debe agregarlo como un submódulo , nuevamente, no versionando el código en su propio repositorio. (Creo que esto se llama una sucursal de proveedor en SVN).

Editar: para obtener más detalles y una configuración más avanzada, puede consultar este repositorio: [email protected]: letharion / Drupal-build-scripts.git Los scripts están escritos en bash para admitir el flujo de trabajo de mi equipo, que incluye un edificio un perfil de instalación base ( NodeStream ), luego nuestro perfil específico del sitio además de eso, un archivo de creación para cada perfil, ganchos para aplicar parches o hacer otros cambios en los pasos de compilación individuales, etc. Espero encontrar el tiempo para volver -escribirlo como una extensión borrosa en un futuro próximo.

Letharion
fuente
Gracias por tu explicación detallada. Sí, uso drush y planeo automatizar tanto como sea posible. Y no planeo cambiar ningún código en los módulos principales o contrib.
Cherouvim
Hacer una versión +1 del archivo make es una gran idea, creo que lo haré en el futuro;)
Clive
1
@Letharion ¿No entiendo cómo funciona esto al desarrollar el mismo sitio con varios desarrolladores al mismo tiempo? AFAIK drush siempre descarga todas las dependencias e intenta sobrescribir sitios / predeterminados, incluso si esos módulos ya han sido D / L'd, o ¿hay alguna opción indocumentada para descargar solo módulos actualizados / nuevos? En otras palabras: entiendo el beneficio de usar Drush para instalar de nuevo, pero ¿cómo se usa para mantener las dependencias del módulo sincronizadas en un equipo distribuido?
Creynders
He estado usando este enfoque durante más de un año, pero ahora me pregunto si es realmente mejor que tener todo en un repositorio cuando trabaje con otros desarrolladores que pueden no reconstruir la plataforma todos los días. Además, este enfoque no es realmente compatible con la forma en que Acquia estructura sus repositorios para su alojamiento en la nube.
David Meister
6

Para contrarrestar la respuesta de @ Letharion, poner todo en SVN tiene sentido para algunas organizaciones y realmente depende de cómo realice sus implementaciones. Poner módulos y temas contrib en SVN puede tener sentido si alguna vez necesita "retroceder en el tiempo" y mirar una versión antigua de un sitio.

Un ejemplo de esto es útil cuando sospecha un error en un módulo contrib, o si observa un comportamiento diferente. Ser capaz de restaurar una versión completa del pasado puede ayudar.

También me pareció útil tener una instantánea completa del sitio en SVN cuando necesito averiguar qué le hizo un cliente a un sitio. Puedo tomar una instantánea completa de su versión y pegarla en SVN como una rama y comparar.

mpdonadio
fuente
Para ir "atrás en el tiempo" también necesitaría la copia de seguridad completa de la base de datos correspondiente. Porque algunos ajustes y configuraciones están en la base de datos. ¿Está bien?
Cherouvim
Si. El módulo Backup and Migrate y / o drush archive-backup es tu amigo aquí.
mpdonadio
1
El uso de este método le permite clonar una instalación completa desde el control de versiones y una copia de seguridad, lo que puede ser muy útil para el desarrollo o la depuración de sitios en vivo.
keithm