बग फिक्स पैच किसकी जिम्मेदारी है?


12

ओपन सोर्स प्रोजेक्ट्स में कई बार उत्पन्न होने वाली स्थिति इस तरह से होती है:

  1. मुझे हमारी तैनाती में एक बग दिखाई देता है, और एक त्वरित हैक पैच का पता चलता है। (उदाहरण के लिए, केवल उस कोड की टिप्पणी करना, जिसकी हमें वास्तव में आवश्यकता नहीं है।)
  2. मैं वास्तविक बग का पता लगाने, एक पैच के साथ आने के लिए अतिरिक्त प्रयास का एक छोटा सा खर्च करता हूं, और इसे गिट पुल अनुरोध, या इसी तरह से जमा करता हूं।
  3. मेरा पुल अनुरोध अस्वीकार कर दिया गया है। शायद पैच अपूर्ण था (उदाहरण के लिए, इसमें शामिल लाइनें नहीं होनी चाहिए), शायद यह कोडिंग शैली का उल्लंघन करता था, शायद इसमें अन्य प्रभाव थे। या शायद मैंने गिट में कुछ गलत किया था - पुल अनुरोध को बगावत या कुछ और होना चाहिए था। एक अनुचर पैच को बेहतर बनाने के बारे में प्रतिक्रिया प्रदान करता है, और अनुरोध करता है कि मैं इसे फिर से सबमिट करता हूं।

इस बिंदु पर मैं उलझन में हूं कि मुझे कितनी दूर आगे बढ़ना चाहिए। जहां तक ​​मेरा संबंध है, मुझे कोई समस्या नहीं है: मैंने इसे चरण 1 में वापस निर्धारित किया है। मैंने इस मुद्दे की सूचना दी है, मैंने इसे दूसरों के साथ ठीक करने के लिए भी कदम उठाए हैं। लेकिन मुझे नहीं लगता कि यह "मेरा" पुल अनुरोध है, इसलिए मुझे नहीं लगता कि पैच सुधारने की जिम्मेदारी मेरे पास आनी चाहिए।

एक विशेष स्थिति जो मुझे परेशान करती है, मेरे पैच की विफलताओं के बारे में चर्चा करने के बाद, हम एक मेलिंग सूची पर समझौते पर पहुंचते हैं कि सही पैच क्या होगा (यानी, इसे कैसे व्यवहार करना चाहिए, कभी-कभी कोड की हर पंक्ति सहित वर्तनी होती है)। फिर, यह वास्तव में पैच उत्पन्न करने और प्रस्तुत करने के लिए मेरी जिम्मेदारी माना जाता है।

क्या इन स्थितियों में एक मानक शिष्टाचार है? उनका समाधान कैसे किया जाता है? क्या मेरी प्रतिक्रिया असामान्य है? आप अपने बग फिक्स को स्वीकार करने के लिए कितनी दूर जाने की उम्मीद कर रहे हैं?

