Esto es algo que he tenido en mente durante bastante tiempo, pero no puedo encontrar el método correcto para hacerlo.
Básicamente, estoy trabajando con 6 sitios web diferentes, todos con Magento CE 1.9.2+
En esos sitios web, estoy usando un montón de extensiones que yo y el equipo con el que estoy trabajando hemos desarrollado (aquí estamos hablando de más de 50 extensiones) y el código para esas extensiones se almacena en Bitbucket. Así que no soy la única persona que administra esas extensiones, somos 3 personas trabajando en ellas.
En este momento, cuando quiero agregar una función / corregir un error para una de esas extensiones, aquí está mi flujo de trabajo:
- Instale la última versión de la extensión en uno de los sitios web a través de Modman
- Solucione el error / agregue una función / prueba
- Copie manualmente los cambios en una carpeta local que contenga todas mis extensiones
- Comprometerse y enviar a través de GIT desde esta carpeta de extensión a Bitbucket (1 repositorio de Bitbucket por módulo)
- Luego, la nueva versión del módulo se puede instalar a través de Modman
Nota importante: estoy usando modman con copia impresa aquí, sin enlace simbólico.
Mi mayor problema se ha resaltado en negrita: quiero poder omitir este paso porque es una gran causa de problemas (a veces se olvidan algunos archivos, copiar / pegar incorrectamente implica acción humana).
Entonces, ¿cómo puedo mejorar mi flujo de trabajo para deshacerme de este paso manual de copiar / pegar? Estoy abierto a sugerencias aquí.
fuente
Submodules
característica de git?Respuestas:
A menudo adopto el siguiente enfoque, que es bastante independiente del marco.
/path/to/my/module
En su proyecto, defina un repositorio local para su copia local del módulo. Esto es para que su proyecto pueda obtener cambios no apresurados de su LFS.
Luego, puede crear su rama de desarrollo específica para su compositor (siempre que sus proyectos lo
minimum-stability
permitan).Te comprometes
/path/to/my/module
,composer update namespace/module
en el proyecto, verlo instalar y probar.Creo que este enfoque funciona bien para los módulos M1 usando https://github.com/Cotya/magento-composer-installer , ya que la instalación con enlaces simbólicos puede ser un problema a veces y te hace tropezar al agregar nuevos directorios o rutas que anteriormente no estaban enlazados. por modman.
Enlaces que pueden interesar
Depuración
Use
composer require namespace/module dev-branch-name-here -vvv
para ver las ramas que puede usar localmente.Verifique que
minimum-stability
se haya configuradodev
en el proyecto en el que está instalando el módulo.Your requirements could not be resolved to an installable set
Encontrado leyendo el comentario de Patrick Schwisow aquí .
En resumen, puede actualizar su
composer.json
para forzarlo a una versión específica durante el desarrollo, hacer que se lea como:fuente
path
repositorios de tipo para módulos de proyecto que no volveré a usar y luego git o packagist para módulos que volveré a usar.Ahí está tu problema. Si no puede cambiar esta configuración para las implementaciones de su tienda, considere trabajar en extensiones compartidas en una instancia separada donde use modman con enlaces simbólicos.
Utilizo el compositor con el instalador del compositor AOE para clonar los repositorios de extensión directamente,
.modman
pero supongo que instalar módulos desde Git con modman también funciona. De cualquier manera, puede trabajar directamente en el repositorio Git del módulo.fuente
Así que mi idea aquí para ti es comenzar a trabajar con el compositor incluso para Magento1. Si tuvieras tu propio packagist , que no es demasiado difícil de administrar ahora que aws y google cloud están en su lugar, o puedes usar packagist público. Tendría acceso "fácil" a versiones más recientes en sus tiendas Magento1.
Esto significa que cuando salga una versión más nueva, puede
composer update
y automatizará el proceso de copia por usted.Echa un vistazo a https://github.com/Cotya/magento-composer-installer para Magento1 a través del compositor.
Con este enfoque, también puede trabajar directamente en el repositorio de git en la carpeta del proveedor si lo tiene configurado para copiar en el
.git
y, por lo tanto, puede hacer que los cambios vuelvan a sus repositorios sin tener que pagar por separado. Sin embargo, tenga en cuenta que debe tener cuidado aquí y asegurarse de saber en qué rama se encuentra; de lo contrario, puede eliminar su código (hecho varias veces).fuente