রেপুটেশন

রেপুটেশন সিস্টেম সম্পর্কে জানুন।


রেপুটেশন হলো এমন একটি সিস্টেম, যা দিয়ে মানুষ Exercism ইকোসিস্টেমে "আস্থা" অর্জন করতে পারে।

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

রেপুটেশন "খরচ" করা যায় না, "ব্যবহার"ও করা যায় না। তবে নির্দিষ্ট মাত্রায় রেপুটেশন অর্জন করলে নতুন নতুন বিশেষাধিকার আর অবদান রাখার নতুন নতুন পথ খুলে যায়। সহজ কথায়, কারও রেপুটেশন যত বেশি, আমরা তাকে তত বেশি বিশ্বাস করতে পারি বলে মনে করি, আর তাই সে তত বেশি ক্ষমতাও পায়। রেপুটেশন হলো আপনি Exercism-কে কতটা দিয়েছেন, তার একটি প্রকাশ্যে দেখা যায় এমন মাপকাঠিও।

উদ্দেশ্য

রেপুটেশন সিস্টেমের উদ্দেশ্য হলো:

  1. শিক্ষার্থী আর মেন্টরের মধ্যে এমন মিথস্ক্রিয়া বাড়িয়ে তোলা, যেগুলোর কেন্দ্রে থাকে শিক্ষার্থীর অগ্রগতি
  2. মেন্টরদের অবদান রাখার ইচ্ছা বাড়িয়ে তোলা

রেপুটেশন অর্জন

রেপুটেশন নানা ভাবে অর্জন করা যায়:

কাজ রেপুটেশন
সফলভাবে একটি সলিউশন মেন্টর করা ৫
একটি সলিউশন পাবলিশ করা ১-৩
একটি অনুশীলনী লেখা ২০
একটি অনুশীলনী হালনাগাদ করা ১০
একটি কনসেপ্ট লেখা ১০
একটি কনসেপ্ট হালনাগাদ করা ৫
একটি পুল রিকোয়েস্ট তৈরি করা ৩-১০০
একটি পুল রিকোয়েস্ট রিভিউ করা ১-২০
একটি পুল রিকোয়েস্ট মার্জ করা ১-৫

সফলভাবে একটি সলিউশন মেন্টর করা

প্রতিটি সফলভাবে মেন্টর করা সলিউশনের জন্য (অর্থাৎ আলোচনা শেষ হয়েছে) 5 রেপুটেশন দেওয়া হয়।

একটি সলিউশন পাবলিশ করা

প্রতিটি পাবলিশ করা সলিউশনের জন্য অনুশীলনীটি কত কঠিন, তার ওপর নির্ভর করে রেপুটেশন দেওয়া হয়:

লেবেল রেপুটেশন
easy ১
medium ২
hard ৩

একটি অনুশীলনী লেখা

যে প্রতিটি অনুশীলনীতে ব্যবহারকারী লেখক হিসেবে তালিকাভুক্ত, তার জন্য 20 রেপুটেশন দেওয়া হয়।

একটি অনুশীলনী হালনাগাদ করা

যে প্রতিটি অনুশীলনীতে ব্যবহারকারী কন্ট্রিবিউটর হিসেবে তালিকাভুক্ত, তার জন্য 10 রেপুটেশন দেওয়া হয়।

একটি কনসেপ্ট লেখা

যে প্রতিটি কনসেপ্টে ব্যবহারকারী লেখক হিসেবে তালিকাভুক্ত, তার জন্য 10 রেপুটেশন দেওয়া হয়।

একটি কনসেপ্ট হালনাগাদ করা

যে প্রতিটি কনসেপ্টে ব্যবহারকারী কন্ট্রিবিউটর হিসেবে তালিকাভুক্ত, তার জন্য 5 রেপুটেশন দেওয়া হয়।

একটি পুল রিকোয়েস্ট তৈরি করা

