आप द्रुपाल कोर को पैच योगदान कैसे देते हैं?


10

द्रुपाल कोर को पैच योगदान करने के लिए उचित प्रक्रिया क्या है?

मान लीजिए कि मुझे ड्रुपल कोर में एक बग मिला है, इसे ठीक करें, और एक पैच बनाएं । मैं इसे कैसे जमा करूं?

यदि बग Drupal 7 में है, तो क्या मुझे Drupal 8 में भी इसे ठीक करना है, और दो पैच सबमिट करना है? क्या यह प्रलेखन बग / सुधार पर भी लागू होता है?

क्या सभी पैच को एक इकाई परीक्षण की आवश्यकता होती है?


3
कुछ समय के लिए, मैं यह मानकर उत्तर ढूंढ रहा हूं कि मेरा पहले से ही drupal.org पर एक खाता है, git का उपयोग करना जानते हैं, कोर की जांच करना जानते हैं और git पैच तैयार करना जानते हैं। एक बार हमारे पास अच्छे उत्तर होने के बाद, हम इस प्रक्रिया को रेखांकित करने के लिए एनोटेट या उत्तर जोड़ सकते हैं।
mpdonadio

जैसा कि यह एक मुद्दे पर प्रतिक्रिया है जो एक मुख्य अनुरक्षक है जो meta.drupal.stackexchange.com/questions/2325 पर उठाया जाता है , पोस्ट नोटिस लागू किया जाएगा। हमें प्रक्रिया का अच्छा सारांश चाहिए, विशेष रूप से उपरोक्त प्रश्नों के बारे में। उत्तर जो अन्य पृष्ठों से लिंक करते हैं, उन्हें अस्वीकृत कर दिया जाएगा और / या हटा दिया जाएगा। मैं उम्मीद कर रहा हूं कि यह प्रश्न एक संसाधन के रूप में काम करेगा जो हम DA उपयोगकर्ताओं को तब बता सकते हैं जब उन्हें कोर के साथ कोई समस्या आती है।
mpdonadio

जवाबों:


6

यदि बग Drupal 7 में है, तो क्या मुझे Drupal 8 में भी इसे ठीक करना है, और दो पैच सबमिट करना है?

यदि बग विकसित किए जा रहे संस्करण में मौजूद है (इस मामले में Drupal 8), और पिछले संस्करण (Drupal 7), तो बग को पहले वर्तमान में विकसित संस्करण तय किया जाना चाहिए, और फिर पिछले संस्करण (ओं) पर।

यदि बग नवीनतम विकसित संस्करण में मौजूद नहीं है, उदाहरण के लिए क्योंकि बग एक फ़ंक्शन के लिए है जिसे हटा दिया गया है, या जिसे पहले ही बदल दिया गया है, तो वर्तमान में विकसित होने से पहले संस्करण के लिए पैच प्रदान किया जाना चाहिए।

निम्नलिखित वर्कफ़्लो है:

  • पहले पैच बनाया गया है, और समीक्षा के लिए प्रस्तुत किया गया है, सबसे हाल के संस्करण के लिए, भले ही अभी भी विकास के तहत (जैसे कि ड्रुप 8 के मामले में)
  • एक बार उस पैच को Drupal पर लागू किया जाता है, एक पैच जो पिछले संस्करण के लिए लागू होता है, बनाया जाता है और समीक्षाओं के लिए प्रस्तुत किया जाता है

आप एक ही समय में दो Drupal संस्करणों के लिए पैच बना सकते हैं, लेकिन चूंकि नवीनतम Drupal संस्करण के लिए पैच में बदलाव की आवश्यकता हो सकती है, वर्तमान में विकसित संस्करण के लिए पैच पर काम करना बेहतर है, दो अलग-अलग पैच पर काम करने की तुलना में जो दोनों की आवश्यकता होती है बदल जाओ।

यह भी देखें: backport नीति

क्या यह प्रलेखन बग / सुधार पर भी लागू होता है?

हाँ यह करता है। इस मामले में भी, यदि वर्तमान में विकसित संस्करण ने फ़ंक्शन / विधि को हटा दिया है, जिसमें दस्तावेज़ीकरण का जिक्र है, तो पिछले संस्करण के लिए पैच प्रदान करने की आवश्यकता है।

