Comment utiliser modman pour gérer les modules dans github?

12

J'essaie d'utiliser modman( https://github.com/colinmollenhour/modman ) pour gérer mes extensions dans github.

J'essaie d'abord d'ajouter une MagePsycho_Someextextension en tant que démo.

Jusqu'à présent, j'ai fait les étapes suivantes

/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. Développer l'extension 'MagePsycho_Someext' dans / var / www / magento-dir avec les fichiers suivants
    • app / etc / modules / MagePsycho_Someext.xml
    • app / code / local / MagePsycho / Someext / etc / config.xml
    • app / code / local / MagePsycho / Someext / Helper / Data.php

10 Ajout des informations de mappage de fichiers dans /var/www/magento-dir/.modman/Someext/modman en tant que

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

mais a obtenu les erreurs suivantes:

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

Notes : Je développe des extensions en /var/www/magento-dir/. Et souhaitez déployer ces extensions (une par référentiel) dans github en utilisant modman. Une fois le développement du module terminé, je souhaite que ces fichiers soient ajoutés au référentiel. Pour cela, j'ai utilisé le fichier .modman / * / modman pour le mappage. Mais incapable de le faire fonctionner.

Où et qu'est-ce qui me manque?
Ou est-ce la mauvaise approche?

[ÉDITER]

Je viens de réaliser que mon approche est juste en face. Tout d' abord, vous devez ajouter des fichiers d'extension et Modman avec correspondances de chemin, pousser à la prise en pension, puis retirez- le à l' aide modman clone.

Comment feriez-vous si vous développiez d'abord l'extension et utilisiez ensuite modman pour pousser les modifications du référentiel?

MagePsycho
la source
1
Je ne peux pas donner de réponse complète pour le moment, mais en général, vous ne devriez pas modifier des éléments dans le dossier .modman. C'est un bon point de départ github.com/colinmollenhour/modman/wiki/Tutorial
Zifius
Je ne sais pas où gérer les mappages. dans / var / www / MagePsycho_Extensions / Someext / modman? Si oui, vous devez pousser les modifications dans github et les tirer en utilisant la mise à jour de modman?
MagePsycho
Je ne comprends pas pourquoi vous faites directement référence à l'extension, si elle est dans un référentiel, vous pouvez la télécharger directement à partir de là.
Allan MacGregor
À l'intérieur de votre dépôt racine d'extension, il devrait y avoir un fichier modman avec les mappages définis.
Allan MacGregor
Attendez-vous essayez d'extraire l'extension de / var / www / magento-dir / dans un référentiel séparé?
Allan MacGregor

Réponses:

7

Enfin, j'ai trouvé le moyen de gérer les modules Magento à l'aide de modman (pas le moyen parfait, mais cela fonctionne pour moi)

Hypothèses

/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. Développez maintenant l'extension 'MagePsycho_Someext' dans /var/www/magento-dir/.modman/Someext avec les fichiers suivants
    • app / etc / modules / MagePsycho_Someext.xml
    • app / code / local / MagePsycho / Someext / etc / config.xml
    • app / code / local / MagePsycho / Someext / Helper / Data.php

10 Ajoutez les informations de mappage des fichiers dans /var/www/magento-dir/.modman/Someext/modman en tant que

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 C'est tout.

En résumé, vous travaillerez sur le répertoire magento-dir / .modman / Someext qui est lié à magento-dir. Chaque fois que vous ajoutez de nouveaux fichiers à votre extension, vous devez mettre à jour le fichier modman et exécuter modman repairce qui maintient les liens symboliques à jour.

Si quelqu'un a une meilleure approche, veuillez partager.

MagePsycho
la source
6

Donc, mon conseil ici est que vous avez de toute façon une copie locale de l'extension, puis utilisez les commandes linket deployplutôt que lesclone

Dans votre cas, vous appelleriez simplement:

  1. modman init
  2. modman link ../Your_Extension_Path (s'il s'agit d'une seule extension)
  3. modman deploy Your_Extension_Path

Cette méthode nécessite que vous ayez le fichier modman complet dans votre répertoire d'extension avec des mappages de fichiers, mais d'après vos commentaires, il semble que vous l'ayez déjà.

D'après ma compréhension, les fichiers doivent d'abord être dans le répertoire d'extension, ils seront ensuite liés au répertoire magento, puis lorsque vous apporterez de futures modifications aux fichiers sous magento, les fichiers d'extension sont également modifiés. Peut-être qu'il existe un moyen de créer une extension modman à partir d'un répertoire magento mais malheureusement je ne le sais pas.

Un moyen simple de copier des fichiers de Magento vers un répertoire d'extension est d'avoir deux explorateurs de fenêtres ouverts pour Windows et de les copier ou d'utiliser quelque chose comme Midnight Commander

Remarque: je n'ai utilisé que le modman pour la version php mais ce processus fonctionne pour cela

David Manners
la source
/ var / www / MagePsycho_Extensions / aura plus d'extensions disons: Extension1, Extension2 avec différents référentiels. Cela fera-t-il une différence en utilisant votre approche?
MagePsycho
Je ne sais pas, mais je suppose que vous auriez juste besoin de deux niveaux pour créer un lien ../MagePsycho_extenstion/Extension1, puis le déployer serait MagePsycho_extenstion/Extension1ou Extension1je ne suis pas sûr sans l'essayer.
David Manners
Après avoir suivi votre approche de liaison et de déploiement, donne la même erreur AVERTISSEMENT: la cible n'existe pas (.modman / MagePsycho_Someext / modman): app / etc / modules / MagePsycho_Someext.xml app / etc / modules / MagePsycho_Someext.xml
MagePsycho
@MagePsycho et vous avez réellement ce fichier dans votre extension?
David Manners
2
D'après ma compréhension, les fichiers doivent d'abord être dans le répertoire d'extension, ils seront ensuite liés au répertoire magento, puis lorsque vous apporterez de futures modifications aux fichiers sous magento, les fichiers d'extension sont également modifiés. Peut-être qu'il existe un moyen de créer une extension modman à partir d'un répertoire magento mais malheureusement je ne le sais pas.
David Manners