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