यह पृष्ठ एंड्रॉइड ओपन सोर्स प्रोजेक्ट (एओएसपी) को पैच सबमिट करने की पूरी प्रक्रिया का वर्णन करता है, जिसमें समीक्षा का अनुरोध करने और गेरिट के साथ अपने परिवर्तनों को ट्रैक करने का तरीका शामिल है।
आवश्यक शर्तें
शुरू करने के लिए, सुनिश्चित करें कि आपने निम्न कार्य किया है:
- अपने निर्माण वातावरण को प्रारंभ किया
- स्रोत डाउनलोड किया
- पासवर्ड जनरेटर का उपयोग करके एक पासवर्ड बनाया ।
साधन
- रेपो और गिट के बारे में विवरण के लिए, स्रोत नियंत्रण उपकरण पृष्ठ देखें।
- Android ओपन सोर्स समुदाय में विभिन्न भूमिकाओं के बारे में जानकारी के लिए, प्रोजेक्ट भूमिकाएँ पृष्ठ देखें।
- Android प्लेटफ़ॉर्म में कोड योगदान करने के बारे में लाइसेंसिंग जानकारी के लिए, लाइसेंस पृष्ठ देखें।
योगदानकर्ताओं के लिए
सर्वर के साथ प्रमाणीकरण
यदि आप अन्य उपयोगकर्ताओं के साथ एक आईपी पता साझा करते हैं, तो नियमित उपयोग पैटर्न के लिए भी कोटा ट्रिगर किया जा सकता है। ऐसा तब हो सकता है, उदाहरण के लिए, कई उपयोगकर्ता कम समय में एक ही आईपी पते से नए क्लाइंट को सिंक करते हैं। आईपी पते की परवाह किए बिना, प्रमाणित पहुंच प्रत्येक उपयोगकर्ता के लिए एक अलग कोटा का उपयोग करती है। प्रमाणित पहुंच को सक्रिय करने के बारे में पढ़ने के लिए, प्रमाणीकरण का उपयोग करना देखें।
रेपो शाखा शुरू करना
आपके द्वारा किए जाने वाले प्रत्येक परिवर्तन के लिए, संबंधित Git रिपॉजिटरी के भीतर एक नई शाखा शुरू करें:
repo start NAME .
आप एक ही रिपॉजिटरी में एक ही समय में कई स्वतंत्र शाखाएँ शुरू कर सकते हैं। शाखा NAME
आपके कार्यक्षेत्र के लिए स्थानीय है और इसे गेरिट या अंतिम स्रोत ट्री में शामिल नहीं किया गया है।
अपना परिवर्तन करना
स्रोत फ़ाइलों को संशोधित करें, और अपने परिवर्तनों को मान्य करें।
इन आदेशों के साथ अपने स्थानीय भंडार में परिवर्तन करें:
git add -A
git commit -s
विवरण बदलें
- पंक्ति 1: शीर्षक
एक-पंक्ति सारांश प्रदान करें ( अधिकतम 50 वर्ण )
इस प्रारूप का उपयोग विभिन्न प्रदर्शनों के लिए Git और Gerrit द्वारा किया जाता है। यह आपके प्रतिबद्ध संदेश का सबसे महत्वपूर्ण, सबसे सघन हिस्सा है। आपके द्वारा बदले गए क्षेत्र का वर्णन करने के लिए उपसर्गों का उपयोग करने पर विचार करें, इसके बाद इस प्रतिबद्धता में आपके द्वारा किए गए परिवर्तन का विवरण, जैसे कि यह जिसमें
ui
उपसर्ग के रूप में है:ui: Removes deprecated widget
- पंक्ति 2: खाली
इस लाइन को हमेशा खाली रखें।
- पंक्ति 3: शरीर
इस लाइन से शुरू करते हुए एक लंबा विवरण लिखें।
इसे अधिकतम 72 वर्णों पर हार्ड-रैप करना चाहिए। वर्णन करें कि परिवर्तन किस समस्या का समाधान करता है, और कैसे। हालांकि नई सुविधाओं को लागू करते समय यह वैकल्पिक है, यह बाद में दूसरों के लिए बहुत उपयोगी है यदि वे इस परिवर्तन का उल्लेख करते हैं, खासकर डिबगिंग के लिए।
किसी भी धारणा या पृष्ठभूमि की जानकारी का एक संक्षिप्त नोट शामिल करें जो महत्वपूर्ण हो सकता है जब कोई अन्य योगदानकर्ता इस सुविधा पर काम करता है।
एक अद्वितीय परिवर्तन आईडी और आपका नाम और ईमेल, जो repo init
के दौरान प्रदान किया जाता है, स्वचालित रूप से आपके प्रतिबद्ध संदेश में जुड़ जाते हैं।
यहाँ एक उदाहरण प्रतिबद्ध संदेश है:
Line 1, Headline - a short description Line 3, Body - Add the detailed description of your patch here. Use as many lines as needed. You can write an overall description, then list specifics. I6e3c64e7a:Added a new widget. I60c539a8f:Fixed the spinning image.अच्छे प्रतिबद्ध विवरण (उदाहरणों के साथ) के बारे में एक ब्लॉग पढ़ने के लिए, क्रिस बीम्स द्वारा एक गिट प्रतिबद्ध संदेश कैसे लिखें देखें।
Gerrit . पर अपलोड कर रहा है
अपने व्यक्तिगत इतिहास में अपना परिवर्तन करने के बाद, इसे इस आदेश के साथ गेरिट पर अपलोड करें:
repo upload
यदि आपने एक ही रिपॉजिटरी में कई शाखाएँ शुरू की हैं, तो आपको यह चुनने के लिए कहा जाएगा कि किन शाखाओं को अपलोड करना है।
एक सफल अपलोड के बाद, रेपो आपको गेरिट पर एक नए पेज का यूआरएल प्रदान करता है। उस लिंक पर क्लिक करें जो रेपो आपको समीक्षा सर्वर पर अपना पैच देखने, टिप्पणियां जोड़ने या अपने पैच के लिए विशिष्ट समीक्षकों से अनुरोध करने के लिए देता है।
समीक्षा का अनुरोध
आपके द्वारा गेरिट में अपने परिवर्तन अपलोड करने के बाद, पैच की समीक्षा की जानी चाहिए और उपयुक्त कोड स्वामियों द्वारा अनुमोदित किया जाना चाहिए। OWNERS
फ़ाइलों में कोड स्वामियों का पता लगाएँ।
उपयुक्त कोड स्वामियों को खोजने और उन्हें अपने परिवर्तन के लिए समीक्षकों के रूप में जोड़ने के लिए, इन चरणों का पालन करें।
अपने पैच में फ़ाइलों के लिए कोड स्वामियों की सूची देखने के लिए Gerrit UI में SUGGEST OWNERS लिंक का चयन करें।
चित्र 1. Gerrit . में मालिकों के लिंक का सुझाव दें अपने पैच के लिए समीक्षकों के रूप में सूची से कोड स्वामियों को जोड़ें।
अपने पैच में फ़ाइलों की स्थिति निर्धारित करने के लिए, पैच में फ़ाइलों के आगे निम्न चिह्नों की जाँच करें।
- (चेकमार्क आइकन): कोड स्वामी द्वारा स्वीकृत
- (क्रॉस आइकन): कोड स्वामी द्वारा अनुमोदित नहीं
- (घड़ी आइकन): कोड स्वामी द्वारा लंबित अनुमोदन

