Como usar o modman para gerenciar módulos no github?

12

Estou tentando usar modman( https://github.com/colinmollenhour/modman ) para gerenciar minhas extensões no github.

Primeiro, estou tentando adicionar a MagePsycho_Someextextensão como demonstração.

Até agora, eu fiz os seguintes passos

/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. Desenvolvida a extensão 'MagePsycho_Someext' em / var / www / magento-dir com os seguintes arquivos
    • app / etc / modules / MagePsycho_Someext.xml
    • app / code / local / MagePsycho / Someext / etc / config.xml
    • app / code / local / MagePsycho / Someext / Helper / Data.php

10 Adicionadas as informações de mapeamento de arquivos em /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

mas obteve os seguintes erros:

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

Notas : Estou desenvolvendo extensões no /var/www/magento-dir/. E deseja implantar essas extensões (uma por repositório) no github usando o modman. Quando terminar o desenvolvimento do módulo, desejo que esses arquivos sejam adicionados ao repositório. Para isso, usei o arquivo .modman / * / modman para mapeamento. Mas incapaz de fazê-lo funcionar.

Onde e o que estou perdendo?
Ou essa é a abordagem incorreta?

[EDITAR]

Acabei de perceber que minha abordagem é exatamente oposta. Primeiro, você deve adicionar arquivos de extensão e modman com mapeamentos de caminho, empurrá-lo para o repositório e puxá-lo usando modman clone.

Como você faria se primeiro desenvolvesse a extensão e depois usasse o modman para fazer alterações no repositório?

Mago Psico
fonte
1
Não é possível dar uma resposta abrangente no momento, mas geralmente você não deve modificar as coisas na pasta .modman. Este é um bom ponto de partida github.com/colinmollenhour/modman/wiki/Tutorial
Zifius
Não tenho certeza de onde gerenciar os mapeamentos. em / var / www / MagePsycho_Extensions / Someext / modman? Se sim, tem que enviar as alterações para o github e puxá-lo usando o modman update?
MagePsycho
Não entendo por que você está referenciando a extensão diretamente. Se estiver em um repositório, você pode baixá-la diretamente a partir daí.
Allan MacGregor
Dentro do repositório raiz da extensão, deve haver um arquivo modman com os mapeamentos definidos.
Allan MacGregor
Aguarde, você está tentando extrair a extensão de / var / www / magento-dir / para um repositório separado?
Allan MacGregor

Respostas:

7

Finalmente, descobri a maneira de gerenciar os módulos Magento usando o modman (embora não seja o caminho perfeito, mas funciona para mim)

Premissas

/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. Agora desenvolva a extensão 'MagePsycho_Someext' em /var/www/magento-dir/.modman/Someext com os seguintes arquivos
    • app / etc / modules / MagePsycho_Someext.xml
    • app / code / local / MagePsycho / Someext / etc / config.xml
    • app / code / local / MagePsycho / Someext / Helper / Data.php

10 Adicione as informações de mapeamento de arquivos em /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 Isso é tudo.

Em resumo, você estará trabalhando no diretório magento-dir / .modman / Someext, que está vinculado ao magento-dir. Sempre que você adiciona novos arquivos à sua extensão, você deve atualizar o arquivo modman e executar, modman repairmantendo os links simbólicos atualizados.

Se alguém tiver uma abordagem melhor, compartilhe.

Mago Psico
fonte
6

Portanto, meu conselho aqui é desde que você tem uma cópia local da extensão de qualquer maneira, em seguida, usar o linke deploycomandos em vez doclone

No seu caso, você simplesmente chamaria:

  1. modman init
  2. modman link ../Your_Extension_Path (se esta for uma extensão única)
  3. modman deploy Your_Extension_Path

Esse método precisa que você tenha o arquivo modman completo no diretório de extensão com mapeamentos de arquivos, mas pelos seus comentários, parece que você já o possui.

Pelo meu entendimento, os arquivos precisam estar no diretório de extensão primeiro, eles serão vinculados ao diretório magento; portanto, quando você fizer edições futuras nos arquivos no magento, os arquivos de extensão também serão alterados. Talvez exista uma maneira de criar uma extensão modman a partir de um diretório magento, mas, infelizmente, não o conheço.

Uma maneira simples de copiar arquivos do Magento para um diretório de extensão é ter dois exploradores de janelas abertos para janelas e copiá-los ou usar algo como o comandante da meia-noite

Nota: Eu usei apenas o modman para a versão php, mas esse processo funciona para esse

David Manners
fonte
/ var / www / MagePsycho_Extensions / terá mais extensões, como: Extension1, Extension2 com diferentes repositórios. Isso fará diferença usando sua abordagem?
MagePsycho
não tenho certeza, mas acho que você precisaria apenas de dois níveis para vincular como ../MagePsycho_extenstion/Extension1e, em seguida, a implantação seria MagePsycho_extenstion/Extension1ou Extension1não tenho certeza sem experimentar.
David Manners
Depois de seguir sua abordagem de link e implantação, ocorre o mesmo erro AVISO: O destino não existe (.modman / MagePsycho_Someext / modman): app / etc / modules / MagePsycho_Someext.xml app / etc / modules / MagePsycho_Someext.xml
MagePsycho
@MagePsycho e você realmente tem esse arquivo na sua extensão?
David Manners
2
Pelo meu entendimento, os arquivos precisam estar no diretório de extensão primeiro, eles serão vinculados ao diretório magento; portanto, quando você fizer edições futuras nos arquivos no magento, os arquivos de extensão também serão alterados. Talvez exista uma maneira de criar uma extensão modman a partir de um diretório magento, mas, infelizmente, não o conheço.
David Manners