यह पृष्ठ एंड्रॉइड ओपन सोर्स प्रोजेक्ट (एओएसपी) में पैच सबमिट करने की पूरी प्रक्रिया का वर्णन करता है, जिसमें समीक्षा का अनुरोध करने और गेरिट के साथ अपने परिवर्तनों को ट्रैक करने का तरीका भी शामिल है।
आवश्यक शर्तें
आरंभ करने के लिए, सुनिश्चित करें कि आपने निम्नलिखित कार्य कर लिए हैं:
- आपके निर्माण परिवेश को प्रारंभ किया गया
- स्रोत डाउनलोड किया
- पासवर्ड जनरेटर का उपयोग करके एक पासवर्ड बनाया गया ।
संसाधन
- रेपो और गिट के बारे में विवरण के लिए, सोर्स कंट्रोल टूल्स पेज देखें।
- एंड्रॉइड ओपन सोर्स समुदाय के भीतर विभिन्न भूमिकाओं के बारे में जानकारी के लिए, प्रोजेक्ट भूमिकाएँ पृष्ठ देखें।
- एंड्रॉइड प्लेटफ़ॉर्म पर कोड योगदान करने के बारे में लाइसेंसिंग जानकारी के लिए, लाइसेंस पृष्ठ देखें।
योगदानकर्ताओं के लिए
सर्वर से प्रमाणित करें
यदि आप अन्य उपयोगकर्ताओं के साथ आईपी पता साझा करते हैं, तो नियमित उपयोग पैटर्न के लिए भी कोटा ट्रिगर किया जा सकता है। ऐसा तब हो सकता है, जब उदाहरण के लिए, कई उपयोगकर्ता कम समय अवधि के भीतर एक ही आईपी पते से नए क्लाइंट को सिंक करते हैं। प्रमाणित पहुंच आईपी पते की परवाह किए बिना प्रत्येक उपयोगकर्ता के लिए एक अलग कोटा का उपयोग करती है। प्रमाणित पहुंच को सक्रिय करने के बारे में पढ़ने के लिए, प्रमाणीकरण का उपयोग करना देखें।
एक रेपो शाखा प्रारंभ करें
प्रत्येक परिवर्तन के लिए जिसे आप करना चाहते हैं, प्रासंगिक Git रिपॉजिटरी के भीतर एक नई शाखा शुरू करें:
repo start NAME .
You can start several independent branches at the same time in the same
repository. The branch NAME
is local to your
workspace and isn't included either on Gerrit or in the final source tree.
Make your change
Modify the source files, and validate your changes.
Commit the changes to your local repository with these commands:
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.To read a blog about good commit descriptions (with examples), see How to Write a Git Commit Message by Chris Beams.
Sign contributor license agreement
Before you can upload a change to Gerrit, you must sign an Individual Contributor License Agreement. If you work for a corporation, you might also need your coproration to sign a Corporation Contributor License Agreement. For more information on these agreements, including links to each, see Contributor license agreements.
Upload to Gerrit
After you commit your change to your personal history, upload it to Gerrit with this command:
repo upload
If you started multiple branches in the same repository, you're prompted to select which ones to upload.
After a successful upload, Repo provides you with the URL of a new page on Gerrit. Click the link that Repo gives you to view your patch on the review server, add comments, or request specific reviewers for your patch.
Request a review
After you've uploaded your changes to Gerrit, the patch must be reviewed
and approved by the appropriate code owners. Locate code owners in
OWNERS
files.
To find the appropriate code owners and add them as reviewers for your change, follow these steps.
-
Select the SUGGEST OWNERS link in the Gerrit UI to see a list of code owners for the files in your patch.
Figure 1. Suggest owners link in Gerrit Add code owners from the list as reviewers for your patch.
To determine the status of the files in your patch, check for the following icons next to the files in the patch.
- (checkmark icon): Approved by code owner
- (cross icon): Not approved by code owner
- (clock icon): Pending approval by code owner

