এই ডকুমেন্টে আলোচনা করা হয়েছে কিভাবে একটি নতুন প্লাগইন তৈরি করতে হয়। যদিও এটিতে বর্ণিত প্রক্রিয়াটি প্রথম-পক্ষের প্লাগইন তৈরির জন্য, আপনি এটি তৃতীয়-পক্ষের প্লাগইন তৈরির জন্য একটি নির্দেশিকা হিসেবে ব্যবহার করতে পারেন।
প্লাগইনগুলির একটি সারসংক্ষেপের জন্য, প্লাগইনগুলি দেখুন।
প্লাগইন তৈরির দ্রুত ভূমিকার জন্য, আমাদের "কিভাবে প্লাগইন তৈরি করবেন" আলোচনা (২০২১) দেখুন।
প্রথম পক্ষ বনাম তৃতীয় পক্ষ
প্লাগইনের টার্গেট ব্যবহারকারী হলেন একজন ডেভেলপার যিনি npm এর মাধ্যমে প্লাগইনটি খুঁজে পান এবং ব্যবহার করেন।
প্রথম-পক্ষের প্লাগইনগুলি ব্লকলি টিম দ্বারা সমর্থিত এবং npm-এ @blockly স্কোপের অধীনে প্রকাশিত হয়। এগুলি ব্লকলি অ্যাপ্লিকেশনের বিস্তৃত পরিসরে ব্যবহারযোগ্য এবং স্থিতিশীল এবং ব্যবহার করা সহজ। এগুলি ব্লকলি-স্যাম্পলগুলিতে সংরক্ষণ করা হয়। অনেক রোবোটিক্স প্রকল্পে মোটর গতি নির্ধারণের জন্য একটি ক্ষেত্র ব্যবহার করা যেতে পারে এবং এটি একটি প্রথম-পক্ষের প্লাগইনের জন্য একটি ভাল প্রার্থী।
তৃতীয় পক্ষের প্লাগইনগুলি স্বাধীনভাবে রক্ষণাবেক্ষণ এবং প্রকাশিত হয়। এগুলি আরও জটিল, আরও পরীক্ষামূলক, অথবা ব্লকলি অ্যাপ্লিকেশনের একটি সংকীর্ণ পরিসরের জন্য লক্ষ্যবস্তু হতে পারে। তৃতীয় পক্ষের প্লাগইন হিসাবে আপনার ডাটাবেস স্কিমা দ্বারা সংজ্ঞায়িত একটি নির্দিষ্ট বস্তু সম্পাদনা করার জন্য একটি ক্ষেত্র ভাল।
প্রথম পক্ষের মানদণ্ড
প্রথম পক্ষের প্লাগইনগুলিকে অবশ্যই এই প্রয়োজনীয়তাগুলি পূরণ করতে হবে :
- ব্লকলি টিম কর্তৃক অব্যাহতি না দেওয়া পর্যন্ত, সমস্ত প্রধান প্ল্যাটফর্মে কাজ করুন।
- ক্রোম, ফায়ারফক্স, সাফারি, এজ
- এমন একজন লেখক রাখুন যিনি প্রথম বছর বাগগুলি পরিচালনা করতে ইচ্ছুক।
- ব্লকলিকে মাঙ্কিপ্যাচ করো না।
- একটি স্পষ্টভাবে সংজ্ঞায়িত এবং নথিভুক্ত API রাখুন।
- ব্লকলি কোর থেকে প্রাইভেট বা প্যাকেজ ফাংশন কল করবেন না, যদি না ব্লকলি টিম কর্তৃক অব্যাহতি দেওয়া হয়।
- আপনার সংজ্ঞায়িত একটি সাবক্লাসে প্যাকেজ ফাংশন ওভাররাইড করা অনুমোদিত।
- যদি আপনি ছাড় চান, তাহলে ব্লকলি-স্যাম্পল সম্পর্কিত একটি সংখ্যায় আমাদের জিজ্ঞাসা করুন।
- পরীক্ষা আছে।
প্রক্রিয়াটি
প্লাগইনগুলি চারটি ধাপ অতিক্রম করে: পরামর্শ , আলোচনা , বাস্তবায়ন এবং প্রকাশনা ।
পরামর্শ
একটি প্লাগইন একটি পরামর্শ হিসেবে শুরু হয়। আপনি ফিচার রিকোয়েস্ট টেমপ্লেটের সাথে একটি নতুন সমস্যা তৈরি করে একটি প্লাগইন সাজেস্ট করতে পারেন। আরও তথ্যের জন্য, ফিচার রিকোয়েস্ট কীভাবে লিখতে হয় সে সম্পর্কে পড়ুন।
মৌলিক বৈশিষ্ট্য অনুরোধের তথ্য ছাড়াও, একটি প্লাগইন পরামর্শে অন্তর্ভুক্ত থাকা উচিত:
- প্লাগইনটি যে API প্রকাশ করবে।
- প্লাগইন সমর্থন করার জন্য কোর ব্লকলিতে যে API গুলি যোগ বা পরিবর্তন করতে হবে।
- যদি প্লাগইনটিতে UI বৈশিষ্ট্য থাকে তবে স্ক্রিনশট, GIF, অথবা মক-আপ।
- কেন এটি তৃতীয় পক্ষের প্লাগইনের পরিবর্তে প্রথম পক্ষের প্লাগইন হওয়া উচিত তার একটি ব্যাখ্যা।
ব্লকলি টিম পরামর্শ আসার সাথে সাথে পর্যালোচনা করে এবং হয় সমস্যাটি বন্ধ করে দেয় অথবা সম্মত হয় যে এটি একটি ভাল প্রথম পক্ষের প্লাগইন হবে।
আলোচনা
এরপর, একটি প্লাগইন আলোচনার পর্যায়ে যায়। এই পর্যায়ে অন্তর্ভুক্ত রয়েছে:
- কাঙ্ক্ষিত কার্যকারিতার স্পষ্টীকরণ।
- প্লাগইনের API-এর স্পষ্টীকরণ।
- বাস্তবায়নের পরিকল্পনা।
- পরীক্ষার পরিকল্পনা।
- ব্লকলির মূল সংস্করণে API পরিবর্তনের আলোচনা।
- বৃহৎ প্লাগইনগুলিকে বাস্তবায়নের ধাপে ভাগ করা।
- আমাদের নামকরণের নিয়মের উপর ভিত্তি করে প্লাগইন নামকরণ।
- প্রথম পক্ষের সকল মানদণ্ড পূরণ করা হবে কিনা তা নিশ্চিত করা।
এই আলোচনা সাধারণত GitHub ইস্যুতে হয়। প্লাগইনের পরিধি যত ছোট হবে, আলোচনার পর্ব তত দ্রুত হতে পারে। বৃহত্তর প্লাগইনগুলি সম্প্রদায়ের দৃষ্টি আকর্ষণ করতে পারে এবং সঠিক সমাধান সম্পর্কে দৃঢ় মতামত পেতে পারে। যদি আপনার সমস্যায় এটি ঘটে, তাহলে অভিনন্দন! আপনি এমন কিছু খুঁজে পেয়েছেন যা মানুষ গুরুত্ব দেয়।
লক্ষ্য হলো আলোচনা পর্বের শেষে, সমস্ত প্রধান নকশা সিদ্ধান্ত নেওয়া হয়েছে এবং বাস্তবায়ন পদক্ষেপগুলির একটি স্পষ্ট তালিকা রয়েছে। উভয়ই বিষয়টির উপর মন্তব্যে নথিভুক্ত করা উচিত।
আলোচনার সময় আমরা সিদ্ধান্ত নিতে পারি যে একটি প্লাগইন একটি তৃতীয় পক্ষের প্লাগইন হওয়া উচিত, এবং @blockly স্কোপের অধীনে প্রকাশিত হওয়া উচিত নয়। সেক্ষেত্রে আমরা কেন তা ব্যাখ্যা করব এবং সমস্যাটি বন্ধ করব।
আলোচনা শেষ হলে ব্লকলি টিমের একজন সদস্য নোট করেন যে এটি বাস্তবায়নের জন্য প্রস্তুত।
বাস্তবায়ন
বাস্তবায়নের ধাপগুলির মধ্যে রয়েছে:
- একটি টেমপ্লেট থেকে প্লাগইন এবং এর ডিরেক্টরি সেট আপ করতে
npx @blockly/create-packageচালানো হচ্ছে। আরও জানুন... - প্লাগইনের জন্য মূল যুক্তি বাস্তবায়ন করা হচ্ছে।
- প্রয়োজনে একটি UI বাস্তবায়ন করা।
- মোচা ব্যবহার করে প্লাগইনটি পরীক্ষা করা হচ্ছে।
-
READMEসহ প্লাগইনটি ডকুমেন্ট করা।
যদি কোনও প্রস্তাবিত প্লাগইন বাস্তবায়নের জন্য অনুমোদিত হয়ে থাকে এবং আপনি এটিতে কাজ করতে চান, তাহলে সমস্যাটি সম্পর্কে মন্তব্য করুন এবং জিজ্ঞাসা করুন যে এটি এখনও অবদানের জন্য উন্মুক্ত কিনা।
একাধিক অবদানকারীর দ্বারা সমান্তরালভাবে বাস্তবায়ন করা যেতে পারে। আপনি আপনার নিজস্ব ফর্কের মাধ্যমে অথবা এই সংগ্রহস্থলের বিরুদ্ধে পুল অনুরোধের মাধ্যমে একটি প্লাগইন সহযোগিতামূলকভাবে বাস্তবায়ন করতে পারেন। আপনি যদি এই সংগ্রহস্থলের একটি প্লাগইনে সহযোগিতা করতে চান, তাহলে ব্লকলি টিমকে আপনার জন্য একটি বৈশিষ্ট্য শাখা তৈরি করতে বলুন।
blockly-samples এর master শাখার gh-pages/_index.html ফাইলে প্লাগইন যোগ করা উচিত। এর ফলে আমাদের প্লাগইন সাইটে এগুলো দেখা যাবে। প্রথম পক্ষের প্লাগইনগুলো তাদের পরীক্ষা পৃষ্ঠার দিকে নির্দেশ করবে। তৃতীয় পক্ষের প্লাগইনগুলোও এই পৃষ্ঠায় যোগ করা যেতে পারে এবং তাদের মালিকের পছন্দের লিঙ্ক, যেমন হোস্ট করা ডেমো বা npm পৃষ্ঠা, নির্দেশ করতে পারে।
প্রকাশনা
অবশেষে, প্রকাশনা । ব্লকলি টিম সমস্ত প্লাগইনের সংস্করণ এবং প্রকাশনা পরিচালনা করতে Lerna ব্যবহার করে।
প্রতি বৃহস্পতিবার, শেষ প্রকাশের পর থেকে পরিবর্তিত যেকোনো প্লাগইন প্রকাশিত হয়। যদি আপনার দ্রুত প্রকাশের জন্য কোনও পরিবর্তনের প্রয়োজন হয়, তাহলে অনুগ্রহ করে আপনার পুল অনুরোধে এটি লিখে রাখুন।
প্লাগইন প্রকাশিত হলে প্লাগইন সাইটটিও আপডেট করা হয়।
যেসব প্লাগইন প্রকাশের জন্য প্রস্তুত নয়, তাদের package.json এ private চিহ্নিত করা উচিত। যদি কোনও প্লাগইন কোর ব্লকলি তে এখনও প্রকাশিত না হওয়া পরিবর্তনের উপর নির্ভর করে তবে এটি ঘটতে পারে। কোর ব্লকলি প্রতি ত্রৈমাসিকের শেষ সপ্তাহে (প্রতি তিন মাসে একবার) প্রকাশিত হয়।