मैं लॉन्चपैड प्रोजेक्ट में पैच कैसे सबमिट कर सकता हूं?


20

Git / GitHub बैकग्राउंड और बाज़ार VCS के बारे में बहुत कम जानने के साथ, मैं कभी-कभी लॉन्चपैड पर होस्ट किए गए प्रोजेक्ट्स के लिए बग की रिपोर्ट करना चाहूंगा, और यहां तक ​​कि एक पैच भी भेज सकता हूं। मैं इसे "उचित" तरीके से करना चाहूंगा ताकि यह विलय या सुधार के लिए तैयार रहे जबकि यह रास्ते में न हो।

मैं अपनी आवश्यकताओं के लिए एक सरल सरल कैसे-के लिए अनुकूल प्रतीत नहीं कर सकता।

मैंने अब तक क्या किया:

  1. मैंने एक लॉन्चपैड खाता बनाया है,

  2. बग की सूचना दी,

  3. बाजार और सेटअप SSH चाबियाँ आदि

अब अगर यह GitHub, मैं था

  1. रेपो कांटा,

  2. कांटा रेपो क्लोन,

  3. एक नामित शाखा बनाएं और कार्य करें,

  4. प्रतिबद्ध + धक्का,

  5. GitHub WUI का उपयोग करके पुल अनुरोध बनाएं।

लेकिन यह GitHub नहीं है, और लॉन्चपैड और बाज़ार दोनों आर्किटेक्चर उनके GitHub / Git समकक्षों से काफी अलग लगते हैं।

तो क्या एक दयालु आत्मा मुझे दस्तावेजों के टन में डूबने से बचा सकती है और एक सीधा कदम मार्ग संकलित कर सकती है, मुख्यतः दूसरा भाग? संभवतया प्रासंगिक सीएलआई कमांड सहित जब उनकी आवश्यकता होती है?


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

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

तो मैं यही मान रहा था

  • उबंटू में वितरित हर एक पैकेज को लॉन्चपैड पर होस्ट नहीं किया गया है,

  • लॉन्चपैड के लिए एक "आधिकारिक" या "डिफ़ॉल्ट" वर्कफ़्लो मौजूद है (यदि सभी देवता बाज़ार का उपयोग करने पर सहमत हो सकते हैं, तो उनमें से अधिकांश एक पैच वर्कफ़्लो पर सहमत क्यों नहीं हो सकते?)।

इसलिए मैं लॉन्चपैड तरीके के बारे में पूछ रहा हूं, उबंटू तरीके से नहीं। और मैंने एयू को चुना क्योंकि चौराहा विशाल है, मुझे लगता है कि यह यहां विषय पर बहुत सुंदर है।


क्या यह छोटा दस्तावेज़ मदद करता है? यदि ऐसा है तो आवश्यक के रूप में मौजूदा जवाब का विस्तार करने में संकोच न करें doc.bazaar.canonical.com/bzr.dev/en/mini-tutorial
david.libremone

जवाबों:


15

क्या यह लॉन्चपैड प्रोजेक्ट है?

(यदि आप पहले से ही जानते हैं कि यह एक लॉन्चपैड परियोजना है, तो आप इसे छोड़ सकते हैं।)

लॉन्चपैड पर पाए जाने वाले सभी प्रोजेक्ट वास्तव में होस्ट और विकसित नहीं हुए हैं - कुछ अन्य द्वारा होस्ट किए गए कोड के दर्पण हैं (GitHub / Gitorious / etc), अन्य डेबियन से आते हैं। इन मूल स्रोतों को "अपस्ट्रीम" परियोजनाओं के रूप में जाना जाता है, और यह आमतौर पर स्रोत पर पैच जमा करने के लिए सबसे अच्छा होता है और उबंटू में (डाउनस्ट्रीम में आम तौर पर अगले रिलीज) बदलावों को आने देता है।

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

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

एक पैच कैसे जमा करें

एक पैच जमा करने का सामान्य तरीका यह है कि आप अपनी शाखा बना लें, स्थानीय स्तर पर इसे लागू करें और इसे लॉन्चपैड पर वापस धकेलें:

