প্যাচ জমা দেওয়া হচ্ছে

এই পৃষ্ঠাটি Android ওপেন সোর্স প্রজেক্টে (AOSP) একটি প্যাচ জমা দেওয়ার সম্পূর্ণ প্রক্রিয়া বর্ণনা করে, কীভাবে একটি পর্যালোচনার অনুরোধ করা যায় এবং Gerrit- এর সাথে আপনার পরিবর্তনগুলি ট্র্যাক করা সহ।

পূর্বশর্ত

শুরু করতে, নিশ্চিত করুন যে আপনি নিম্নলিখিতগুলি করেছেন:

সম্পদ

  • রেপো এবং গিট সম্পর্কে বিশদ বিবরণের জন্য, উত্স নিয়ন্ত্রণ সরঞ্জাম পৃষ্ঠাটি দেখুন।
  • অ্যান্ড্রয়েড ওপেন সোর্স সম্প্রদায়ের মধ্যে বিভিন্ন ভূমিকা সম্পর্কে তথ্যের জন্য, প্রকল্পের ভূমিকা পৃষ্ঠাটি দেখুন৷
  • অ্যান্ড্রয়েড প্ল্যাটফর্মে কোড অবদান রাখার বিষয়ে লাইসেন্স সংক্রান্ত তথ্যের জন্য, লাইসেন্স পৃষ্ঠাটি দেখুন।

অবদানকারীদের জন্য

সার্ভারের সাথে প্রমাণীকরণ করা হচ্ছে

আপনি যদি অন্য ব্যবহারকারীদের সাথে একটি আইপি ঠিকানা ভাগ করেন, তবে নিয়মিত ব্যবহারের ধরণগুলির জন্যও কোটা ট্রিগার হতে পারে৷ এটি ঘটতে পারে যখন, উদাহরণস্বরূপ, অনেক ব্যবহারকারী অল্প সময়ের মধ্যে একই IP ঠিকানা থেকে নতুন ক্লায়েন্ট সিঙ্ক করে। আইপি ঠিকানা নির্বিশেষে প্রমাণীকৃত অ্যাক্সেস প্রতিটি ব্যবহারকারীর জন্য একটি পৃথক কোটা ব্যবহার করে। প্রমাণীকৃত অ্যাক্সেস সক্রিয় করার বিষয়ে পড়তে, প্রমাণীকরণ ব্যবহার করা দেখুন।

একটি রেপো শাখা শুরু করা হচ্ছে

প্রতিটি পরিবর্তনের জন্য যা আপনি করতে চান, প্রাসঙ্গিক গিট সংগ্রহস্থলের মধ্যে একটি নতুন শাখা শুরু করুন:

repo start NAME .

আপনি একই সংগ্রহস্থলে একই সময়ে একাধিক স্বাধীন শাখা শুরু করতে পারেন। শাখা NAME আপনার কর্মক্ষেত্রে স্থানীয় এবং গেরিট বা চূড়ান্ত উত্স গাছে অন্তর্ভুক্ত নয়৷

আপনার পরিবর্তন করা

সোর্স ফাইলগুলি পরিবর্তন করুন এবং আপনার পরিবর্তনগুলি যাচাই করুন৷

এই কমান্ডগুলির সাথে আপনার স্থানীয় সংগ্রহস্থলে পরিবর্তনগুলি কমিট করুন:

git add -A
git commit -s

বর্ণনা পরিবর্তন করুন

  • লাইন 1: শিরোনাম

    একটি এক-লাইন সারাংশ প্রদান করুন ( সর্বোচ্চ 50 অক্ষর)

    এই বিন্যাসটি গিট এবং গেরিট বিভিন্ন প্রদর্শনের জন্য ব্যবহার করে। এটি আপনার প্রতিশ্রুতি বার্তার সবচেয়ে গুরুত্বপূর্ণ, সবচেয়ে ঘন অংশ। আপনি যে এলাকাটি পরিবর্তন করেছেন তা বর্ণনা করার জন্য উপসর্গ ব্যবহার করার কথা বিবেচনা করুন, তারপরে আপনি এই প্রতিশ্রুতিতে যে পরিবর্তন করেছেন তার বর্ণনা দিয়ে, যেমন এটির উপসর্গ হিসাবে 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

আপনি যদি একই সংগ্রহস্থলে একাধিক শাখা শুরু করেন, তাহলে আপনাকে কোনটি আপলোড করতে হবে তা নির্বাচন করতে বলা হবে।

একটি সফল আপলোডের পরে, রেপো আপনাকে Gerrit- এ একটি নতুন পৃষ্ঠার URL প্রদান করে। রিভিউ সার্ভারে আপনার প্যাচ দেখতে, মন্তব্য যোগ করতে বা আপনার প্যাচের জন্য নির্দিষ্ট পর্যালোচকদের অনুরোধ করতে রেপো আপনাকে যে লিঙ্কটি দেয় তাতে ক্লিক করুন।

