মেইনটেইনারদের জন্য পুল রিকোয়েস্ট গাইড


একজন মেইনটেইনার হিসেবে পুল রিকোয়েস্ট রিভিউ করা আপনার নিয়মিত কাজের একটি অংশ হবে। এই ডকুমেন্টে Exercism-নির্দিষ্ট কিছু পুল রিকোয়েস্ট রিভিউ নির্দেশিকা রয়েছে।

অনুশীলনীর পুল রিকোয়েস্ট রিভিউ করা

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

এই কাজের ধারা সহজ করতে আমরা নিচের সুপারিশগুলো তৈরি করেছি।

সুপারিশ: প্রথম রিভিউটির দায়িত্ব একজন সিনিয়র মেইনটেইনারের হাতে থাকুক

ঠিক একজন সিনিয়র মেইনটেইনারের হাতে প্রথম রিভিউটির দায়িত্ব থাকার কারণগুলো হলো:

  • একই রিভিউয়ের কাজ দুবার হয় না
  • কনট্রিবিউটর ও মেইনটেইনার জোড়ায় মিলে পুল রিকোয়েস্ট নিয়ে কাজ করবেন, এতে কনট্রিবিউটর আশা করি অনুভব করবেন যে তিনি এটি একা করছেন না
  • অন্য মেইনটেইনারদের কাছ থেকে পরস্পরবিরোধী রিভিউ মন্তব্য আসে না

সুপারিশ: wip স্টেটাস নিয়ে মার্জ করুন

কনট্রিবিউটর ও মেইনটেইনার দুজনেই অনুশীলনীটি নিয়ে সন্তুষ্ট হয়ে গেলে, এর status wip (কাজ চলছে) সেট করে অনুশীলনীটি মার্জ করা উচিত। এই স্টেটাসের অনুশীলনীগুলো শিক্ষার্থীদের জন্য পাওয়া যাবে না, তবে আমাদের সেরা মেন্টররা সেগুলো দেখতে পারবেন (ভবিষ্যতে যখন আমরা এটি চালু করব)। এরপর এই উচ্চ রেপুটেশনের ব্যবহারকারীরা অনুশীলনীটি টেস্ট করে দেখতে পারবেন এবং অনুশীলনীটি ঠিক করতে বা উন্নত করতে ইস্যু বা পুল রিকোয়েস্ট তৈরি করতে পারবেন।

এই পদ্ধতির প্রধান সুবিধাগুলো হলো:

  • এতে সবকিছু নিখুঁত করতে হওয়ার বোঝা মূল কনট্রিবিউটর/মেইনটেইনার জুটির উপর থেকে সরে যায়
  • এতে বহু কণ্ঠস্বর নিয়ে বিশাল পুল রিকোয়েস্ট চক্র তৈরি হয় না (যেগুলো সত্যিই সামলানো কঠিন)

প্র্যাকটিস অনুশীলনীর পুল রিকোয়েস্ট রিভিউ করা

সুপারিশ: পরিবর্তনটি সত্যিই problems-specifications-এ হওয়া উচিত কি না ভেবে দেখুন

প্র্যাকটিস অনুশীলনীর কিছু বিষয়বস্তু (যেমন এর পরিচিতি) আসে এর (শেয়ার করা) মেটাডেটা থেকে, যা নির্ধারিত থাকে problems-specifications রিপো-এ। এমন বিষয়বস্তু বদলানো কোনো পুল রিকোয়েস্ট রিভিউ করার সময় ভেবে দেখুন, পরিবর্তনটি অন্য ট্র্যাকগুলোর জন্যও উপকারী হতে পারে কি না। যদি তাই হয়, কনট্রিবিউটরকে পরামর্শ দিন যেন তিনি problems-specifications রিপো-এর সংশ্লিষ্ট ফাইলে একটি পুল রিকোয়েস্ট খোলেন।

রিভিউয়ের সাধারণ সুপারিশ

সুপারিশ: প্রতি পুল রিকোয়েস্টে একজন প্রাইমারি রিভিউয়ার

প্রতিটি পুল রিকোয়েস্টে একজন প্রাইমারি রিভিউয়ার থাকা উচিত (যে মেইনটেইনারই এটি নেন না কেন)। অন্য মেইনটেইনার এবং/অথবা কমিউনিটির সদস্যরা সেকেন্ডারি ভূমিকায় থাকবেন।

সেকেন্ডারি ভূমিকায় থাকা কেউ দুটি প্রধান উপায়ে রিভিউতে অবদান রাখতে পারেন:

  • বানান/ব্যাকরণ প্রুফরিড করা, তবে কেবল প্রাইমারি রিভিউয়ারের প্রথম রিভিউ হওয়ার পরে। কনট্রিবিউটররা বানান/ব্যাকরণের রিভিউ পেয়ে তা ঠিক করার পর যদি কোনো মেইনটেইনার এসে আরও মৌলিক পরিবর্তন করতে বলেন, তাহলে তাদের হতাশ লাগতে পারে। অন্য কথায়, প্রুফরিডিং করা হয় মৌলিক পরিবর্তনগুলো নিষ্পত্তি হওয়ার পরে (অথবা সম্ভবত ফলো-আপ পুল রিকোয়েস্টে)।
  • রিভিউয়ারের কাছে বিষয়গুলো এমনভাবে তুলে ধরা, যাতে কোনো পদক্ষেপ চাওয়ার ইঙ্গিত না থাকে। প্রাইমারি রিভিউয়ারের ভাবা উচিত বা হয়তো চোখ এড়িয়ে গেছে এমন কিছু নিয়ে আপনি মন্তব্য করলে, অনুগ্রহ করে তা মতামত হিসেবে বা প্রশ্নের আকারে লিখুন। এতে কনট্রিবিউটরের কাছে স্পষ্ট হয় যে আপনি তার কাছ থেকে কোনো পরিবর্তন চাইছেন না, ফলে তিনি কম বিভ্রান্ত হবেন। এতে প্রাইমারি রিভিউয়ারের মনে "আমাকে খাটো করা হচ্ছে" ধরনের অনুভূতি হওয়ার সম্ভাবনাও কমবে।

সুপারিশ: অসম্পর্কিত বিষয়ে মন্তব্য করবেন না

পুল রিকোয়েস্ট রিভিউ করার সময় কেবল পুল রিকোয়েস্টের সাথে সরাসরি সম্পর্কিত বিষয়ে মন্তব্য করুন। অন্য কিছু হলে অনুগ্রহ করে একটি ইস্যু খুলুন বা আলাদা একটি (ফলো-আপ) পুল রিকোয়েস্ট তৈরি করুন।

সুপারিশ: ডকুমেন্টেশনের লিংক দিন

সম্ভব হলে, কেন আপনি কোনো বিষয়ে মন্তব্য করছেন সেই কারণটি ব্যাখ্যা করে এমন ডকুমেন্টেশনের লিংক দেওয়ার চেষ্টা করুন। এতে বিষয়টি তর্কে গড়ানোর সম্ভাবনা অনেক কমে যায়।

সুপারিশ: অন্য টিমের সাহায্য চান

কোনো পুল রিকোয়েস্ট রিভিউ করতে সাহায্য চাইলে, আমাদের কাছে দুটি নির্দিষ্ট টিম আছে যাদের আপনি পিং করতে পারেন:

  • @exercism/reviewers: যেকোনো সাধারণ রিভিউয়ের জন্য
  • @exercism/github-actions: GitHub actions সম্পর্কিত যেকোনো প্রশ্নের জন্য