এই পৃষ্ঠাটি ব্যাখ্যা করে কিভাবে আপনি Extensions Hub-এ একটি এক্সটেনশন প্রকাশ করতে পারেন।
শুরু করার আগে
একটি এক্সটেনশন প্রকাশ করতে, প্রথমে আপনাকে এক্সটেনশন প্রকাশক হিসেবে নিবন্ধন করতে হবে।
যাচাইযোগ্য উৎস
এক্সটেনশন হাবে প্রকাশিত সমস্ত এক্সটেনশনের অবশ্যই একটি সর্বজনীনভাবে যাচাইযোগ্য উৎস থাকতে হবে। এক্সটেনশন হাবে সরাসরি আপনার এক্সটেনশন সোর্স কোড আপলোড করার পরিবর্তে, আপনি উৎসের অবস্থান নির্দিষ্ট করুন এবং এক্সটেনশন হাব এটি ডাউনলোড করবে এবং সেখান থেকে এটি তৈরি করবে।
বর্তমানে, এর অর্থ হল আপনার এক্সটেনশন সোর্স কোডটি একটি পাবলিক গিটহাব রিপোজিটরিতে উপলব্ধ করা।
যাচাইযোগ্য উৎস থেকে আপলোড করার বেশ কিছু সুবিধা রয়েছে:
- ব্যবহারকারীরা ইনস্টল করা এক্সটেনশনের নির্দিষ্ট সংস্করণের সোর্স কোড পরীক্ষা করতে পারবেন।
- আপনি নিশ্চিত করতে পারেন যে আপনি কেবল যা আপলোড করতে চান তা আপলোড করছেন, এবং উদাহরণস্বরূপ, চলমান কাজ, অথবা ডেভেলপমেন্ট থেকে অবশিষ্ট ফাইলগুলি নয়।
প্রস্তাবিত উন্নয়ন চক্র
ফায়ারবেস এক্সটেনশন ডেভেলপমেন্ট টুলগুলি আপনার এক্সটেনশনের প্রি-রিলিজ সংস্করণ আপলোড করতে সহায়তা করে, যা আপনার এক্সটেনশন এবং এক্সটেনশন ইনস্টলেশন প্রক্রিয়াটি একই পরিবেশে পরীক্ষা করা সহজ করে তোলে যেখানে সেগুলি অবশেষে প্রকাশিত হবে।
এই ক্ষমতা নিম্নলিখিত ধরণের একটি উন্নয়ন চক্র সম্ভব করে তোলে:
Firebase Emulator Suite ব্যবহার করে আপনার এক্সটেনশনটি ডেভেলপ করুন এবং দ্রুত পুনরাবৃত্তি করুন।
স্থানীয় উৎস থেকে ইনস্টল করে একটি বাস্তব প্রকল্পে আপনার এক্সটেনশনটি পরীক্ষা করুন:
firebase ext:install /path/to/extensionfirebase deploy --only extensionsএক্সটেনশন হাবে একটি প্রি-রিলিজ ভার্সন আপলোড করুন (নীচে দেখুন)। আরও বিস্তৃত পরীক্ষার জন্য ইনস্টলেশন লিঙ্কটি বিতরণ করুন এবং প্রয়োজনে আরও প্রি-রিলিজ ভার্সন আপলোড করে পুনরাবৃত্তি করুন।
এক্সটেনশন হাবে (নীচে দেখুন) চূড়ান্ত, স্থিতিশীল সংস্করণটি আপলোড করুন এবং পর্যালোচনার জন্য জমা দিন। যদি এক্সটেনশনটি পর্যালোচনায় উত্তীর্ণ হয়, তাহলে এটি এক্সটেনশন হাবে প্রকাশিত হবে।
extension.yamlএ সংস্করণ নম্বরটি বাড়ান এবং আপনার এক্সটেনশনের পরবর্তী সংস্করণের জন্য এই চক্রটি পুনরাবৃত্তি করুন।
একটি নতুন এক্সটেনশন আপলোড করুন
প্রথমবারের জন্য একটি এক্সটেনশন আপলোড করতে:
ঐচ্ছিক : আপনার কোডটি একটি পাবলিক GitHub রিপোজিটরিতে জমা দিন।
Firebase CLI এর
ext:dev:uploadকমান্ডটি চালান:গিটহাব
firebase ext:dev:upload your_publisher_id/your_extension_idস্থানীয় উৎস
cd /path/to/extensionfirebase ext:dev:upload your_publisher_id/your_extension_id --localআপনার কমান্ড ইনভোকেশনে, আপনি নিম্নলিখিতগুলি উল্লেখ করবেন:
আপনার নিবন্ধিত প্রকাশক আইডি।
একটি আইডি স্ট্রিং যা এক্সটেনশনটি সনাক্ত করবে। আপনার এক্সটেনশনের নাম নিম্নলিখিত ফর্ম্যাটে দিন:
firebase-product - description-of-tasks-performed। উদাহরণস্বরূপ:firestore-bigquery-export
কমান্ডটি আপনাকে অতিরিক্ত তথ্যের জন্য অনুরোধ করবে:
যদি আপনি GitHub থেকে আপলোড করেন:
GitHub-এ এক্সটেনশনের রিপোজিটরির URL। মনে রাখবেন যে একটি রিপোজিটরিতে একাধিক এক্সটেনশন থাকতে পারে যতক্ষণ না প্রতিটি এক্সটেনশনের একটি অনন্য রুট থাকে।
যখন আপনি প্রথমবারের মতো একটি নতুন এক্সটেনশন আপলোড করবেন, তখন রিপোজিটরিটি আপনার এক্সটেনশনের জন্য ক্যানোনিকাল উৎস হিসেবে নিবন্ধিত হবে।
রিপোজিটরির ডিরেক্টরি যেখানে আপনার এক্সটেনশন রয়েছে।
আপনি যে কমিট থেকে আপনার এক্সটেনশন সংস্করণ উৎস তৈরি করতে চান তার Git রেফারেন্স। এটি একটি কমিট হ্যাশ, ট্যাগ, অথবা শাখার নাম হতে পারে।
আপনার আপলোড করা সংস্করণের প্রকাশের পর্যায়।
alpha,betaএবংrc(রিলিজ ক্যান্ডিডেট) পর্যায়গুলি পরীক্ষকদের ইনস্টল করার জন্য প্রাক-রিলিজ সংস্করণ আপলোড করার জন্য। একটি নতুন এক্সটেনশনের প্রাথমিক আপলোডের জন্য এই পর্যায়গুলির মধ্যে একটি ব্যবহার করুন।এক্সটেনশন হাবে প্রকাশের জন্য পাবলিক রিলিজের জন্য
stableস্টেজ ব্যবহার করা হয়। একটিstableরিলিজ আপলোড করলে স্বয়ংক্রিয়ভাবে একটি পর্যালোচনা শুরু হবে এবং যদি এটি পাস করে, তাহলে এক্সটেনশনটি প্রকাশ করা হবে।
লক্ষ্য করুন আপনি কোনও সংস্করণ নম্বর নির্দিষ্ট করেন না—এই মানটি
extension.yamlফাইল থেকে আসে। যখন আপনি একটি প্রি-রিলিজ এক্সটেনশন সংস্করণ আপলোড করেন, তখন স্টেজ এবং আপলোড নম্বরটি সংস্করণের সাথে যুক্ত করা হয়। উদাহরণস্বরূপ, যদিextension.yamlসংস্করণ 1.0.1 নির্দিষ্ট করে এবং আপনি একটি রিলিজ প্রার্থী আপলোড করেন, তাহলে এর ফলে সংস্করণ1.0.1-rc.0হবে; একই সংস্করণের অন্য একটি রিলিজ প্রার্থী আপলোড করলে স্বয়ংক্রিয়ভাবে গণনা বৃদ্ধি পাবে, যার ফলে1.0.1-rc.1হবে, ইত্যাদি।
এখন যেহেতু আপনি এক্সটেনশনটির একটি প্রাক-প্রকাশিত সংস্করণ আপলোড করেছেন, আপনি এটি পরীক্ষার জন্য অন্যদের সাথে ভাগ করে নিতে পারেন। ব্যবহারকারীরা দুটি উপায়ে আপনার এক্সটেনশন ইনস্টল করতে পারেন:
কনসোলের সাহায্যে : ব্যবহারকারীরা নিম্নলিখিত ফর্ম্যাট সহ একটি লিঙ্কে ক্লিক করে এক্সটেনশনটি ইনস্টল করতে পারবেন:
https://console.firebase.google.com/project/_/extensions/install?ref=your_publisher_id/your_extension_id@version
আপনি আপনার পরীক্ষকদের সাথে সরাসরি লিঙ্কটি শেয়ার করতে পারেন।
CLI : এর সাহায্যে ব্যবহারকারীরা
ext:installকমান্ডে এক্সটেনশন আইডি স্ট্রিং পাস করে এক্সটেনশনটি ইনস্টল করতে পারবেন:firebase ext:install your_publisher_id/your_extension_id@version \ --project=destination_project_id
একটি আপডেটেড ভার্সন আপলোড করুন
এক্সটেনশনের প্রথম সংস্করণ আপলোড করার পরে, আপনি সমস্যা সমাধানের জন্য, বৈশিষ্ট্য যোগ করার জন্য, অথবা প্রকাশের পর্যায়ে অগ্রসর হওয়ার জন্য আপডেটগুলি আপলোড করতে পারেন। যখন আপনি একটি নতুন সংস্করণ আপলোড করবেন, তখন আপনার এক্সটেনশনের একটি পুরানো সংস্করণ ইনস্টল করা ব্যবহারকারীদের Firebase কনসোলে আপগ্রেড করার জন্য অনুরোধ করা হবে।
আপডেট আপলোড করতে:
ঐচ্ছিক : আপনার কোডটি একটি পাবলিক গিট রিপোজিটরিতে কমিট করুন।
Firebase CLI এর
ext:dev:uploadকমান্ডটি চালান:গিটহাব
firebase ext:dev:upload your_publisher_id/your_extension_idএবার আপনাকে GitHub রিপোজিটরি বা এক্সটেনশন রুট ডিরেক্টরি নির্দিষ্ট করতে বলা হবে না কারণ সেগুলি ইতিমধ্যেই আপনার এক্সটেনশনের জন্য কনফিগার করা হয়েছে। যদি আপনি তারপর থেকে আপনার রিপোজিটরি কাঠামো পুনর্নির্মাণ করে থাকেন বা একটি নতুন রিপোজিটরিতে স্থানান্তরিত করে থাকেন, তাহলে আপনি
--rootএবং--repoকমান্ড আর্গুমেন্ট ব্যবহার করে সেগুলি পরিবর্তন করতে পারেন।স্থানীয় উৎস
cd /path/to/extensionfirebase ext:dev:upload your_publisher_id/your_extension_id --local
প্রকাশনার জন্য একটি এক্সটেনশন জমা দিন
যখন আপনি আপনার এক্সটেনশনটি সর্বজনীনভাবে প্রকাশ করার জন্য প্রস্তুত হবেন:
আপনার কোডটি একটি পাবলিক গিট রিপোজিটরিতে কমিট করুন। (পাবলিক রিলিজের জন্য প্রয়োজনীয়।)
Firebase CLI এর
ext:dev:uploadকমান্ডটি চালান,stableরিলিজ স্টেজ হিসেবে উল্লেখ করুন:firebase ext:dev:upload your_publisher_id/your_extension_idযদি আপনি আগে আপনার এক্সটেনশনের একটি সংস্করণ প্রকাশ করে থাকেন, তাহলে একটি নতুন স্থিতিশীল রিলিজ আপলোড করলে এক্সটেনশনটি স্বয়ংক্রিয়ভাবে পর্যালোচনার জন্য জমা পড়বে।
যদি আপনি এক্সটেনশনের প্রথম স্থিতিশীল রিলিজ আপলোড করে থাকেন, তাহলে আপনার প্রকাশক ড্যাশবোর্ডে এক্সটেনশনটি খুঁজুন এবং এক্সটেনশন হাবে প্রকাশ করুন ক্লিক করুন।
একবার জমা দেওয়া হলে, পর্যালোচনা হতে কয়েক দিন সময় লাগতে পারে। গৃহীত হলে, এক্সটেনশনটি এক্সটেনশন হাবে প্রকাশিত হবে। প্রত্যাখ্যাত হলে, কারণ ব্যাখ্যা করে আপনি একটি বার্তা পাবেন; তারপরে আপনি রিপোর্ট করা সমস্যাগুলি সমাধান করতে পারেন এবং পর্যালোচনার জন্য পুনরায় জমা দিতে পারেন।
পর্যালোচনা দ্রুত করতে এবং প্রথম চেষ্টাতেই পাস করার সম্ভাবনা বাড়াতে, জমা দেওয়ার আগে, নিম্নলিখিতগুলি দুবার পরীক্ষা করে দেখুন:
- আপনি আপনার এক্সটেনশন এবং ইনস্টলেশন প্রক্রিয়াটি পুঙ্খানুপুঙ্খভাবে পরীক্ষা করেছেন।
- আপনার ডকুমেন্টেশন সম্পূর্ণ এবং সঠিক, এবং Firebase কনসোলে ভালোভাবে রেন্ডার করে।
- আপনার প্রকাশকের নাম এবং ব্র্যান্ডিং আপনাকে স্পষ্ট এবং নির্ভুলভাবে প্রকাশক হিসেবে শনাক্ত করে।
- আপনার এক্সটেনশনের নাম, বিবরণ এবং আইকন স্পষ্টভাবে এবং সঠিকভাবে আপনার এক্সটেনশনের উদ্দেশ্যকে উপস্থাপন করে।
- আপনি সহায়ক এবং নির্ভুল ট্যাগ প্রয়োগ করেছেন।
- আপনি
extension.yamlএ আপনার ব্যবহৃত সমস্ত Google এবং নন-Google API এবং আপনার এক্সটেনশন থেকে নির্গত সমস্ত ইভেন্ট প্রকার ঘোষণা করেছেন। - আপনি এক্সটেনশনটি কার্যকর করার জন্য শুধুমাত্র প্রয়োজনীয় ভূমিকাগুলিতে অ্যাক্সেসের অনুরোধ করছেন এবং আপনি ব্যবহারকারীদের স্পষ্টভাবে ব্যাখ্যা করেছেন যে কেন আপনার এই অ্যাক্সেসের প্রয়োজন।
- আপনার সোর্স ফাইলগুলি স্পষ্টতই
Apache-2.0এর শর্তাবলীর অধীনে লাইসেন্সপ্রাপ্ত।
আপলোড করা এবং প্রকাশিত এক্সটেনশনগুলি পরিচালনা করুন
আপনার আপলোড করা এক্সটেনশনগুলির তালিকা তৈরি করুন
আপনার প্রকাশক আইডির অধীনে আপলোড করা এক্সটেনশনগুলির তালিকা তৈরি করতে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
প্রকাশক ড্যাশবোর্ড
প্রকাশক ড্যাশবোর্ডে সেগুলি দেখুন।
ফায়ারবেস সিএলআই
ext:dev:list কমান্ডটি চালান:
firebase ext:dev:list your_publisher_idআপনার আপলোড করা এক্সটেনশনের ব্যবহার দেখুন
আপনার প্রকাশক আইডির অধীনে আপলোড করা এক্সটেনশনগুলির ব্যবহার দেখতে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
প্রকাশক ড্যাশবোর্ড
প্রকাশক ড্যাশবোর্ডে আপনার সমস্ত এক্সটেনশনের জন্য ক্রমবর্ধমান ব্যবহারের মেট্রিক্স এবং প্রতিটি এক্সটেনশনের জন্য পৃথক মেট্রিক্স রয়েছে।
ফায়ারবেস সিএলআই
ext:dev:usage কমান্ডটি চালান:
firebase ext:dev:usage your_publisher_idএকটি এক্সটেনশনের একটি সংস্করণ বন্ধ করুন
কোনও এক সময়ে, আপনি হয়তো আপনার এক্সটেনশনের কোনও পুরনো ভার্সন বন্ধ করে দিতে চাইবেন। উদাহরণস্বরূপ, যদি আপনি এমন একটি নতুন ভার্সন প্রকাশ করেন যা কোনও গুরুত্বপূর্ণ বাগ সংশোধন করে অথবা কোনও গুরুত্বপূর্ণ নিরাপত্তা আপডেটের মাধ্যমে কোনও নির্ভরতা আপডেট করে, তাহলে নতুন ব্যবহারকারীদের পুরনো ভার্সন ইনস্টল করা থেকে বিরত রাখা এবং বিদ্যমান ব্যবহারকারীদের আপগ্রেড করতে উৎসাহিত করা গুরুত্বপূর্ণ।
কোনও এক্সটেনশনের কোনও সংস্করণ বন্ধ করতে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
প্রকাশক ড্যাশবোর্ড
- প্রকাশক ড্যাশবোর্ডে , এক্সটেনশনটির বিশদ দৃশ্য খুলতে সেটিতে ক্লিক করুন।
- আপনি যে সংস্করণটি বন্ধ করতে চান তা নির্বাচন করুন।
- সংস্করণ বাতিল করুন ক্লিক করুন।
ফায়ারবেস সিএলআই
ext:dev:deprecate কমান্ডটি চালান:
firebase ext:dev:deprecate your_publisher_id/your_extension_id versions \
[--message "deprecation_message"]আপনি একটি একক সংস্করণ অথবা সংস্করণের পরিসর নির্দিষ্ট করতে পারেন। উদাহরণ:
-
1.0.2 -
1.1.0-1.1.7 -
<1.2.0 -
1.1.*
এক্সটেনশনের অপ্রচলিত সংস্করণগুলি এক্সটেনশন হাবে তালিকাভুক্ত নয় এবং ইনস্টল করা যাবে না। যেসব ব্যবহারকারীর প্রকল্পে অপ্রচলিত সংস্করণ ইনস্টল করা আছে তারা আপগ্রেড করার জন্য উৎসাহিত করে একটি বার্তা দেখতে পাবেন; তারা এখনও এই সময়ের মধ্যে এক্সটেনশনটি ব্যবহার এবং পুনরায় কনফিগার করতে পারবেন।
যদি কোনও এক্সটেনশনের প্রতিটি সংস্করণ বন্ধ করে দেওয়া হয়, তাহলে এক্সটেনশনটি বন্ধ করে দেওয়া হবে এবং এটি এক্সটেনশন হাব থেকে তালিকাভুক্ত করা হবে। বন্ধ করে দেওয়া এক্সটেনশনের একটি নতুন সংস্করণ আপলোড করলে স্বয়ংক্রিয়ভাবে একটি পর্যালোচনা শুরু হবে এবং গ্রহণের পর, এটি আবার এক্সটেনশন হাবে প্রকাশ করা হবে।
অবচয় বাতিল করতে, প্রকাশক ড্যাশবোর্ড ব্যবহার করুন, অথবা Firebase CLI এর ext:dev:undeprecate কমান্ডটি চালান:
firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions
পরিশিষ্ট: বিল্ড ত্রুটির সমস্যা সমাধান
যখন আপনি আপনার এক্সটেনশন আপলোড করেন, তখন ব্যাকএন্ড প্রথমে নিম্নলিখিত প্রক্রিয়া ব্যবহার করে আপনার সোর্স কোড তৈরি করে:
আপনার GitHub রিপোজিটরি ক্লোন করে এবং নির্দিষ্ট সোর্স রেফারেন্স পরীক্ষা করে।
extension.yamlএ নির্দিষ্ট প্রতিটি ফাংশন সোর্স ডিরেক্টরিতেnpm clean-installচালিয়ে NPM নির্ভরতা ইনস্টল করে ( ক্লাউড ফাংশন রিসোর্সেsourceDirectoryদেখুন)।নিম্নলিখিত বিষয়গুলি লক্ষ্য করুন:
প্রতিটি
package.jsonফাইলের একটি সংশ্লিষ্টpackage-lock.jsonফাইল থাকতে হবে। আরও তথ্যের জন্য, npm-ci দেখুন।নির্ভরতা ইনস্টলেশনের সময় পোস্ট-ইনস্টল স্ক্রিপ্টগুলি চালানো হবে না। যদি আপনার সোর্স কোড বিল্ড পোস্ট-ইনস্টল স্ক্রিপ্টের উপর নির্ভর করে, তাহলে আপলোড করার আগে এটি রিফ্যাক্টর করুন।
extension.yamlএ নির্দিষ্ট প্রতিটি ফাংশন সোর্স ডিরেক্টরিতেnpm run buildচালিয়ে আপনার কোড তৈরি করে।
আপনার এক্সটেনশনের শুধুমাত্র রুট ডিরেক্টরিটি শেয়ার করা চূড়ান্ত এক্সটেনশন প্যাকেজে সংরক্ষণ করা হবে।
আপনার এক্সটেনশন আপলোড করার সময় যদি আপনি বিল্ড ত্রুটি পান, তাহলে উপরের বিল্ড পদক্ষেপগুলি স্থানীয়ভাবে একটি নতুন ডিরেক্টরিতে পুনরাবৃত্তি করুন যতক্ষণ না কোনও ত্রুটি না থাকে, তারপর আবার আপলোড করার চেষ্টা করুন।