Come usare modman per gestire i moduli in github?


12

Sto cercando di utilizzare modman( https://github.com/colinmollenhour/modman ) per gestire le mie estensioni in github.

Per prima cosa sto provando ad aggiungere l' MagePsycho_Someextestensione come demo.

Finora ho fatto i seguenti passi

/var/www/magento-dir/ -> My Magento Installation Dir
/var/www/MagePsycho_Extensions/ --> Git Repository Dir
  1. cd /var/www/MagePsycho_Extensions/
  2. git clone git@github.com: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 git@github.com:magepsycho/Someext.git
  9. Sviluppata l'estensione 'MagePsycho_Someext' in / var / www / magento-dir con i seguenti file
    • app / etc / modules / MagePsycho_Someext.xml
    • app / code / local / MagePsycho / Someext / etc / config.xml
    • app / code / local / MagePsycho / Someext / Helper / Data.php

10 Aggiunte le informazioni sulla mappatura dei file in /var/www/magento-dir/.modman/Someext/modman come

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

ma ho ottenuto i seguenti errori:

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

Note : sto sviluppando estensioni in /var/www/magento-dir/. E vuoi distribuire queste estensioni (una per repository) in github usando modman. Quando ho finito con lo sviluppo del modulo, voglio che quei file vengano aggiunti al repository. Per questo ho usato il file .modman / * / modman per la mappatura. Ma incapace di farlo funzionare.

Dove e cosa mi sto perdendo?
O è questo l'approccio errato?

[MODIFICARE]

Mi sono appena reso conto che il mio approccio è esattamente l'opposto. Innanzitutto, devi aggiungere i file di estensione e modman con i mapping dei percorsi, spingerli nel repository e quindi estrarlo utilizzando modman clone.

Come faresti se sviluppassi prima l'estensione e poi utilizzassi modman per inviare modifiche al repository?


1
Non è possibile fornire una risposta completa al momento, ma in genere non è necessario modificare le cose nella cartella .modman. Questo è un buon punto di partenza github.com/colinmollenhour/modman/wiki/Tutorial
Zifius

Non sono sicuro di dove gestire i mapping. in / var / www / MagePsycho_Extensions / Someext / modman? Se sì, allora devi inviare le modifiche a github e estrarlo usando modman update?
MagoPsycho,

Non capisco perché stai facendo riferimento direttamente all'estensione, se si trova in un repository puoi scaricarlo direttamente da lì.
Allan MacGregor,

All'interno del repository root dell'estensione dovrebbe esserci un file modman con i mapping definiti.
Allan MacGregor,

Aspetta stai cercando di estrarre l'estensione da / var / www / magento-dir / in un repository separato?
Allan MacGregor,

Risposte:


7

Alla fine ho capito come gestire i moduli Magento usando modman (non è il modo perfetto, ma funziona per me)

ipotesi

/var/www/magento-dir/ -> My Magento Installation Dir
/var/www/MagePsycho_Extensions/ --> Git Repo Dir
  1. cd /var/www/MagePsycho_Extensions/
  2. git clone git@github.com: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. Ora sviluppa l'estensione 'MagePsycho_Someext' in /var/www/magento-dir/.modman/Someext con i seguenti file
    • app / etc / modules / MagePsycho_Someext.xml
    • app / code / local / MagePsycho / Someext / etc / config.xml
    • app / code / local / MagePsycho / Someext / Helper / Data.php

10 Aggiungi le informazioni sulla mappatura dei file in /var/www/magento-dir/.modman/Someext/modman come

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 Questo è tutto.

In breve, lavorerai sulla directory magento-dir / .modman / Someext che è collegata a magento-dir. Ogni volta che aggiungi nuovi file alla tua estensione, devi aggiornare ed eseguire il file modman modman repairche mantiene aggiornati i link simbolici.

Se qualcuno ha un approccio migliore, ti preghiamo di condividere.


6

Quindi il mio consiglio qui è dato che hai comunque una copia locale dell'estensione quindi usa i comandi linke deployanzichéclone

Nel tuo caso chiameresti semplicemente:

  1. modman init
  2. modman link ../Your_Extension_Path (se questa è una singola estensione)
  3. modman deploy Your_Extension_Path

Questo metodo richiede che il file modman sia completo nella directory delle estensioni con i mapping dei file, ma dai tuoi commenti sembra che tu lo abbia già.

Da quanto ho capito, i file devono prima trovarsi nella directory di estensione, quindi saranno collegati alla directory di magento, quindi quando si effettuano modifiche future ai file di magento, vengono modificati anche i file di estensione. Forse c'è un modo per creare un'estensione modman da una directory magento ma purtroppo non lo so.

Un modo semplice per copiare i file da Magento in una directory di estensione è avere due esploratori di Windows aperti per Windows e copiarli o usare qualcosa come il comandante di mezzanotte

Nota: ho usato il modman solo per la versione php, ma questo processo funziona per questo


/ var / www / MagePsycho_Extensions / avranno più estensioni da dire: Extension1, Extension2 con repository diversi. Farà la differenza usando il tuo approccio?
MagoPsycho,

non sono sicuro, ma suppongo che avresti solo bisogno di due livelli per collegare come ../MagePsycho_extenstion/Extension1e quindi distribuire sarebbe MagePsycho_extenstion/Extension1o Extension1non sono sicuro senza provarlo.
David Manners,

Dopo aver seguito il tuo approccio link & deploy, dà lo stesso errore ATTENZIONE: Target non esiste (.modman / MagePsycho_Someext / modman): app / etc / modules / MagePsycho_Someext.xml app / etc / modules / MagePsycho_Someext.xml
MagePsycho

@MagePsycho e hai effettivamente questo file nella tua estensione?
David Manners,

2
Da quanto ho capito, i file devono prima trovarsi nella directory di estensione, quindi saranno collegati alla directory di magento, quindi quando si effettuano modifiche future ai file di magento, vengono modificati anche i file di estensione. Forse c'è un modo per creare un'estensione modman da una directory magento ma purtroppo non lo so.
David Manners,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.