¿Cómo usar modman para administrar módulos en github?

12

Estoy tratando de usar modman( https://github.com/colinmollenhour/modman ) para administrar mis Extensiones en github.

Primero estoy tratando de agregar MagePsycho_Someextextensión como demostración.

Hasta ahora he hecho los siguientes pasos

/var/www/magento-dir/ -> My Magento Installation Dir
/var/www/MagePsycho_Extensions/ --> Git Repository Dir
  1. cd /var/www/MagePsycho_Extensions/
  2. git clone [email protected]:magepsycho/Someext.git
  3. touch modman
  4. git commit -am 'Modman file added'
  5. git push origin master
  6. cd /var/www/magento-dir/
  7. modman init
  8. modman clone [email protected]:magepsycho/Someext.git
  9. Desarrollé la extensión 'MagePsycho_Someext' en / var / www / magento-dir con los siguientes archivos
    • app / etc / modules / MagePsycho_Someext.xml
    • app / code / local / MagePsycho / Someext / etc / config.xml
    • aplicación / código / local / MagePsycho / Someext / Helper / Data.php

10 Se agregó la información de mapeo de archivos en /var/www/magento-dir/.modman/Someext/modman como

app/etc/modules/MagePsycho_Someext.xml  app/etc/modules/MagePsycho_Someext.xml
app/code/local/MagePsycho/Someext/etc/config.xml app/code/local/MagePsycho/Someext/etc/config.xml
app/code/local/MagePsycho/Someext/Helper/Data.php app/code/local/MagePsycho/Someext/Helper/Data.php

11 modman update Someext

pero tengo los siguientes errores:

WARNING: Target does not exist (.modman/Someext/modman):
 app/etc/modules/MagePsycho_Someext.xml  app/etc/modules/MagePsycho_Someext.xml

Notas : Estoy desarrollando extensiones en /var/www/magento-dir/. Y desea implementar estas extensiones (una por repositorio) en github usando modman. Cuando termine con el desarrollo del módulo, quiero que esos archivos se agreguen al repositorio. Para eso he usado el archivo .modman / * / modman para el mapeo. Pero incapaz de hacerlo funcionar.

¿Dónde y qué me estoy perdiendo?
¿O es este el enfoque incorrecto?

[EDITAR]

Me acabo de dar cuenta de que mi enfoque es todo lo contrario. Primero, debe agregar archivos de extensión y modman con asignaciones de ruta, empujarlo al repositorio y luego usarlo modman clone.

¿Cómo lo harías si primero desarrollas la extensión y luego usas modman para enviar cambios al repositorio?

MagePsycho
fuente
1
No puedo dar una respuesta completa en este momento, pero en general no debería estar modificando cosas en la carpeta .modman. Este es un buen punto de partida github.com/colinmollenhour/modman/wiki/Tutorial
Zifius
No estoy seguro de dónde administrar las asignaciones. en / var / www / MagePsycho_Extensions / Someext / modman? En caso afirmativo, ¿tiene que empujar los cambios a github y extraerlo con la actualización de modman?
MagePsycho
No entiendo por qué hace referencia a la extensión directamente, si está en un repositorio puede descargarla directamente desde allí.
Allan MacGregor
Dentro de su repositorio raíz de extensión debe haber un archivo modman con las asignaciones definidas.
Allan MacGregor
Espere, ¿está intentando extraer la extensión de / var / www / magento-dir / en un repositorio separado?
Allan MacGregor

Respuestas:

7

Finalmente descubrí la forma de administrar los módulos de Magento usando modman (aunque no es la forma perfecta, pero funciona para mí)

Supuestos

/var/www/magento-dir/ -> My Magento Installation Dir
/var/www/MagePsycho_Extensions/ --> Git Repo Dir
  1. cd /var/www/MagePsycho_Extensions/
  2. git clone [email protected]:magepsycho/Someext.git
  3. touch modman
  4. git commit -am 'Modman file added'
  5. git push origin master
  6. cd /var/www/magento-dir/
  7. modman init
  8. modman link /var/www/MagePsycho_Extensions/Someext
  9. Ahora desarrolle la extensión 'MagePsycho_Someext' en /var/www/magento-dir/.modman/Someext con los siguientes archivos
    • app / etc / modules / MagePsycho_Someext.xml
    • app / code / local / MagePsycho / Someext / etc / config.xml
    • aplicación / código / local / MagePsycho / Someext / Helper / Data.php

10 Agregue la información de asignación de archivos en /var/www/magento-dir/.modman/Someext/modman como

app/etc/modules/MagePsycho_Someext.xml  app/etc/modules/MagePsycho_Someext.xml
app/code/local/MagePsycho/Someext/etc/config.xml app/code/local/MagePsycho/Someext/etc/config.xml
app/code/local/MagePsycho/Someext/Helper/Data.php app/code/local/MagePsycho/Someext/Helper/Data.php

11 modman repair
12 cd /var/www/magento-dir/.modman/Someext
13 git add app/etc/modules/MagePsycho_Someext.xml app/code/local/MagePsycho/Someext/etc/config.xml app/code/local/MagePsycho/Someext/Helper/Data.php
14 git commit -m 'Extension files updated.'
15 git push origin master
16 Eso es todo.

En resumen, trabajará en el directorio magento-dir / .modman / Someext que está vinculado a magento-dir. Cada vez que agrega nuevos archivos a su extensión, debe actualizar el archivo modman y ejecutarlo, lo modman repairque mantiene actualizados los enlaces simbólicos.

Si alguien tiene un mejor enfoque, por favor comparta.

MagePsycho
fuente
6

Así que mi consejo aquí es que, de todos modos, tienes una copia local de la extensión y luego usas los comandos linky en deploylugar declone

En su caso simplemente llamaría:

  1. modman init
  2. modman link ../Your_Extension_Path (si se trata de una sola extensión)
  3. modman deploy Your_Extension_Path

Este método necesita que tenga el archivo modman completo en su directorio de extensiones con asignaciones de archivos, pero de sus comentarios parece que ya lo tiene.

Según tengo entendido, los archivos deben estar primero en el directorio de extensión, luego se vincularán al directorio de magento, de modo que cuando realice futuras ediciones en los archivos de magento, los archivos de extensión también se modificarán. Tal vez hay una manera de crear una extensión modman desde un directorio de magento, pero lamentablemente no lo sé.

Una manera simple de hacer frente a los archivos de Magento a un directorio de extensión es tener dos exploradores de Windows abiertos para Windows y copiarlos o usar algo como el comandante de medianoche

Nota: solo he usado el modman para la versión php pero este proceso funciona para eso

David modales
fuente
/ var / www / MagePsycho_Extensions / tendrá más extensiones, por ejemplo: Extension1, Extension2 con diferentes repositorios. ¿Eso hará una diferencia usando tu enfoque?
MagePsycho
No estoy seguro, pero supongo que solo necesitaría dos niveles para vincular ../MagePsycho_extenstion/Extension1y luego implementarlo sería MagePsycho_extenstion/Extension1o Extension1no estoy seguro sin probarlo.
David Manners
Después de seguir su enfoque de enlace e implementación, aparece el mismo error ADVERTENCIA: Target no existe (.modman / MagePsycho_Someext / modman): app / etc / modules / MagePsycho_Someext.xml app / etc / modules / MagePsycho_Someext.xml
MagePsycho
@MagePsycho y realmente tienes este archivo en tu extensión?
David Manners
2
Según tengo entendido, los archivos deben estar primero en el directorio de extensión, luego se vincularán al directorio de magento, de modo que cuando realice futuras ediciones en los archivos de magento, los archivos de extensión también se modificarán. Tal vez hay una manera de crear una extensión modman desde un directorio de magento, pero lamentablemente no lo sé.
David Manners