Upload a replacement patch
Suppose a reviewer looked at your patch and requested a small modification. You can amend your commit within Git, which results in a new patch on Gerrit that has the same change ID as the original.
git add -A
git commit --amend
जब आप संशोधित पैच अपलोड करते हैं, तो यह गेरिट और आपके स्थानीय Git इतिहास दोनों में मूल को प्रतिस्थापित कर देता है।
समन्वयन विवादों का समाधान करें
यदि अन्य पैच स्रोत ट्री में सबमिट किए गए हैं जो आपके साथ विरोधाभासी हैं, तो अपने पैच को स्रोत रिपॉजिटरी के नए HEAD
के शीर्ष पर पुनः रखें। ऐसा करने के लिए, यह आदेश चलाएँ:
repo sync
repo sync
कमांड स्रोत सर्वर से अपडेट प्राप्त करता है, फिर आपके HEAD
नए रिमोट HEAD
पर स्वचालित रूप से रीबेस करने का प्रयास करता है।
यदि स्वचालित रीबेस असफल होता है, तो मैन्युअल रीबेस निष्पादित करें।
repo rebase
रिबेस संघर्ष से निपटने के लिए एक अन्य उपकरण git mergetool
है। जब आप परस्पर विरोधी फ़ाइलों को सफलतापूर्वक मर्ज कर लें, तो यह आदेश चलाएँ:
git rebase --continue
स्वचालित या मैन्युअल रीबेस पूरा होने के बाद, अपना रीबेस्ड पैच सबमिट करने के लिए repo upload
चलाएँ।
सबमिशन स्वीकृत होने के बाद
सबमिशन को समीक्षा और सत्यापन प्रक्रिया के माध्यम से पूरा करने के बाद, गेरिट स्वचालित रूप से परिवर्तन को सार्वजनिक भंडार में विलय कर देता है। अन्य उपयोगकर्ता अपने संबंधित स्थानीय क्लाइंट में अपडेट खींचने के लिए repo sync
चला सकते हैं।
अपस्ट्रीम परियोजनाओं के लिए
एंड्रॉइड कई अन्य ओपन सोर्स प्रोजेक्ट्स का उपयोग करता है, जैसे कि लिनक्स कर्नेल और वेबकिट, जैसा कि एंड्रॉइड सॉफ्टवेयर प्रबंधन में वर्णित है। external/
के अंतर्गत आने वाली अधिकांश परियोजनाओं के लिए, परिवर्तन अपस्ट्रीम करें, फिर एंड्रॉइड अनुरक्षकों को नए अपस्ट्रीम रिलीज़ के बारे में सूचित करें जिसमें आपके परिवर्तन शामिल हैं।
आप ऐसे पैच भी अपलोड कर सकते हैं जिनके कारण नई अपस्ट्रीम रिलीज़ को ट्रैक किया जा सकता है। ध्यान दें कि यदि प्रोजेक्ट का एंड्रॉइड के भीतर व्यापक रूप से उपयोग किया जाता है, तो इनमें बदलाव करना कठिन हो सकता है, जैसे कि नीचे उल्लिखित अधिकांश बड़े बदलाव, जिन्हें आमतौर पर हर रिलीज़ के साथ अपग्रेड किया जाता है।
एक दिलचस्प विशेष मामला बायोनिक है। वहां अधिकांश कोड बीएसडी से है, इसलिए जब तक परिवर्तन बायोनिक के लिए नए कोड में नहीं होता है, कृपया एक अपस्ट्रीम फिक्स करें, फिर उपयुक्त बीएसडी से एक पूरी नई फ़ाइल खींचें।
एंड्रॉइड कर्नेल
सभी परिवर्तन अपस्ट्रीम में करें. सामान्य मार्गदर्शन के लिए, एंड्रॉइड कर्नेल योगदान दिशानिर्देशों और जीकेआई पेज के लिए कर्नेल कोड विकसित करें का पालन करें।
आईसीयू
आईसीयू-टीसी होम पेज पर external/icu
( icu4c/
और icu4j/
फ़ोल्डर्स) में आईसीयू प्रोजेक्ट में सभी बदलाव करें। अधिक जानकारी के लिए आईसीयू बग और फ़ीचर अनुरोध सबमिट करना देखें। सभी अपस्ट्रीम जीरा अनुरोधों में "एंड्रॉइड" लेबल जोड़ें।
सीएलडीआर
आईसीयू में अधिकांश भाषाई डेटा यूनिकोड सीएलडीआर परियोजना से आता है। सीएलडीआर में योगदान के अनुसार सभी अनुरोध अपस्ट्रीम सबमिट करें और "एंड्रॉइड" लेबल जोड़ें।
एलएलवीएम/क्लैंग/कंपाइलर-आरटी
एलएलवीएम कंपाइलर इंफ्रास्ट्रक्चर पेज पर एलएलवीएम से संबंधित परियोजनाओं ( external/clang
, external/compiler-rt
, external/llvm
) में सभी बदलाव करें।
mksh
मिरबीएसडी कोर्न शेल प्रोजेक्ट में सभी परिवर्तन external/mksh
पर या तो mirbsd.org
डोमेन पर miros-mksh
को एक ईमेल भेजकर करें (वहां सबमिट करने के लिए किसी सदस्यता की आवश्यकता नहीं है) या लॉन्चपैड पर।
ओपनएसएसएल
ओपनएसएसएल प्रोजेक्ट में ओपनएसएसएल पेज पर external/openssl
पर सभी बदलाव करें।
वी 8
V8 प्रोजेक्ट में सभी परिवर्तन V8 अंक पृष्ठ पर external/v8
पर सबमिट करें। विवरण के लिए V8 में योगदान देखें।
वेबकिट
WebKit प्रोजेक्ट में सभी परिवर्तन WebKit पेज पर external/webkit
पर करें। WebKit बग दर्ज करके प्रक्रिया प्रारंभ करें। बग में, प्लेटफ़ॉर्म और OS फ़ील्ड के लिए Android
उपयोग केवल तभी करें जब बग Android के लिए विशिष्ट हो। प्रस्तावित सुधार जोड़े जाने और परीक्षण शामिल किए जाने के बाद समीक्षकों का ध्यान बग की ओर आकर्षित होने की अधिक संभावना है। विवरण के लिए WebKit में योगदान कोड देखें।
zlib
zlib प्रोजेक्ट में सभी परिवर्तन zlib होम पेज पर external/zlib
पर करें।