একটি পর্যালোচনা অনুরোধ

আপনি Gerrit-এ আপনার পরিবর্তনগুলি আপলোড করার পরে, প্যাচটি অবশ্যই যথাযথ কোড মালিকদের দ্বারা পর্যালোচনা এবং অনুমোদিত হতে হবে। OWNERS ফাইলগুলিতে কোড মালিকদের সনাক্ত করুন৷

উপযুক্ত কোড মালিকদের খুঁজে বের করতে এবং তাদের আপনার পরিবর্তনের জন্য পর্যালোচক হিসেবে যোগ করতে, এই পদক্ষেপগুলি অনুসরণ করুন৷

  1. আপনার প্যাচের ফাইলগুলির জন্য কোড মালিকদের একটি তালিকা দেখতে Gerrit UI-তে SUGGEST OWNERS লিঙ্কটি নির্বাচন করুন৷

    Gerrit এ মালিকদের লিঙ্কের পরামর্শ দিন
    চিত্র 1. গেরিটে মালিকদের লিঙ্কের পরামর্শ দিন
  2. আপনার প্যাচের জন্য পর্যালোচক হিসাবে তালিকা থেকে কোড মালিকদের যোগ করুন।

আপনার প্যাচের ফাইলগুলির স্থিতি নির্ধারণ করতে, প্যাচের ফাইলগুলির পাশে নিম্নলিখিত আইকনগুলি পরীক্ষা করুন৷

  • (চেকমার্ক আইকন): কোড মালিক দ্বারা অনুমোদিত
  • (ক্রস আইকন): কোড মালিক দ্বারা অনুমোদিত নয়
  • (ঘড়ি আইকন): কোড মালিক কর্তৃক মুলতুবি অনুমোদন
চিত্র 2. আইকন সহ ফাইলগুলির উদাহরণ যা কোড মালিকের অনুমোদনের স্থিতি দেখাচ্ছে৷

একটি প্রতিস্থাপন প্যাচ আপলোড করা হচ্ছে

ধরুন একজন পর্যালোচক আপনার প্যাচটি দেখেছেন এবং একটি ছোট পরিবর্তনের অনুরোধ করেছেন। আপনি Git-এর মধ্যে আপনার প্রতিশ্রুতি সংশোধন করতে পারেন, যার ফলে Gerrit-এ একটি নতুন প্যাচ তৈরি হয় যার মূলের মতো একই পরিবর্তন আইডি রয়েছে।

git add -A
git commit --amend

আপনি যখন সংশোধিত প্যাচ আপলোড করেন, তখন এটি Gerrit এবং আপনার স্থানীয় গিট ইতিহাসে মূলটিকে প্রতিস্থাপন করে।

সিঙ্ক দ্বন্দ্ব সমাধান করা

যদি অন্য প্যাচগুলি উৎস ট্রিতে জমা দেওয়া হয় যা আপনার সাথে বিরোধিতা করে, তাহলে উৎস সংগ্রহস্থলের নতুন HEAD এর উপরে আপনার প্যাচ রিবেস করুন। এটি করতে, এই কমান্ডটি চালান:

repo sync

repo sync কমান্ড সোর্স সার্ভার থেকে আপডেট আনে, তারপর স্বয়ংক্রিয়ভাবে নতুন রিমোট HEAD এ আপনার HEAD রিবেস করার চেষ্টা করে।

যদি স্বয়ংক্রিয় রিবেস ব্যর্থ হয়, একটি ম্যানুয়াল রিবেস সঞ্চালন করুন।

repo rebase

রিবেস দ্বন্দ্ব মোকাবেলার জন্য আরেকটি টুল হল git mergetool । যখন আপনি সফলভাবে বিরোধপূর্ণ ফাইলগুলি মার্জ করেছেন, তখন এই কমান্ডটি চালান:

git rebase --continue

স্বয়ংক্রিয় বা ম্যানুয়াল রিবেস সম্পূর্ণ হওয়ার পরে, আপনার রিবেসড প্যাচ জমা দিতে repo upload চালান।

একটি জমা অনুমোদন করা হয় পরে

পর্যালোচনা এবং যাচাইকরণ প্রক্রিয়ার মাধ্যমে জমা দেওয়ার পরে, গেরিট স্বয়ংক্রিয়ভাবে পরিবর্তনটিকে সর্বজনীন সংগ্রহস্থলে একত্রিত করে। অন্যান্য ব্যবহারকারীরা তাদের নিজ নিজ স্থানীয় ক্লায়েন্টদের মধ্যে আপডেট টানতে repo sync চালাতে পারেন।

আপস্ট্রিম প্রকল্পের জন্য

