এই পৃষ্ঠাটি ব্যাখ্যা করে কিভাবে আপনি এক্সটেনশন হাবে একটি এক্সটেনশন প্রকাশ করতে পারেন।
আপনি শুরু করার আগে
একটি এক্সটেনশন প্রকাশ করতে, প্রথমে আপনাকে একটি এক্সটেনশন প্রকাশক হিসাবে নিবন্ধন করতে হবে৷
যাচাইযোগ্য সূত্র
এক্সটেনশন হাবে প্রকাশিত সমস্ত এক্সটেনশনের একটি সর্বজনীনভাবে যাচাইযোগ্য উৎস থাকতে হবে। আপনার এক্সটেনশন সোর্স কোড সরাসরি এক্সটেনশন হাবে আপলোড করার পরিবর্তে, আপনি উত্সের অবস্থান নির্দিষ্ট করুন এবং এক্সটেনশন হাব এটি ডাউনলোড করবে এবং সেখান থেকে এটি তৈরি করবে৷
বর্তমানে, এর অর্থ হল আপনার এক্সটেনশন সোর্স কোড একটি পাবলিক গিটহাব রিপোজিটরিতে উপলব্ধ করা।
একটি যাচাইযোগ্য উৎস থেকে আপলোড করার বিভিন্ন সুবিধা রয়েছে:
- ব্যবহারকারীরা যে এক্সটেনশনটি ইনস্টল করা হবে তার নির্দিষ্ট সংশোধনের উত্স কোড পরিদর্শন করতে পারেন৷
- আপনি নিশ্চিত করতে পারেন যে আপনি শুধুমাত্র যা আপলোড করতে চান তা আপলোড করুন, এবং না, উদাহরণস্বরূপ, কাজ চলছে, বা বিকাশ থেকে বাকি থাকা ফাইলগুলি।
প্রস্তাবিত উন্নয়ন চক্র
ফায়ারবেস এক্সটেনশন ডেভেলপমেন্ট টুলগুলি আপনার এক্সটেনশনের প্রাক-রিলিজ সংস্করণ আপলোড করতে সমর্থন করে, যা আপনার জন্য আপনার এক্সটেনশন এবং এক্সটেনশন ইনস্টলেশন প্রক্রিয়া একই পরিবেশে পরীক্ষা করা সহজ করে যেখানে সেগুলি অবশেষে প্রকাশ করা হবে।
এই ক্ষমতা নিম্নলিখিত মত একটি উন্নয়ন চক্র সম্ভব করে তোলে:
ফায়ারবেস এমুলেটর স্যুট ব্যবহার করে আপনার এক্সটেনশনের বিকাশ এবং দ্রুত পুনরাবৃত্তি করুন।
স্থানীয় উত্স থেকে এটি ইনস্টল করে একটি বাস্তব প্রকল্পে আপনার এক্সটেনশন পরীক্ষা করুন:
firebase ext:install /path/to/extension
firebase deploy --only extensions
এক্সটেনশন হাবে একটি প্রাক-রিলিজ সংস্করণ আপলোড করুন (নীচে দেখুন)। বৃহত্তর পরীক্ষার জন্য ইনস্টলেশন লিঙ্কটি বিতরণ করুন এবং প্রয়োজনে আরও প্রাক-রিলিজ সংস্করণ আপলোড করে পুনরাবৃত্তি করুন।
এক্সটেনশন হাবে চূড়ান্ত, স্থিতিশীল, সংস্করণ আপলোড করুন (নীচে দেখুন) এবং পর্যালোচনার জন্য জমা দিন। এক্সটেনশনটি পর্যালোচনায় উত্তীর্ণ হলে, এটি এক্সটেনশন হাবে প্রকাশিত হবে।
extension.yaml
এ সংস্করণ সংখ্যা বৃদ্ধি করুন এবং আপনার এক্সটেনশনের পরবর্তী সংস্করণের জন্য এই চক্রটি পুনরাবৃত্তি করুন।
একটি নতুন এক্সটেনশন আপলোড করুন
প্রথমবারের জন্য একটি এক্সটেনশন আপলোড করতে:
ঐচ্ছিক : একটি পাবলিক GitHub সংগ্রহস্থলে আপনার কোড কমিট করুন।
Firebase CLI এর
ext:dev:upload
কমান্ড চালান:গিটহাব
firebase ext:dev:upload your_publisher_id/your_extension_id
স্থানীয় সূত্র
cd /path/to/extension
firebase ext:dev:upload your_publisher_id/your_extension_id --local
আপনার কমান্ড আহ্বানে, আপনি নিম্নলিখিত উল্লেখ করুন:
আপনি যে প্রকাশক আইডি নিবন্ধন করেছেন ।
একটি আইডি স্ট্রিং যা এক্সটেনশন সনাক্ত করবে। নিম্নলিখিত বিন্যাস সহ আপনার এক্সটেনশনের নাম দিন:
firebase-product - description-of-tasks-performed
। যেমন:firestore-bigquery-export
কমান্ড আপনাকে অতিরিক্ত তথ্যের জন্য অনুরোধ করবে:
আপনি যদি GitHub থেকে আপলোড করছেন:
GitHub-এ এক্সটেনশনের সংগ্রহস্থলের URL। মনে রাখবেন যে একটি সংগ্রহস্থলে একাধিক এক্সটেনশন থাকতে পারে যতক্ষণ না প্রতিটি এক্সটেনশনের একটি অনন্য রুট থাকে।
আপনি যখন প্রথমবারের জন্য একটি নতুন এক্সটেনশন আপলোড করেন, তখন সংগ্রহস্থলটি আপনার এক্সটেনশনের জন্য ক্যানোনিকাল উত্স হিসাবে নিবন্ধিত হবে৷
আপনার এক্সটেনশন ধারণ করে সংগ্রহস্থলের ডিরেক্টরি।
আপনি যে কমিট থেকে আপনার এক্সটেনশন সংস্করণ উৎস তৈরি করতে চান তার গিট রেফারেন্স। এটি একটি কমিট হ্যাশ, ট্যাগ বা শাখার নাম হতে পারে।
আপনি যে সংস্করণ আপলোড করছেন তার প্রকাশের পর্যায়।
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/extension
firebase ext:dev:upload your_publisher_id/your_extension_id --local
প্রকাশনার জন্য একটি এক্সটেনশন জমা দিন
যখন আপনি সর্বজনীনভাবে আপনার এক্সটেনশন প্রকাশ করতে প্রস্তুত হন:
আপনার কোড একটি পাবলিক গিট সংগ্রহস্থলে কমিট করুন। (সর্বজনীন রিলিজের জন্য প্রয়োজনীয়।)
ফায়ারবেস CLI-এর
ext:dev:upload
কমান্ড চালান, রিলিজ স্টেজ হিসাবেstable
উল্লেখ করে:firebase ext:dev:upload your_publisher_id/your_extension_id
আপনি যদি আগে আপনার এক্সটেনশনের একটি সংস্করণ প্রকাশ করে থাকেন, তাহলে একটি নতুন স্থিতিশীল রিলিজ আপলোড করলে তা স্বয়ংক্রিয়ভাবে পর্যালোচনার জন্য এক্সটেনশন জমা দেবে৷
আপনি যদি এক্সটেনশনের প্রথম স্থিতিশীল রিলিজ আপলোড করেন, আপনার প্রকাশক ড্যাশবোর্ডে এক্সটেনশনটি খুঁজুন এবং এক্সটেনশন হাবে প্রকাশ করুন ক্লিক করুন।
একবার জমা দিলে, পর্যালোচনা করতে কয়েক দিন সময় লাগতে পারে। গৃহীত হলে, এক্সটেনশনটি এক্সটেনশন হাবে প্রকাশ করা হবে। প্রত্যাখ্যান করা হলে, আপনি কারণ ব্যাখ্যা করে একটি বার্তা পাবেন; তারপরে আপনি রিপোর্ট করা সমস্যাগুলির সমাধান করতে পারেন এবং পর্যালোচনার জন্য আবার জমা দিতে পারেন৷
পর্যালোচনাটি ত্বরান্বিত করতে এবং প্রথম চেষ্টায় পাস করার সম্ভাবনা বাড়ানোর জন্য, জমা দেওয়ার আগে, নিম্নলিখিতগুলি দুবার চেক করুন:
- আপনি আপনার এক্সটেনশন এবং ইনস্টলেশন প্রক্রিয়াটি পুঙ্খানুপুঙ্খভাবে পরীক্ষা করেছেন।
- আপনার ডকুমেন্টেশন সম্পূর্ণ এবং সঠিক, এবং Firebase কনসোলে ভালোভাবে রেন্ডার করে।
- আপনার প্রকাশকের নাম এবং ব্র্যান্ডিং স্পষ্টভাবে এবং সঠিকভাবে আপনাকে প্রকাশক হিসাবে চিহ্নিত করে৷
- আপনার এক্সটেনশনের নাম, বিবরণ এবং আইকন স্পষ্টভাবে এবং সঠিকভাবে আপনার এক্সটেনশনের উদ্দেশ্য উপস্থাপন করে।
- আপনি সহায়ক এবং সঠিক ট্যাগ প্রয়োগ করেছেন।
- আপনি
extension.yaml
এ ঘোষণা করেছেন যে সমস্ত Google এবং নন-Google APIগুলি আপনি ব্যবহার করেন এবং সমস্ত ইভেন্ট প্রকার আপনার এক্সটেনশন নির্গত করে৷ - আপনি শুধুমাত্র এক্সটেনশনের কাজ করার জন্য প্রয়োজনীয় ভূমিকাগুলিতে অ্যাক্সেসের জন্য অনুরোধ করছেন, এবং আপনি স্পষ্টভাবে ব্যবহারকারীদের ব্যাখ্যা করেছেন কেন আপনার এই অ্যাক্সেসের প্রয়োজন৷
- আপনার সোর্স ফাইলগুলি
Apache-2.0
এর শর্তাবলীর অধীনে স্পষ্টভাবে লাইসেন্সপ্রাপ্ত।
আপলোড করা এবং প্রকাশিত এক্সটেনশন পরিচালনা করুন
আপনার আপলোড করা এক্সটেনশনের তালিকা করুন
আপনার প্রকাশক আইডির অধীনে আপনি যে এক্সটেনশনগুলি আপলোড করেছেন তা তালিকাভুক্ত করতে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
প্রকাশক ড্যাশবোর্ড
প্রকাশক ড্যাশবোর্ডে তাদের দেখুন।
ফায়ারবেস CLI
ext:dev:list
কমান্ড চালান:
firebase ext:dev:list your_publisher_id
আপনার আপলোড করা এক্সটেনশনের ব্যবহার দেখুন
আপনার প্রকাশক আইডির অধীনে আপলোড করা এক্সটেনশনগুলির ব্যবহার দেখতে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
প্রকাশক ড্যাশবোর্ড
প্রকাশক ড্যাশবোর্ডে আপনার সমস্ত এক্সটেনশনের জন্য ক্রমবর্ধমান ব্যবহারের মেট্রিক এবং প্রতিটি এক্সটেনশনের জন্য পৃথক মেট্রিক্স রয়েছে৷
ফায়ারবেস CLI
ext:dev:usage
কমান্ড চালান:
firebase ext:dev:usage your_publisher_id
একটি এক্সটেনশনের একটি সংস্করণ বাতিল করুন
কিছু সময়ে, আপনি আপনার এক্সটেনশনের একটি পুরানো সংস্করণ অবমূল্যায়ন করতে চাইতে পারেন। উদাহরণস্বরূপ, আপনি যদি একটি নতুন সংস্করণ প্রকাশ করেন যা একটি গুরুত্বপূর্ণ বাগ সংশোধন করে বা একটি গুরুত্বপূর্ণ সুরক্ষা আপডেটের সাথে একটি নির্ভরতা আপডেট করে, নতুন ব্যবহারকারীদের একটি পুরানো সংস্করণ ইনস্টল করা থেকে বিরত রাখা এবং বিদ্যমান ব্যবহারকারীদের আপগ্রেড করতে উত্সাহিত করা গুরুত্বপূর্ণ৷
একটি এক্সটেনশনের একটি সংস্করণ অবমূল্যায়ন করতে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
প্রকাশক ড্যাশবোর্ড
- প্রকাশক ড্যাশবোর্ডে , এর বিশদ বিবরণ খুলতে এক্সটেনশনটিতে ক্লিক করুন।
- আপনি যে সংস্করণটি বাতিল করতে চান সেটি নির্বাচন করুন।
- বর্জন সংস্করণে ক্লিক করুন।
ফায়ারবেস CLI
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
চালানোর মাধ্যমে আপনার কোড তৈরি করে।
শেয়ার করা হবে এমন চূড়ান্ত এক্সটেনশন প্যাকেজে শুধুমাত্র আপনার এক্সটেনশনের রুট ডিরেক্টরি সংরক্ষণ করা হবে।
আপনি যদি আপনার এক্সটেনশন আপলোড করার সময় বিল্ড ত্রুটি পান, তাহলে কোনো ত্রুটি না হওয়া পর্যন্ত স্থানীয়ভাবে বিল্ডের ধাপগুলি স্থানীয়ভাবে প্রতিলিপি করুন, তারপরে আবার আপলোড করার চেষ্টা করুন।