ডিফল্টভাবে ব্যবহারকারী যে পুল রিকোয়েস্ট খুলেছেন, সেটি মার্জ হলে 12 রেপুটেশন দেওয়া হয়।

পুল রিকোয়েস্টের বিষয়বস্তুর ওপর নির্ভর করে একজন মেইনটেইনার নিচের লেবেলগুলোর একটি পুল রিকোয়েস্টে যোগ করে বেশি (বা কম) রেপুটেশন দিতে পারেন:

লেবেল রেপুটেশন উদাহরণ
x:rep/tiny ৩
  • একটি টাইপো বা লিংক ঠিক করা
  • একটি খালি লাইন মুছে ফেলা বা একটি লাইন ব্রেক যোগ করা
  • একটি কোড কমেন্ট বদলানো বা যোগ করা
x:rep/small ৫
  • একটি টেস্ট কেস, টাস্ক বা উদাহরণ ঠিক করা
  • একটি ফাইলের একাধিক টাইপো বা লিংক ঠিক করা
  • একটি ফাইলে কয়েকটি লাইন যোগ করে বিষয়বস্তু স্পষ্ট করা
x:rep/medium ১২
  • problem-specifications-এর সঙ্গে একটি অনুশীলনী সিঙ্ক করা (সম্পাদনা সহ)
  • একদম নতুন করে এক বা একাধিক টেস্ট কেস যোগ করা
  • একটি অনুশীলনীর একাধিক ফাইল উন্নত করা
  • একটি অনুশীলনীর জন্য একদম নতুন করে মেন্টর নোট যোগ করা
  • একটি টেস্ট রানার/অ্যানালাইজার/রিপ্রেজেন্টারের ছোটখাটো বাগ ঠিক করা
  • একটি অনুশীলনীর জন্য অ্যানালাইজার কমেন্ট যোগ করা
x:rep/large ৩০
  • নতুন একটি কনসেপ্ট অনুশীলনী বা প্র্যাকটিস অনুশীলনী যোগ করা
  • নতুন কনসেপ্ট ডকুমেন্টেশন যোগ করা
  • বিদ্যমান কোনো কনসেপ্ট বা অনুশীলনী উল্লেখযোগ্যভাবে নতুন করে লেখা
  • নতুন CI স্ক্রিপ্ট বা অন্য কোনো অটোমেশন যোগ করা
x:rep/massive ১০০
  • একদম নতুন করে একটি টেস্ট রানার, অ্যানালাইজার, রিপ্রেজেন্টার বা জেনারেটর তৈরি করা
  • ওই টুলগুলোতে বড়সড় রিফ্যাক্টর করা
  • একদম নতুন করে বড়সড় ডকুমেন্টেশন তৈরি করা (যেমন কন্ট্রিবিউশন বা টেস্টিং গাইড)

উপরের উদাহরণগুলো কোন লেবেল কখন দিতে হবে, তা মোটামুটি বুঝতে সাহায্য করবে, তবে মেইনটেইনাররা নিজেদের বিচারবুদ্ধি খাটাতে স্বাধীন।

  • এখানে সময়ের যে আনুমানিক হিসাব দেওয়া আছে, সেটিকে ধরে নিতে হবে একজন মেইনটেইনার ওই PR করতে গড়ে যতটা সময় দেবেন, ততটা।
  • একাধিক লেবেল দেওয়া হলে যে লেবেলের রেপুটেশন মান সবচেয়ে বেশি, সেটিই দেওয়া রেপুটেশন নির্ধারণ করে।
  • পুল রিকোয়েস্ট এখনও খোলা থাকলে (তখনও) কোনো রেপুটেশন দেওয়া হয় না।
  • পুল রিকোয়েস্ট মার্জ ছাড়াই বন্ধ হয়ে গেলে কোনো রেপুটেশন দেওয়া হয় না।

পূর্বের ভার্সনের সঙ্গে সামঞ্জস্য রাখার জন্য দেওয়া রেপুটেশন নির্ধারণে x:size লেবেল ব্যবহারেরও সমর্থন আমরা রাখি।

