Magento 1: मेरे मॉड्यूल विकास वर्कफ़्लो में सुधार (मोडमैन, संगीतकार, गिट)


14

यह कुछ ऐसा है जो मैंने कुछ समय के लिए ध्यान में रखा है, लेकिन मैं इसे करने के लिए सही तरीका नहीं खोज पाया।

इसलिए मूल रूप से, मैं 6 अलग-अलग वेबसाइटों के साथ काम कर रहा हूं, सभी चल रहे हैं Magento CE 1.9.2+

उन वेबसाइटों पर, मैं उन एक्सटेंशनों का एक गुच्छा उपयोग कर रहा हूं जो मैं और मेरे साथ काम करने वाली टीम ने विकसित किए हैं (यहां हम 50+ एक्सटेंशन पर बात कर रहे हैं) और उन एक्सटेंशनों के लिए कोड बिटबकैट पर संग्रहीत है। इसलिए मैं उन एक्सटेंशन को प्रबंधित करने वाला एकमात्र व्यक्ति नहीं हूं, हम उन पर काम कर रहे 3 लोग हैं।

फिलहाल, जब मैं उन एक्सटेंशनों में से एक के लिए एक फीचर जोड़ना / बग फिक्स करना चाहता हूं, तो यहां मेरा वर्कफ़्लो है:

  • विस्तार के अंतिम संस्करण को मोडमैन के माध्यम से वेबसाइट पर स्थापित करें
  • बग को ठीक करें / एक सुविधा / परीक्षण जोड़ें
  • मैन्युअल रूप से परिवर्तनों को एक स्थानीय फ़ोल्डर में कॉपी करें जिसमें मेरे सभी एक्सटेंशन हैं
  • बिटबकेट (1 बिटबकेट रेपो प्रति मॉड्यूल) के लिए इस एक्सटेंशन फ़ोल्डर से जीआईटी के माध्यम से प्रतिबद्ध और धक्का दें)
  • फिर मॉड्यूल का नया संस्करण मोडमैन के माध्यम से स्थापित किया जा सकता है

महत्वपूर्ण नोट: मैं यहां हार्डकॉपी के साथ मॉडमैन का उपयोग कर रहा हूं, कोई सिमिलिंक नहीं।

मेरी सबसे बड़ी समस्या को बोल्ड में हाइलाइट किया गया है: मैं इस कदम को छोड़ने में सक्षम होना चाहता हूं क्योंकि यह समस्याओं का एक बड़ा कारण है (कुछ फाइलें कभी-कभी भूल जाती हैं, गलत कॉपी / पेस्ट होती हैं, जिसमें मानव कार्रवाई शामिल होती है)।

इसलिए, मैं इस मैनुअल कॉपी / पेस्ट स्टेप से छुटकारा पाने के लिए अपने वर्कफ़्लो में कैसे सुधार कर सकता हूं? मैं यहाँ सुझावों के लिए खुला हूँ।


क्या आपने Submodulesगिट की सुविधा की कोशिश की है ?
गोपाल पटेल

आप हार्डकॉपी का उपयोग क्यों कर रहे हैं? सिम्बलिंक के साथ आपको मॉडेम फ़ोल्डर के नीचे एक git क्लोन होना चाहिए। तो बस जगह में संपादित करें और बस धक्का।
फोमन में क्रिस्टोफ

@ क्रिस्टोफैटफोमन को मुझे स्पष्ट करना चाहिए था। देव में से एक विंडोज चला रहा है और इस तरह हम
सहानुभूति के


1
@RaphaelatDigitalPianism विन्डोज़ समस्या के लिए github.com/sitewards/modman-php
डेविड मैनर्स

जवाबों:


8