क्या सभी पैच को एक इकाई परीक्षण की आवश्यकता होती है?

यदि पैच प्रलेखन के लिए है, तो उसे परीक्षण की आवश्यकता नहीं है। Http://qa.drupal.org पर चल रहा टेस्ट बॉट पैच लागू होने के बाद Drupal कोड की जाँच करता है; यदि पैच वाक्यविन्यास त्रुटियों का परिचय देता है (उदाहरण के लिए क्योंकि टिप्पणी जरूरत से पहले बंद हो जाती है), तो परीक्षण बॉट परीक्षण चलाने से पहले पैच के बारे में एक त्रुटि की रिपोर्ट करेगा।

यदि पैच एक नई सुविधा के लिए है, तो परीक्षणों की आवश्यकता होती है।

यदि पैच बग को ठीक करने के लिए है, तो परीक्षणों को अनुरक्षकों से आवश्यक हो सकता है, अगर पहले से ही एक विशिष्ट सुविधा की जांच करने वाला कोई परीक्षण नहीं है। भविष्य में समान कोड को बदलते समय एक ही बग को फिर से पेश करने से बचने के लिए आमतौर पर परीक्षण आवश्यक होता है। यदि बग केवल एक चर है जिसे आरंभीकृत किया गया है, लेकिन कभी भी फ़ंक्शन / विधि से उपयोग नहीं किया जाता है, तो संभावना है कि परीक्षण की आवश्यकता नहीं है।


एक ही मुद्दे में कई मुख्य संस्करणों के लिए पैच हो सकते हैं?
mpdonadio

1
यदि समस्या एक से अधिक संस्करण पर लागू होती है, तो इसमें प्रत्येक रुचि वाले संस्करण के लिए पैच शामिल हो सकते हैं।
kiamlaluno

क्या यह हमेशा ऐसा होता है जहां डी 8 पैच पहले जमा किया जाता है, फिर डी 7 संस्करण? या क्या ऐसे मामले हैं जहां एक ही समय में दोनों जमा करना उचित है?
mpdonadio

आप दो अलग-अलग संस्करणों के लिए पैच सबमिट कर सकते हैं, लेकिन सबसे पहले लागू होने वाले पैच सबसे हाल के संस्करण के लिए है। अधिक हाल के संस्करण के लिए पहले पैच बनाना बेहतर है, क्योंकि पैच में बदलाव की आवश्यकता हो सकती है।
kiamlaluno

3

Drupal.org पर हर प्रोजेक्ट पेज में शीर्ष पर "संस्करण नियंत्रण" टैब होता है। यह न केवल विशिष्ट परियोजना के लिए सभी कोड रिपॉजिटरी विकल्पों का एक बड़ा अवलोकन देता है, सभी git कमांड उदाहरण भी परियोजना के लिए अनुरूप हैं। आप इसे अंतःक्रियात्मक रूप से एक विशिष्ट संस्करण में भी बदल सकते हैं।

Drupal core के लिए आपको http://drupal.org/project/drupal/git-instructions पर वह पेज मिलता है

फिर जब आपने अपना पैच बनाया है, तो आप बस पैच फ़ाइल को एक मुद्दे पर संलग्न करते हैं जो बताता है कि आप पैच क्या करते हैं।

इंगित करने के लिए दो महत्वपूर्ण बातें यह सुनिश्चित करना है कि पैच ".patch" के साथ समाप्त हो रहा है और "आवश्यकताओं की समीक्षा" की स्थिति निर्धारित करने के लिए। यह इसलिए कि टेस्टबोट इसे नोटिस करेगा और स्वचालित रूप से अपना परीक्षण चलाएगा।

नए कोड को हमेशा परीक्षणों के साथ रखने की आवश्यकता होती है ।

ध्यान दें कि यह परियोजनाओं द्वारा बंद करना संभव है और कुछ करते हैं। ड्रुपल कोर के लिए यह हालांकि सभी पैच का परीक्षण किया जाएगा।

आप http://drupal.org/contribute/development पर अधिक पा सकते हैं ।


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