একটি পুল রিকোয়েস্ট রিভিউ করা

ব্যবহারকারী যে পুল রিকোয়েস্টগুলো রিভিউ করেছেন আর যেগুলো মার্জ বা বন্ধ হয়েছে, তার প্রতিটির জন্য 5 রেপুটেশন দেওয়া হয়।

  • পুল রিকোয়েস্ট এখনও খোলা থাকলে (তখনও) কোনো রেপুটেশন দেওয়া হয় না।

  • প্রতি পুল রিকোয়েস্টে প্রতি ব্যবহারকারীর জন্য রিভিউয়ের রেপুটেশন কেবল একবারই দেওয়া হয়।

  • যে ব্যবহারকারী পুল রিকোয়েস্টটি খুলেছেন, তিনি নিজের পুল রিকোয়েস্ট রিভিউ করে রেপুটেশন পান না।

  • পুল রিকোয়েস্ট রিভিউয়ের জন্য দেওয়া রেপুটেশন বদলে যায়, যদি পুল রিকোয়েস্টে নিচের লেবেলগুলোর একটি যোগ করা হয়:

    লেবেল রেপুটেশন
    x:rep/tiny ১
    x:rep/small ২
    x:rep/medium ৫
    x:rep/large ১০
    x:rep/massive ২০

    একটি পুল রিকোয়েস্টের লেখক আর রিভিউয়ারের জন্য আলাদা আলাদা রেপুটেশন "সাইজ" ব্যবহার করা সম্ভব নয়। দুটোই একই x:rep লেবেলের ওপর নির্ভর করে।

    একাধিক লেবেল দেওয়া হলে যে লেবেলের রেপুটেশন মান সবচেয়ে বেশি, সেটিই দেওয়া রেপুটেশন নির্ধারণ করে।

    পূর্বের ভার্সনের সঙ্গে সামঞ্জস্য রাখার জন্য দেওয়া রেপুটেশন নির্ধারণে x:size লেবেল ব্যবহারেরও সমর্থন আমরা রাখি।

একটি পুল রিকোয়েস্ট মার্জ করা

ব্যবহারকারী যে পুল রিকোয়েস্টগুলো মার্জ করেছেন, তার প্রতিটির জন্য 1 রেপুটেশন দেওয়া হয়।

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

একটি ইস্যু খোলা

পুল রিকোয়েস্টের মতোই, ডিফল্টভাবে একটি ইস্যু খোলা হলে কোনো রেপুটেশন দেওয়া হয় না। পুল রিকোয়েস্টের বিপরীতে, কেবল বড় বা বিশাল ইস্যুর জন্যই রেপুটেশন দেওয়া হয়।

ইস্যুর বিষয়বস্তুর ওপর নির্ভর করে একজন মেইনটেইনার নিচের লেবেলগুলোর একটি ইস্যুতে যোগ করে রেপুটেশন দেওয়ার সিদ্ধান্ত নিতে পারেন:

লেবেল রেপুটেশন উদাহরণ
x:rep/large ৩০
  • পুরোপুরি বিস্তারিত করে লেখা কনসেপ্ট অনুশীলনী
x:rep/massive ১০০
  • একটি ট্র্যাকের কারিকুলাম ডিজাইন করা

উপরের উদাহরণগুলো কোন লেবেল কখন দিতে হবে, তা মোটামুটি বুঝতে সাহায্য করবে, তবে মেইনটেইনাররা নিজেদের বিচারবুদ্ধি খাটাতে স্বাধীন।

  • রেপুটেশন দিয়ে বোঝা উচিত ইস্যুটি তৈরি করতে একজন মেইনটেইনার কতটা পরিশ্রম করবেন।

  • একাধিক লেবেল দেওয়া হলে যে লেবেলের রেপুটেশন মান সবচেয়ে বেশি, সেটিই দেওয়া রেপুটেশন নির্ধারণ করে।