मैं बहुत बार निम्नलिखित दृष्टिकोण लेता हूं जो कि सुंदर रूपरेखा अज्ञेय है।

  1. उस मॉड्यूल को देखें जिसे आप संपादित करना चाहते हैं /path/to/my/module
  2. अपने काम के लिए एक शाखा बनाएं (संबंधित टैग आदि की बंद शाखा)।
  3. इस शाखा के लिए प्रतिबद्ध काम (धक्का मत करो)।
  4. अपनी परियोजना में, मॉड्यूल की अपनी स्थानीय प्रति के लिए एक स्थानीय भंडार को परिभाषित करें। ऐसा इसलिए है ताकि आपका प्रोजेक्ट आपके LFS से अप्रकाशित परिवर्तनों को खींच सके।

    {
        "repositories": [
        {
            "type": "path",
            "url": "/path/to/my/module"
        }
    ],
  5. आप तब संगीतकार को अपनी विशिष्ट विकास शाखा की आवश्यकता कर सकते हैं (इसलिए जब तक आपकी परियोजनाएं minimum-stabilityइसे अनुमति देती हैं)।

    composer require namespace/module dev-branch-name-here
  6. आप में प्रतिबद्ध /path/to/my/module, composer update namespace/moduleपरियोजना में, यह स्थापित करने और परीक्षण को देखने के।

  7. जब आप अपना कमिट पूरा कर लेते हैं और पुश अप करते हैं।

मुझे लगता है कि यह दृष्टिकोण https://github.com/Cotya/magento-composer-installer का उपयोग करके M1 मॉड्यूल के लिए अच्छी तरह से काम करता है , क्योंकि सिम्प्लाइड इंस्टाल में कभी-कभी दर्द हो सकता है और नई निर्देशिकाओं या पथों को जोड़ते समय आपकी यात्रा हो सकती है जो पहले सिम्लिंकड थे। मोडमैन द्वारा।

लिंक जो रुचि ले सकते हैं

डिबगिंग

  1. composer require namespace/module dev-branch-name-here -vvvउन शाखाओं को देखने के लिए उपयोग करें जिनका आप स्थानीय स्तर पर उपयोग कर सकते हैं।

  2. डबल चेक जो उस प्रोजेक्ट में minimum-stabilityसेट किया गया है जिसे devआप मॉड्यूल में इंस्टॉल कर रहे हैं।

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

पैट्रिक श्विसो की टिप्पणी यहाँ पढ़कर मिली ।

यदि अन्य पैकेजों में आपके द्वारा परिवर्तित किए जा रहे पैकेज पर आवश्यकताएं हैं, तो आपकी विकास शाखा उन आवश्यकताओं को पूरा करने में विफल हो सकती है (जिसके परिणामस्वरूप "आपकी आवश्यकताओं को पैकेजों के एक स्थापित सेट पर हल नहीं किया जा सकता है")। इसे ठीक करने के लिए, आप एक इनलाइन उपनाम कर सकते हैं कि अन्य सभी पैकेज इसे एक विशिष्ट संस्करण के रूप में देखेंगे।

संक्षेप में, आप composer.jsonइसे विकसित करने के लिए एक विशेष संस्करण के लिए मजबूर करने के लिए अद्यतन कर सकते हैं , इसे इस तरह पढ़ें:

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

एक और दिलचस्प दृष्टिकोण यहाँ। आपके इनपुट के लिए धन्यवाद
डिजिटल पियानोवाद पर राफेल

1
यह अच्छा है। मैं pathप्रोजेक्ट मॉड्यूल्स के लिए टाइप रिपॉस का उपयोग करता हूं जिन्हें मैं फिर से उपयोग नहीं करता हूं और फिर मॉड्यूल के लिए गिट या पैकगिस्ट का उपयोग करता हूं।
डेविड मैनर्स

1
@DavidManners मैं इस प्रवाह को सतियों के संयोजन में उपयोग करता हूं। मॉड्यूल सतियों में स्थायी रूप से होते हैं, लेकिन मैं कुछ भी मेनलाइन में नहीं डालना चाहता जब तक कि मैंने स्थानीय रूप से परीक्षण नहीं किया है। इसलिए यह उपरोक्त वर्कफ़्लो का उपयोग करता है, और फिर पुश और टैग करता है और इसे लेने के लिए satis की प्रतीक्षा करता है।
ल्यूक रॉजर्स

@LukeRodgers, इस वर्कफ़्लो के साथ आप बिल्कुल भी modman का उपयोग नहीं करते हैं और आपकी सभी मॉड्यूल फ़ाइलें magento फ़ाइलों के अंदर रखी जाती हैं? (आपके पास अपने एक्सटेंशन के लिए .modman फ़ोल्डर नहीं है)। क्या मैंने इसे सही समझा?
MployBy

अरे @MloyBy, मैं सीधे modman का उपयोग नहीं करते। हालांकि, अगर Cotya / magento- संगीतकार-इंस्टॉलर इसे हुड के तहत उपयोग करता है, तो मुझे यकीन नहीं है कि जब से मैंने एक नया magento1 मॉड्यूल सेट किया है, तब तक यह हो गया है।
ल्यूक रॉजर्स

6

मैं यहाँ हार्डकॉपी के साथ मोडमैन का उपयोग कर रहा हूँ, कोई सिम्लिंक नहीं।

आपकी समस्या है। यदि आप अपनी दुकान की तैनाती के लिए इस सेटअप को नहीं बदल सकते हैं, तो एक अलग उदाहरण पर साझा एक्सटेंशन पर काम करने पर विचार करें जहां आप सिम्बलिंक्स के साथ मॉडमैन का उपयोग करते हैं।

मैं एओई संगीतकार इंस्टॉलर के साथ संगीतकार का उपयोग विस्तार रिपॉजिटरी को सीधे क्लोन .modmanकरने के लिए करता हूं, लेकिन मॉडेम के साथ गिट से मॉड्यूल स्थापित करना मैं भी मानता हूं। किसी भी तरह से आप मॉड्यूल गिट रिपॉजिटरी में सीधे काम कर सकते हैं।


हाँ जैसा कि मैंने टिप्पणियों में कहा था, इसका कारण यह है कि विंडोज़ और IIRC में से एक देव उपयोग करता है। हमने कुछ मुद्दों पर उनके साथ
सहानुभूति

6
ओह, मैंने वह नहीं देखा। उस देव को वीएम :)
फेबियन शेंगलर