Android সফটওয়্যার ম্যানেজমেন্টে বর্ণিত লিনাক্স কার্নেল এবং ওয়েবকিটের মতো অন্যান্য ওপেন সোর্স প্রজেক্টের একটি সংখ্যা ব্যবহার করে। external/ এর অধীনে থাকা বেশিরভাগ প্রকল্পগুলির জন্য, আপস্ট্রিম পরিবর্তনগুলি করুন, তারপরে আপনার পরিবর্তনগুলিকে ধারণ করে এমন নতুন আপস্ট্রিম রিলিজের Android রক্ষণাবেক্ষণকারীদের জানান৷

আপনি প্যাচগুলিও আপলোড করতে পারেন যার ফলে একটি নতুন আপস্ট্রিম রিলিজ ট্র্যাক করা হয়। মনে রাখবেন যে প্রকল্পটি যদি অ্যান্ড্রয়েডের মধ্যে ব্যাপকভাবে ব্যবহার করা হয় তবে এই পরিবর্তনগুলি করা কঠিন হতে পারে, নীচে উল্লিখিত বেশিরভাগ বড়গুলির মতো, যা সাধারণত প্রতিটি প্রকাশের সাথে আপগ্রেড করা হয়।

একটি আকর্ষণীয় বিশেষ ক্ষেত্রে বায়োনিক। সেখানে বেশিরভাগ কোড BSD-এর থেকে আছে, তাই যতক্ষণ না পরিবর্তনটি বায়োনিকের নতুন কোডে না হয়, অনুগ্রহ করে একটি আপস্ট্রিম ফিক্স করুন, তারপর উপযুক্ত BSD থেকে সম্পূর্ণ নতুন ফাইলের টান নিন।

অ্যান্ড্রয়েড কার্নেল

আপস্ট্রিম সব পরিবর্তন করতে পছন্দ করুন. সাধারণ নির্দেশনার জন্য, Android কার্নেল অবদান নির্দেশিকা অনুসরণ করুন।

আইসিইউ

ICU-TC হোম পেজে external/icu ( icu4c/ এবং icu4j/ ফোল্ডারে) ICU প্রকল্পের সমস্ত পরিবর্তন করুন। আরো জন্য ICU বাগ এবং বৈশিষ্ট্য অনুরোধ জমা দেখুন.

সিএলডিআর

আইসিইউতে বেশিরভাগ ভাষাগত ডেটা ইউনিকোড সিএলডিআর প্রকল্প থেকে আসে। অনুগ্রহ করে CLDR পরিবর্তনের অনুরোধগুলি ব্যবহার করে আপস্ট্রিম সমস্ত অনুরোধ জমা দিন এবং 'Android' লেবেল যোগ করুন।

এলএলভিএম/ক্ল্যাং/কম্পাইলার-আরটি

এলএলভিএম কম্পাইলার ইনফ্রাস্ট্রাকচার পৃষ্ঠায় LLVM- সম্পর্কিত প্রকল্পগুলিতে ( external/clang , external/compiler-rt , external/llvm ) সমস্ত পরিবর্তন করুন।

mksh

mirbsd.org ডোমেনে (সেখানে জমা দেওয়ার জন্য কোনো সাবস্ক্রিপশনের প্রয়োজন নেই) অথবা লঞ্চপ্যাডে miros-mksh এ একটি ইমেল পাঠিয়ে external/mksh এ MirBSD Korn Shell প্রজেক্টে সমস্ত পরিবর্তন করুন।

OpenSSL

OpenSSL পৃষ্ঠায় external/openssl এ OpenSSL প্রকল্পে সমস্ত পরিবর্তন করুন।

V8

V8 ইস্যু পৃষ্ঠায় external/v8 এ V8 প্রকল্পের সমস্ত পরিবর্তন জমা দিন। বিস্তারিত জানার জন্য V8-এ অবদান দেখুন।

ওয়েবকিট

ওয়েবকিট পৃষ্ঠায় external/webkit ওয়েবকিট প্রকল্পে সমস্ত পরিবর্তন করুন। একটি WebKit বাগ ফাইল করে প্রক্রিয়া শুরু করুন। বাগটিতে, প্ল্যাটফর্ম এবং OS ক্ষেত্রের জন্য Android ব্যবহার করুন শুধুমাত্র যদি বাগটি Android-এর জন্য নির্দিষ্ট হয়। একটি প্রস্তাবিত সমাধান যোগ করার পরে এবং পরীক্ষাগুলি অন্তর্ভুক্ত করার পরে বাগগুলি পর্যালোচকদের মনোযোগ পাওয়ার সম্ভাবনা অনেক বেশি। বিস্তারিত জানার জন্য ওয়েবকিটে অবদান রাখার কোড দেখুন।

zlib

zlib হোম পেজে external/zlib এ zlib প্রোজেক্টে সব পরিবর্তন করুন।