Magento 1: Modül geliştirme iş akışımı iyileştirme (Modman, besteci, git)


14

Bu oldukça uzun süredir aklımda olan bir şey ama bunu yapmak için doğru yöntemi bulamıyorum.

Temel olarak, hepsi Magento CE 1.9.2+ çalıştıran 6 farklı web sitesiyle çalışıyorum

Bu web sitelerinde, ben ve birlikte çalıştığım ekibin geliştirdiği bir sürü uzantı kullanıyorum (burada 50'den fazla uzantı konuşuyoruz) ve bu uzantıların kodu Bitbucket'te saklanıyor. Bu uzantıları yöneten tek kişi ben değilim, bu uzantılar üzerinde çalışan 3 kişiyiz.

Şu anda, bu uzantılardan biri için bir özellik eklemek / bir hatayı düzeltmek istediğimde, iş akışım:

  • Uzantının son sürümünü Modman üzerinden web sitesinden birine yükleyin
  • Hatayı düzeltin / özellik / test ekleyin
  • Değişiklikleri manuel olarak tüm uzantılarımı içeren yerel bir klasöre kopyala
  • GIT üzerinden bu uzantı klasöründen Bitbucket'e (modül başına 1 Bitbucket repo) geçin ve itin
  • Daha sonra modülün yeni sürümü Modman ile kurulabilir

Önemli not: Burada basılı kopya ile modman kullanıyorum, symlink yok.

En büyük sorunum koyu renkle vurgulandı: Bu adımı atlamak istiyorum çünkü problemlerin büyük bir nedeni (bazı dosyalar bazen unutuluyor, yanlış kopyala / yapıştır, insan eylemini içeriyor).

Peki, bu manuel kopyalama / yapıştırma adımından kurtulmak için iş akışımı nasıl geliştirebilirim? Burada önerilere açığım.


Submodulesgit özelliğini denedin mi?
Gopal Patel

Neden basılı kopya kullanıyorsunuz? Symlinks ile sadece modman klasörü altında bir git klonuna sahip olmalısınız. Sonra sadece yerinde düzenleyin ve itin.
Kristof at Fooman

@ KristofatFooman Bunu açıklığa kavuşturmalıydım. Geliştiricilerden biri Windows çalıştırıyor ve bu nedenle sembollerle ilgili sorunlar yaşadık ^^
Raphael at Digital Pianism


1
Windows sorunu için @RaphaelatDigitalPianism
David Manners

Yanıtlar:


8

Sıklıkla çerçeve agnostik olan aşağıdaki yaklaşımı benimserim.

  1. Düzenlemek istediğiniz modülü kontrol edin /path/to/my/module
  2. İş parçanız için bir dal oluşturun (ilgili etiketten dallanmış vb.).
  3. Bu şubeye çalışın (itmeyin).
  4. Projenizde, modülün yerel kopyasına yerel bir depo tanımlayın. Bu, projenizin LFS'nizden itilmemiş değişiklikleri alabilmesi içindir.

    {
        "repositories": [
        {
            "type": "path",
            "url": "/path/to/my/module"
        }
    ],
  5. Daha sonra besteci özel geliştirme dalınızı gerektirebilir (projelerinizin minimum-stabilityizin verdiği sürece).

    composer require namespace/module dev-branch-name-here
  6. İçeri işlemek /path/to/my/module, composer update namespace/moduleprojede, bu yüklemek ve test bkz.

  7. Tamamladığında taahhütlerini yerine getir ve it.

Bu yaklaşımın https://github.com/Cotya/magento-composer-installer kullanarak M1 modülleri için iyi çalıştığını düşünüyorum; modman tarafından.

İlginizi çekebilecek bağlantılar

Hata ayıklama

  1. Kullanım composer require namespace/module dev-branch-name-here -vvvyerel kullanabilirsiniz dalları görmek için.

  2. Modülü taktığınız projede minimum-stabilityayarlanmış olan iki kez kontrol edin dev.

  3. Your requirements could not be resolved to an installable set

Patrick Schwisow'un yorumunu burada okuyarak buldum .

Diğer paketlerin değiştirdiğiniz paket üzerinde gereksinimleri varsa, geliştirme bölümünüz bu gereksinimleri karşılayamayabilir (bu da "Gereksinimleriniz yüklenebilir bir paket kümesine çözümlenemedi" olarak sonuçlanır). Bunu düzeltmek için, diğer tüm paketlerin belirli bir sürüm olarak göreceği bir satır içi takma ad yapabilirsiniz.

Kısacası composer.json, geliştirirken belirli bir sürüme zorlamak için güncelleyebilirsiniz, aşağıdaki gibi okuyun:

"namespace/module": "dev-branch-name-here as 1.2.3"

Burada ilginç bir yaklaşım daha var.
Girişiniz

1
Bu iyi bir tane. pathYeniden kullanmayacağım proje modülleri için tip depoları kullanma eğilimindeyim ve sonra yeniden kullanacağım modüller için git veya paketleyici.
David Manners

1
@DavidManners Bu akışı yukarıdaki satis ile birlikte kullanıyorum. Modüller kalıcı olarak satis'tedir, ancak yerel olarak test edip çalışana kadar hiçbir şeyi ana hatta itmek istemiyorum. Bu yüzden yukarıdaki iş akışını kullanın ve ardından itin ve etiketleyin ve satis'in onu almasını bekleyin.
Luke Rodgers

@LukeRodgers, bu iş akışı ile hiç modman kullanmıyorsunuz ve tüm modül dosyalarınız magento dosyalarına yerleştiriliyor mu? (uzantılarınız için .modman klasörünüz yok). Doğru anladım mı?
MployBy

Hey @MployBy, doğrudan modman kullanmıyorum. Ancak, Cotya / magento-composer-installer'ın davlumbaz altında kullanıp kullanmadığından emin değilim, yeni bir magento1 modülü kurduğumdan beri bir süre oldu.
Luke Rodgers

6

Ben burada basılı kopya ile modman kullanıyorum, symlink yok.

Sorun burada. Mağaza dağıtımlarınız için bu kurulumu değiştiremiyorsanız, bağlantı noktaları ile modman kullandığınız ayrı bir örnek üzerinde paylaşılan uzantılar üzerinde çalışmayı düşünün.

Bestecileri AOE besteci yükleyicisiyle birlikte kullanıyorum , uzantı depolarını doğrudan klonlayabiliyorum .modmanama Git'ten modman ile modüller yüklemek de sanırım. Her iki durumda da doğrudan Git veri havuzunda çalışabilirsiniz.


Evet, yorumlarda söylediğim gibi, geliştirici Windows ve IIRC'yi kullanıyor, sembolik bağlantıları kullanarak onunla bazı sorunlar yaşadık
Raphael, Digital Pianism'de

6
Oh, görmedim. O dev bir VM verin :)
Fabian Schmengler

4

Benim için buradaki fikrim Magento1 için bile besteci ile çalışmaya başlamak. Kendi paketleyiciniz varsa , şimdi yönetmek çok zor değil, aws ve google bulut yerinde ya da herkese açık paketleyiciyi kullanabilirsiniz. Magento1 mağazalarınızdaki yeni sürümlere "kolay" erişiminiz olur.

Bu, yeni bir sürüm çıktığında bunu yapabileceğiniz composer updateve kopyalama işlemini sizin için otomatik hale getireceği anlamına gelir .

Besteci aracılığıyla Magento1 için https://github.com/Cotya/magento-composer-installer'a göz atın .

Bu yaklaşımla, kopyalanacak şekilde ayarladıysanız, satıcı klasörünün altındaki git deposunda da doğrudan çalışabilirsiniz .gitve böylece ayrı bir ödeme yapmadan değiştirilen depolarına geri dönebilirsiniz. Burada dikkatli olmanız ve hangi dalda olduğunuzu bildiğinizden emin olmanıza rağmen, aksi takdirde kodunuzu kaldırabilirsiniz (birkaç kez yapılır).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.