4

तो आपके लिए यहां मेरा विचार मैगेंटो 1 के लिए भी संगीतकार के साथ काम करना है। यदि आपके पास अपना स्वयं का पैकैगिस्ट है , जिसे प्रबंधित करना बहुत कठिन नहीं है, तो aws और google मेघ जगह पर हैं, या आप सार्वजनिक packagist का उपयोग कर सकते हैं। आपके Magento1 दुकानों में नए संस्करणों तक आपकी "आसान" पहुंच होगी।

इसका मतलब यह है कि जब कोई नया संस्करण सामने आता है तो आप composer updateउसके लिए प्रतिलिपि प्रक्रिया को स्वचालित कर सकते हैं।

संगीतकार के माध्यम से Magento1 के लिए https://github.com/Cotya/magento-composer-installer पर एक नज़र डालें ।

इस दृष्टिकोण के साथ आप सीधे विक्रेता फ़ोल्डर के तहत गिट रिपॉजिटरी पर भी काम कर सकते हैं यदि आपके पास इसे कॉपी करने के लिए सेट है .gitऔर इसलिए एक अलग चेकआउट किए बिना अपने रिपॉज में वापस बदल सकते हैं। हालांकि ध्यान दें कि आपको यहां सावधान रहना होगा और सुनिश्चित करना होगा कि आप जानते हैं कि आप किस शाखा में हैं अन्यथा आप अपना कोड हटा सकते हैं (ऐसा कुछ बार किया गया है)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.