यह पृष्ठ एंड्रॉइड ओपन सोर्स प्रोजेक्ट (एओएसपी) को पैच सबमिट करने की पूरी प्रक्रिया का वर्णन करता है, जिसमें गेरिट के साथ समीक्षा का अनुरोध करने और अपने परिवर्तनों को ट्रैक करने का तरीका शामिल है।
आवश्यक शर्तें
प्रारंभ करने के लिए, सुनिश्चित करें कि आपने निम्न कार्य कर लिया है:
- आपके बिल्ड परिवेश को प्रारंभ किया
- स्रोत डाउनलोड किया
- पासवर्ड जनरेटर का उपयोग करके एक पासवर्ड बनाया गया ।
संसाधन
- रेपो और गिट के बारे में विवरण के लिए, स्रोत नियंत्रण उपकरण पृष्ठ देखें।
- Android ओपन सोर्स समुदाय के भीतर विभिन्न भूमिकाओं के बारे में जानकारी के लिए, प्रोजेक्ट भूमिकाएँ पृष्ठ देखें।
- Android प्लेटफ़ॉर्म में योगदान कोड के बारे में लाइसेंसिंग जानकारी के लिए, लाइसेंस पृष्ठ देखें।
योगदानकर्ताओं के लिए
सर्वर के साथ प्रमाणीकरण
यदि आप अन्य उपयोगकर्ताओं के साथ एक आईपी पता साझा करते हैं, तो नियमित उपयोग पैटर्न के लिए भी कोटा ट्रिगर किया जा सकता है। यह तब हो सकता है जब, उदाहरण के लिए, कई उपयोगकर्ता एक ही आईपी पते से कम समय अवधि के भीतर नए ग्राहकों को सिंक करते हैं। आईपी पते की परवाह किए बिना, प्रमाणित पहुंच प्रत्येक उपयोगकर्ता के लिए एक अलग कोटा का उपयोग करती है। प्रमाणित पहुंच को सक्रिय करने के बारे में पढ़ने के लिए प्रमाणीकरण का उपयोग करना देखें।
एक रेपो शाखा शुरू करना
आपके द्वारा किए जाने वाले प्रत्येक परिवर्तन के लिए, संबंधित गिट रिपॉजिटरी के भीतर एक नई शाखा शुरू करें:
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.
Making 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.
Uploading 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.
Requesting 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

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