एक प्रतिस्थापन पैच अपलोड करना
मान लीजिए कि एक समीक्षक ने आपके पैच को देखा और एक छोटे से संशोधन का अनुरोध किया। आप गिट के भीतर अपनी प्रतिबद्धता में संशोधन कर सकते हैं, जिसके परिणामस्वरूप गेरिट पर एक नया पैच होगा जिसमें मूल के समान ही परिवर्तन आईडी है।
git add -A
git commit --amend
जब आप संशोधित पैच अपलोड करते हैं, तो यह गेरिट और आपके स्थानीय गिट इतिहास दोनों में मूल को बदल देता है।
समन्वयन विरोधों का समाधान
यदि स्रोत ट्री में अन्य पैच सबमिट किए गए हैं जो आपके साथ विरोध करते हैं, तो अपने पैच को स्रोत रिपॉजिटरी के नए HEAD
के शीर्ष पर रीबेस करें। ऐसा करने के लिए, यह आदेश चलाएँ:
repo sync
repo sync
कमांड स्रोत सर्वर से अपडेट प्राप्त करता है, फिर आपके HEAD
को नए रिमोट HEAD
पर स्वचालित रूप से रीबेस करने का प्रयास करता है।
यदि स्वचालित रीबेस असफल होता है, तो मैन्युअल रीबेस निष्पादित करें।
repo rebase
रिबेस संघर्ष से निपटने के लिए एक अन्य उपकरण git mergetool
है। जब आपने परस्पर विरोधी फ़ाइलों को सफलतापूर्वक मर्ज कर दिया है, तो यह आदेश चलाएँ:
git rebase --continue
स्वचालित या मैन्युअल रीबेस पूर्ण होने के बाद, अपना रिबेस्ड पैच सबमिट करने के लिए repo upload
चलाएं।
सबमिशन स्वीकृत होने के बाद
समीक्षा और सत्यापन प्रक्रिया के माध्यम से सबमिट करने के बाद, गेरिट स्वचालित रूप से सार्वजनिक भंडार में परिवर्तन को मर्ज कर देता है। अन्य उपयोगकर्ता अपडेट को अपने संबंधित स्थानीय क्लाइंट में खींचने के लिए repo sync
चला सकते हैं।
अपस्ट्रीम परियोजनाओं के लिए
Android कई अन्य ओपन सोर्स प्रोजेक्ट का उपयोग करता है, जैसे कि Linux कर्नेल और WebKit, जैसा कि Android सॉफ़्टवेयर प्रबंधन में वर्णित है। external/
के अंतर्गत रहने वाली अधिकांश परियोजनाओं के लिए, परिवर्तन अपस्ट्रीम करें, फिर Android अनुरक्षकों को नई अपस्ट्रीम रिलीज़ के बारे में सूचित करें जिसमें आपके परिवर्तन शामिल हैं।
आप ऐसे पैच भी अपलोड कर सकते हैं जिनके कारण नई अपस्ट्रीम रिलीज़ को ट्रैक किया जा सकता है। ध्यान दें कि अगर एंड्रॉइड के भीतर प्रोजेक्ट का व्यापक रूप से उपयोग किया जाता है, तो ये मुश्किल बदलाव हो सकते हैं, जैसे कि नीचे उल्लिखित अधिकांश बड़े, जिन्हें आमतौर पर हर रिलीज के साथ अपग्रेड किया जाता है।
एक दिलचस्प विशेष मामला बायोनिक है। अधिकांश कोड बीएसडी से है, इसलिए जब तक कि बायोनिक के लिए नए कोड में परिवर्तन नहीं होता है, तो कृपया एक अपस्ट्रीम फिक्स करें, फिर उपयुक्त बीएसडी से एक पूरी नई फाइल का एक पुल बनाएं।
एंड्रॉइड कर्नेल
सभी परिवर्तन अपस्ट्रीम करना पसंद करते हैं। सामान्य मार्गदर्शन के लिए, Android कर्नेल योगदान दिशानिर्देशों का पालन करें।
आईसीयू
आईसीयू-टीसी होम पेज पर external/icu
(आईसीयू icu4c/
और आईसीयू4 icu4j/
फोल्डर) पर आईसीयू परियोजना में सभी बदलाव करें। अधिक के लिए आईसीयू बग्स और फीचर अनुरोध सबमिट करना देखें।
सीएलडीआर
ICU में अधिकांश भाषाई डेटा यूनिकोड CLDR प्रोजेक्ट से आता है। कृपया CLDR परिवर्तन अनुरोधों का उपयोग करके सभी अनुरोध अपस्ट्रीम सबमिट करें और 'Android' लेबल जोड़ें।
एलएलवीएम/क्लैंग/कंपाइलर-आरटी
एलएलवीएम कंपाइलर इंफ्रास्ट्रक्चर पेज पर एलएलवीएम-संबंधित प्रोजेक्ट्स ( external/clang
क्लैंग, external/compiler-rt
, external/llvm
) में सभी बदलाव करें।
मक्षो
mirbsd.org
डोमेन (वहां सबमिट करने के लिए कोई सदस्यता आवश्यक नहीं है) या लॉन्चपैड पर miros-mksh
को एक ईमेल भेजकर external/mksh
पर MirBSD कॉर्न शेल प्रोजेक्ट में सभी परिवर्तन करें।
ओपनएसएसएल
ओपनएसएसएल पेज पर external/openssl
पर ओपनएसएसएल प्रोजेक्ट में सभी बदलाव करें।
वी 8
V8 अंक पृष्ठ पर external/v8
पर V8 प्रोजेक्ट में सभी परिवर्तन सबमिट करें। विवरण के लिए V8 में योगदान करना देखें।
वेबकिट
WebKit पृष्ठ पर external/webkit
पर WebKit प्रोजेक्ट में सभी परिवर्तन करें। WebKit बग दर्ज करके प्रक्रिया प्रारंभ करें। बग में, प्लेटफ़ॉर्म और OS फ़ील्ड के लिए Android
का उपयोग केवल तभी करें जब बग Android के लिए विशिष्ट हो। एक प्रस्तावित सुधार जोड़े जाने और परीक्षण शामिल किए जाने के बाद बग्स को समीक्षकों का ध्यान आकर्षित करने की अधिक संभावना है। विवरण के लिए वेबकिट में योगदान कोड देखें।
ज़्लिब
zlib होम पेज पर external/zlib
पर zlib प्रोजेक्ट में सभी परिवर्तन करें।