bzr push lp:~user/project/branch-name

फिर आप अपनी शाखा को उस माता-पिता में विलय करने का प्रस्ताव दे सकते हैं जिसे आपने या तो वेब साइट के माध्यम से, या bzr lp-proposeकमांड का उपयोग करके देखा है ।

यदि आपने एक बग दर्ज किया है, और आपकी शाखा इसे ठीक करती है, तो कमिट करते समय सुनिश्चित करें कि 000000आपके बग नंबर को कहां से बदला गया है, यह मानते हुए कि यह लॉन्चपैड पर रिपोर्ट किया गया बग है, और इसके बजाय कहीं और नहीं।

bzr commit --fixes=lp:000000

"डिफ़ॉल्ट" वर्कफ़्लो पर एक नोट

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


8

यहाँ डॉबी के उत्तर पर आधारित उत्तर और जोर्ज कास्त्रो के प्रोजेक्ट-विशिष्ट प्रश्न का उत्तर । संपादन / सुधार / सुझाव का स्वागत है।

  1. एक लॉन्चपैड खाता बनाएँ। इसमें लॉन्चपैड उपयोगकर्ता नाम ( LP-USER) शामिल होगा

  2. लॉन्चपैड में अपनी SSH कुंजी जोड़ें https://launchpad.net/~LP-USER/+editsshkeys

  3. लॉन्चपैड पर, प्रोजेक्ट नाम ( PROJECT-NAME) नोट करें ।

  4. परियोजना के खिलाफ समस्या की रिपोर्ट करें। समस्या को बग नंबर ( 000000) सौंपा जाएगा ।

  5. सुनिश्चित करें कि बाज़ार स्थापित है dpkg-query -l bzr। आप बाज़ार / लॉन्चपैड एकीकरण पर पढ़ना चाह सकते हैं ।

  6. के साथ bzr whoami "Your Name <name@example.com>"और bzr कॉन्फ़िगर करेंbzr launchpad-login LP-USER

  7. अपनी मशीन पर, परियोजना की स्थानीय शाखा देखें

    bzr branch lp:PROJECT-NAME
    

    (यह PROJECT-NAMEनवीनतम प्रोजेक्ट कोड नामक एक फ़ोल्डर बनाएगा ।)

  8. प्रोजेक्ट चल रहा है। परिवर्तन करें। अपने परिवर्तनों का परीक्षण करें। (ये चरण प्रोजेक्ट- और समस्या-विशिष्ट हैं।)

  9. बग नंबर ( 000000) सहित अपने बदलाव करें ।

    bzr commit --fixes=lp:000000
    
  10. यह एक प्रतिबद्ध संवाद खोलेगा जहां आप अपने परिवर्तनों को समझाते हुए चैंज एंट्री जोड़ सकते हैं।

  11. लॉन्चपैड में अपने परिवर्तन पुश करें। (यह आपके खाते से संबद्ध एक नई दूरस्थ शाखा बनाएगा।)

    bzr push lp:~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME
    

    ( NEW-BRANCH-NAMEतय की गई / फीचर जोड़ी गई समस्या का संक्षिप्त वर्णनात्मक नाम होना चाहिए)

  12. अपने ब्राउज़र में bzr lp-openया उसके साथ जाकर शाखा खोलेंhttps://code.launchpad.net/~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME/

  13. bzr lp-proposeअंतिम चरण में "विलय के लिए प्रस्ताव" का चयन करके URL के साथ या उसके साथ एक मर्ज का प्रस्ताव करें, एक विवरण जोड़कर, lp:PROJECT-NAMEउस शाखा के लिए पेस्ट करें जिसमें आप प्रस्तावित करना चाहते हैं और क्लिक करें Submit


प्रश्न: अगर मेरा "प्रोजेक्ट नाम" ubuntu/saucy/msttcorefontsमैं कर रहा हूं bzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchnameया सिर्फbzr push lp:~amandabee/msttcorefonts/actualbranchname
अमांडा

पूर्व: bzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchnameकाम किया
अमांडा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.