(ध्यान दें जब मैं "ओपन सोर्स प्रोजेक्ट" कहता हूं, तो इनमें से कुछ बहुत छोटे हैं, लेकिन शौक नहीं हो सकते हैं - बस छोटे सॉफ्टवेयर प्रोजेक्ट जो कई संगठनों के लिए उपयोग किए जाते हैं, जो उन पर काम करने के लिए डेवलपर संसाधन करते हैं। मामले में स्पष्ट जवाब। "पैच को ठीक करें और फिर से सबमिट करें", समझें कि मेरे नियोक्ता के पास सामान पर काम करने के लिए जिम्मेदारियां हैं जो उनके लिए लाभकारी हैं। बग को ठीक करने में समय व्यतीत करना जो हमें प्रभावित नहीं करता है गलत होगा ... "

जवाबों:


12

जहां तक ​​मेरा सवाल है, अगर आपको बग मिलता है या एन्हांसमेंट रिक्वेस्ट है, तो प्रोजेक्ट में कोई योगदानकर्ता नहीं हैं, और उपयुक्त चैनलों के माध्यम से एक दोष रिपोर्ट प्रस्तुत की है, तो आप कर रहे हैं। समुदाय को वापस देने के संदर्भ में, जो कोई भी एक खुला स्रोत परियोजना का उपयोग कर रहा है और एक दोष पाता है, उसे इसकी रिपोर्ट करनी चाहिए।

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

पैच का योगदान करने के लिए उपयोगकर्ता की अपेक्षा करना मुझे गलत लगता है। किसी समस्या के बारे में चर्चा में भाग लेना काफी आसान है, लेकिन समाधान के साथ आने के लिए यह बहुत बड़ा निवेश है। किसी भी परियोजना को केवल एक मुद्दे को ठीक करने के लिए गैर-योगदानकर्ताओं से योगदानकर्ता बनने की उम्मीद नहीं करनी चाहिए।


जब तक आप परियोजना के लिए नियमित योगदानकर्ता नहीं बनना चाहते, 100% सहमत, एंड-यूज़र पर सीधे स्रोत रिपॉजिटरी में फिक्स सबमिट करने के लिए कोई ओनस नहीं है। मेलिंग सूची और बग ट्रैकर्स के लिए यही है। स्प्रिंग, मेवेन, आदि इस सटीक मॉडल को करते हैं जहां लोग अपने दम पर समाधान ढूंढेंगे, और इसे जीरा में प्रविष्टि के लिए पोस्ट करेंगे। यह बग तक पहुंचने और योगदान को संभालने के लिए बग पर काम कर रहा है।
स्पेंसर कोरम्स

दोष खोजने और रिपोर्ट प्रस्तुत करने के लिए +1। आप एक पैच फ़िक्सेस प्रस्तुत नहीं कर रहे होंगे, लेकिन मुझे निश्चित रूप से लगता है कि केवल दोष को खोजने के द्वारा, उस पर शोध करना और संबंधित जानकारी को एक दोष रिपोर्ट में सबमिट करना तब आप निश्चित रूप से परियोजना में योगदान दे रहे हैं ।
मेपल_शॉफ्ट

चलो मान रहा हूँ एक पूरे के रूप परियोजना के लिए एक योगदानकर्ता। वह क्या बदलता है?
स्टीव बेनेट

@SteveBennett परियोजना की संरचना को जाने बिना, मैं इसका उत्तर नहीं दे सकता। कुछ परियोजनाओं को असाइन किए गए कार्यों के साथ अधिक सख्ती से संरचित किया जाता है, जबकि अन्य अधिक मुक्त बहते हैं।
थॉमस ओवेन्स

5

जहाँ तक आप इसे लगाने के लिए तैयार हैं, आगे बढ़ें। अपने पैच को ठीक करना और मुख्य ट्रंक में इसे दुनिया के साथ साझा करना अच्छा होगा, लेकिन अगर अनुचर इसे नहीं चाहता है, तो वह सिकुड़ गया। आप कहीं अपनी समस्या, और पैच से निपटने के लिए पोस्ट कर सकते हैं, ताकि एक ही नाव में अन्य लोग एक समाधान की तलाश कर सकें।

और आप समस्या के बिना नहीं हैं। आपका पैच अगले अपग्रेड में नहीं होगा। इसलिए, जब भी आप कोई नया संस्करण हड़पते हैं, तो आपको उसे वापस करना होगा और यह काम करना होगा या उसकी जगह पर मालिश करनी होगी। इसलिए इसे मुख्य परियोजना में लाने से आपको और आपकी कंपनी को लंबे समय में बचत होगी।

यह आपके लिए एक पीड़ा है, लेकिन आप समुदाय में योगदान दे रहे हैं। मैं निश्चित रूप से सभी काम योगदानकर्ताओं की सराहना करता हूं। यह गुणवत्ता सॉफ्टवेयर की तरह नहीं है बस जनता से जादुई उत्पत्ति है। काम किसी को करना है। (तो कौन बढ़िया है? तुम कमाल हो)। यदि आप इसे महसूस नहीं करते हैं, तो समुदाय की घोषणा करें कि जब आप चर्चा करें कि यह कैसा होना चाहिए, तो आप बस इसे करने में बहुत व्यस्त हैं। मेरा मतलब है, वे क्या करने जा रहे हैं? अपनी मजदूरी काटो?


4

एक सिद्धांत है जो खुले स्रोत की संस्कृति को समझने में आसान बनाता है: जो व्यक्ति काम करता है वह तय करता है कि किस पर काम करना है। यह डेवलपर्स डे जॉब्स की तुलना में इसकी एक अपील है। आपकी # 1 प्राथमिकता उनके बैकलॉग पर # 50 हो सकती है। यदि आप अपने पुल अनुरोध को ठीक नहीं करते हैं, तो अंततः यह शीर्ष तक पहुंच जाएगा और वे इसकी देखभाल करेंगे। हालांकि, यदि आप उनके लिए इसे आसान बनाते हैं, तो वे अब इसका ध्यान रखेंगे।

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

जहां तक ​​आपके नियोक्ता की आपकी जिम्मेदारी है, यदि आपका व्यवसाय इस कोड पर भरोसा कर रहा है तो आप उन्हें असंतुष्ट नहीं कर रहे हैं। नियोक्ता अपने उपकरण को तेज करने के लिए समय लेने वाले एक कार्यकर्ता के लाभ को जानते हैं।


2

AFAIK, ओपन सोर्स तरीका यह है कि बग्स को ठीक करने की जिम्मेदारी उसी पर छोड़ दी जाती है जो यह सुनिश्चित करने के लिए बोझ को संभालने के लिए बग के बारे में पर्याप्त देखभाल करता है। परिस्थितियों के आधार पर, मैंने यह सुनिश्चित करने के लिए एक मुद्दे को अनदेखा करने (पैच प्रदान करने और बहस करना ताकि उन्हें स्वीकार कर लिया गया है) से सब कुछ किया है ताकि यह तय हो सके।

सब कुछ सही है, बस प्रोजेक्ट का प्रबंधन करने वाले लोगों को आपसे गलत काम की उम्मीद न होने दें (यानी उन्हें उम्मीद दें कि आप चर्चा के विकल्पों से समस्या को ठीक कर लेंगे और फिर कुछ नहीं करेंगे), वे शायद उनसे अधिक मुद्दों के बारे में जानते हैं। खुद को संभाल सकते हैं और यदि वे कर सकते हैं तो आप का एक आवर्ती योगदानकर्ता बनाने का प्रयास करेंगे।


1

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

आप पैच की एक सूची को बनाए रखना नहीं चाहते हैं जिसे आपको हर बार लागू करने की आवश्यकता होती है जब आप परियोजना की एक नई प्रति खींचते हैं - यह सिर्फ बहुत अधिक परेशानी है। थोड़ा अतिरिक्त समय लें और इसे स्थायी रूप से तय करें ताकि आपको फिर से इसका सामना न करना पड़े।


1

एक ओपन सोर्स डेवलपर के लिए, दो प्रकार की समस्याएं हैं:

  • (ए) एक पैच के बिना समस्याओं
  • (b) एक पैच के कारण होने वाली समस्याएं

मुझे लगता है कि अधिकांश ओपन सोर्स पैकेज मेंटेनर / डेवलपर्स अपने पैच के साथ तेजी लाने के लिए एक गैर-कोर-योगदानकर्ता प्राप्त करने में मदद करने के विचार से प्यार करते हैं।

उनका प्राथमिक लक्ष्य, हालांकि, टाइप-बी समस्याओं की संख्या को कम करना है। यही कारण है कि बार बहुत अधिक सेट है।

कुछ लोग इसे सर्मिपत करते हैं। वे योगदानकर्ता बन जाते हैं, या शायद कोर योगदानकर्ता भी। दूसरे लोग हार मान लेते हैं। ओपन सोर्स के लिए एक निश्चित डार्विनियन प्रकृति है - योग्यतम की उत्तरजीविता।

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

अंतिम परिणाम पूरी तरह से इसके लायक है। "क्या मुझे कोड करने में सक्षम होना पसंद है?"


ठीक है, लेकिन आवश्यकता के लिए घेरा-कूद का उचित स्तर क्या है? वर्तमान में विश्वास बनाए रखने के लिए थोड़ी सी कोशिश करने के लिए एक अनुचर के बीच अंतर है, और बस मुश्किल और अनुचित है। और फिर, मेरा सवाल है: मैं क्या हासिल करने की कोशिश कर रहा हूं? क्या मेरा बगफिक्स कोडबेज में उनके हितों से ज्यादा मेरा है?
स्टीव बेनेट

यह पहले से ही उल्लेख किया गया है कि अगली रिलीज में आपके स्थानीय पैच शामिल नहीं होंगे - इसलिए सॉफ़्टवेयर में फ़िक्स प्राप्त करना आपके सर्वोत्तम हित में है। कंपनी-वार - यह कंपनी के सर्वोत्तम हित में भी है - किसी दिन आप छोड़ सकते हैं और कोई भी आपके स्थानीय फिक्स के साथ हमेशा XYZ को फिर से पैच करना याद रखेगा। इसे आज़माएं: पैच को फिर से काम करें, लेकिन इसे सबमिट न करें। ईमेल के माध्यम से इसे अनुरक्षक को भेजें या अन्यथा - और उनकी प्रतिक्रिया के लिए - जैसा कि, "मुझे लगता है कि मुझे आपके द्वारा उल्लेखित सब कुछ मिल गया है - क्या आप मुझे यह सुनिश्चित करने में मदद कर सकते हैं कि यह सही है?"
pbr
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.