প্রকল্প সম্পর্কে

release-it একটি সাধারণ CLI টুল যা ভার্সনিং এবং প্যাকেজ প্রকাশের কার্যপ্রবাহ স্বয়ংক্রিয় করার জন্য ব্যবহৃত হয়। এটি সাধারণত npm-ভিত্তিক প্রকল্পে ব্যবহৃত হয় তবে কেবল সেগুলোর মধ্যে সীমাবদ্ধ নয়, এবং এটি `.release-it.json` ফাইল বা `package.json`-এ `release-it` প্রপার্টির মাধ্যমে কনফিগার করা যায়। README-তে বর্ণিত মূল সক্ষমতাগুলোর মধ্যে রয়েছে: - `package.json`-এর মতো ফাইলে ভার্সন বৃদ্ধি করা - Git কমিট, ট্যাগ এবং পুশ তৈরি করা - হুকের মাধ্যমে যেকোনো টেস্ট বা বিল্ড কমান্ড চালানো - GitHub বা GitLab-এ রিলিজ তৈরি করা - একটি চেঞ্জলগ তৈরি করা, যা রিলিজ নোট হিসেবেও কাজ করতে পারে - npm রেজিস্ট্রিতে প্রকাশ করা - alpha, beta এবং release candidate-এর মতো প্রি-রিলিজ পরিচালনা করা - প্লাগইন সিস্টেমের মাধ্যমে আচরণ সম্প্রসারণ করা - CI/CD পরিবেশে চালানো, একটি নন-ইন্টারঅ্যাকটিভ `--ci` মোড সহ ইনস্টলেশন সাধারণত `npm init release-it` দিয়ে বা release-it-কে dev dependency এবং একটি `release` স্ক্রিপ্ট হিসেবে যোগ করে করা হয়। এটি npm বা Homebrew-এর মাধ্যমে গ্লোবালভাবেও ইনস্টল করা যায়, এবং Node.js ছাড়া পরিবেশের জন্য একটি কন্টেইনারাইজড বিকল্পের উল্লেখ রয়েছে। টুলটি ডিফল্টভাবে ইন্টারঅ্যাকটিভ, ভার্সন নির্বাচন এবং টাস্ক নিশ্চিতকরণের জন্য প্রম্পট করে, কিন্তু `--ci` প্রম্পট ছাড়াই প্রক্রিয়াটি স্বয়ংক্রিয় করে। `--only-version` প্রম্পটিংকে কেবল ভার্সন নির্বাচনে সীমাবদ্ধ করে। ভার্সন নির্ধারণে `package.json` থাকলে তা ব্যবহার করা হয়, অন্যথায় সর্বশেষ Git ট্যাগ, এবং তা না থাকলে `0.0.0`-তে ফিরে যায়। প্লাগইনগুলো এই আচরণ ওভাররাইড করতে পারে, উদাহরণস্বরূপ অন্য ফাইলে ভার্সন পড়তে বা বাড়াতে বা Calendar Versioning ব্যবহার করতে। Git সমর্থনে স্টেজিং, কমিটিং, ট্যাগিং এবং রিমোটে পুশ করা অন্তর্ভুক্ত। টোকেন দিয়ে GitHub এবং GitLab রিলিজ স্বয়ংক্রিয় করা যায়, এবং npm প্রকাশ GitHub ও GitLab CI কার্যপ্রবাহে OIDC সহ Trusted Publishing ব্যবহার করতে পারে। চেঞ্জলগ তৈরি ডিফল্টভাবে একটি `git log`-ভিত্তিক কমান্ড ব্যবহার করে এবং প্লাগইন দ্বারা কাস্টমাইজ বা প্রতিস্থাপন করা যায়। হুকগুলো রিলিজ লাইফসাইকলের নির্দিষ্ট বিন্দুতে শেল কমান্ড চালানোর অনুমতি দেয়, `[prefix]:[hook]` বা `[prefix]:[plugin]:[hook]` ফরম্যাট ব্যবহার করে। ভার্সন, চেঞ্জলগ, রিপোজিটরি বিবরণ এবং রিলিজ URL-এর মতো ভেরিয়েবল হুকে উপলব্ধ। সমস্যা সমাধানের জন্য ড্রাই রান, ভার্বোস লগিং এবং ডিবাগিং অপশন নথিভুক্ত করা হয়েছে। README-তে চেঞ্জলগ ফরম্যাট, monorepo/workspace রিলিজ, বিকল্প ভার্সনিং স্কিম এবং অন্যান্য ইন্টিগ্রেশনের জন্য বিভিন্ন কমিউনিটি প্লাগইনের তালিকা রয়েছে। এতে আরও উল্লেখ করা হয়েছে যে release-it একটি ডিপেন্ডেন্সি হিসেবে প্রোগ্রাম্যাটিকভাবেও ব্যবহার করা যায়, এবং এটি ব্যবহারকারী প্রকল্পগুলোর তালিকা দেওয়া হয়েছে, যার মধ্যে Axios, jQuery, Redux, n8n এবং Swagger UI অন্তর্ভুক্ত। প্রকল্পটি MIT লাইসেন্সের অধীনে।