मैं एक बग को ठीक करना चाहता हूं। मैं कहाँ से प्रारम्भ करूँ?


47

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

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

जैसा कि मैंने कभी भी पैच नहीं लिखा या जंगली से पहले एक कार्यक्रम जारी नहीं किया, हालांकि, मुझे नहीं पता कि कहां से शुरू करना है। उस समस्या से निपटने के लिए मेरा पहला कदम क्या होना चाहिए?

नीचे पंक्ति: मैं उस आदमी को कहां और कैसे ठीक करना शुरू करूं?


1
आपका बैकग्राउंड क्या है? क्या आप संस्करण नियंत्रण प्रणालियों से परिचित हैं? पैकेजिंग प्रथाओं में?
पयग्रीबेल २

नहीं, अभी तक उस से परिचित नहीं हैं! बदलाव के अधीन ...
Ingo

जवाबों:


31

इस प्रश्न का उत्तर देने से आप लंबे और जटिल हो सकते हैं, इसलिए मैं यहां आपको उपलब्ध कराने के बजाय उन्हें उपलब्ध संसाधनों के बारे में बताने जा रहा हूं।

प्रलेखन

  1. उबंटू विकास के लिए सेट अप करना
  2. कीड़े को कैसे ठीक करें

ट्यूटोरियल

हम आपके जैसे लोगों की मदद करने के लिए पूरे चक्र में कार्यक्रम चलाते हैं, विशेष रूप से हम आईआरसी में उबंटू डेवलपर सप्ताह चलाते हैं , जो एक लाइव ट्यूटोरियल और प्रश्न और उत्तर कार्यशाला है। यदि आप इसमें शामिल होना चाहते हैं तो फरवरी के अंत में एक आने वाला है!

आपको एक विचार देने के लिए पिछले सत्र के दो लॉग दिए गए हैं:

अवसर खोजने के स्थान

  • हार्वेस्ट - यह टूल लॉन्चपैड में सभी पैच और पैकेज के माध्यम से जाता है (और यहां तक ​​कि अन्य डिस्ट्रो में दिखता है) पैच के लिए। इनमें से कई को उबंटू, लागू, परीक्षण, और फिर उबंटू में तय किया जा सकता है और फिर ऊपर भेजा जा सकता है।
  • Cleansweep - लॉन्चपैड में बैठे पैच की सूची जो किसी ने एक बग रिपोर्ट से जुड़ी है। ये उपयोगी हो सकते हैं या नहीं, फिर भी इन पर ध्यान दिया जाना चाहिए।

सहायता ले रहा है

मेलिंग सूची या IRC पर MOTU से संपर्क करना आपके द्वारा चलाने वाली व्यक्तिगत समस्याओं के लिए मदद पाने का एक अच्छा तरीका है:

प्रतिपुष्टि

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


19

जोर्ज का सामान्यीकृत उत्तर उबंटू विकास में कूदने के लिए एक शानदार परिचय है, लेकिन आइए आपको विशिष्ट मुद्दे पर थोड़ा करीब से देखने की कोशिश करें ...

Apport के मुख्य अपस्ट्रीम डेवलपर और उबंटू अनुचर एक और एक ही हैं। यह आपके लिए चीजों को थोड़ा सरल करता है। पैकेजिंग और पैच सिस्टम के बारे में जानने के बजाय, यहां सबसे आसान रास्ता सीधे अपस्ट्रीम कोड पर काम करना है।

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

के साथ बाजार स्थापित करें:

sudo apt-get install bzr

Apport के स्रोत कोड को खींचें:

bzr branch lp:apport

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

bzr commit -m "My commit message. Did foo to bar in order to achieve baz."

परिवर्तन करना जारी रखें और तब तक कमिट करें जब तक आप संतुष्ट न हों कि आपका बग ठीक हो गया है। अपने आखिरी कमिटमेंट के साथ, आप इसे --fixes lp:<bug_number>कमिट कमांड में जोड़कर बग को ठीक करने के रूप में भी टैग कर सकते हैं । अब आप समीक्षा और समावेशन के लिए अपने परिवर्तन प्रस्तुत करने के लिए तैयार हैं।

सबसे पहले, आपको इसे सार्वजनिक रूप से उपलब्ध कराने के लिए लॉन्चपैड पर धकेलने की आवश्यकता है:

bzr push lp:~<launchpad_username>/apport/<branch_name>

आपकी शाखा अब यहां मिल सकती है:

https://code.launchpad.net/~<launchpad_username>/apport/<branch_name>/

bzr lp-openब्रांच में चलने से ब्राउज़र में वह लोकेशन खुल जाएगा।

अब हम मर्ज का प्रस्ताव करना चाहते हैं। उस पृष्ठ पर, "विलय के लिए प्रस्ताव" चुनें।

विलय का प्रस्ताव

अगले पृष्ठ पर, अपनी लक्ष्य शाखा चुनें और अपने परिवर्तनों का अवलोकन करें।

मर्ज का वर्णन करें

अब आपके पास एक सक्रिय मर्ज प्रस्ताव होगा।

सक्रिय समीक्षा

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

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