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

ওপেন অডিও স্ট্যাক রেজিস্ট্রি একটি অডিও রেজিস্ট্রি স্পেসিফিকেশন এবং একটি অনুসন্ধানযোগ্য প্যাকেজ ইনডেক্স, যা প্লাগইন, প্রিসেট, প্রজেক্ট এবং অ্যাপ কভার করে। এটি প্রাথমিকভাবে অডিও সফটওয়্যার ডেভেলপারদের জন্য তৈরি, যারা চান তাদের সফটওয়্যার যেকোনো ওপেন অডিও স্ট্যাক-সামঞ্জস্যপূর্ণ টুলের মাধ্যমে আবিষ্কারযোগ্য এবং ইনস্টলযোগ্য হোক; এবং দ্বিতীয়ত, সেই প্যাকেজগুলি ইনস্টল করা মিউজিশিয়ান এবং প্রযোজকদের জন্য। এটি যেভাবে কাজ করে: অবদানকারীরা একটি ব্রাঞ্চে প্রতি প্যাকেজ ভার্সনের জন্য একটি করে YAML ফাইল যোগ করেন। স্ক্যান করার পর পরিবর্তনগুলি মার্জ করা হয় এবং GitHub Actions একটি স্ট্যাটিক GitHub Pages সাইট তৈরি করে, যাতে রেজিস্ট্রির প্রতিটি অংশের জন্য JSON ফাইল থাকে। সামঞ্জস্যপূর্ণ কমান্ড-লাইন টুল, অ্যাপ এবং ওয়েবসাইট সেই JSON ফাইলগুলি পড়ে প্যাকেজ আবিষ্কার করে। API স্ট্যাটিক JSON, তাই ইন্টিগ্রেটরদের আলাদা ডিস্ট্রিবিউশন ইনফ্রাস্ট্রাকচার হোস্ট করার প্রয়োজন নেই। প্যাকেজ জমা দেওয়ার তিনটি উপায় আছে: মেটাডেটা পূরণের জন্য একটি ওয়েব ফর্ম, AGENTS.md-এর দিকে নির্দেশিত একটি কোডিং এজেন্ট, অথবা রিপোজিটরি ফর্ক করে kebab-case-এ ফোল্ডার যোগ করা, যেমন src/plugins/org-name/package-name। প্রতিটি প্যাকেজে একটি JPEG স্ক্রিনশট এবং একটি FLAC অডিও প্রিভিউ থাকে, যা লোডিং পারফরম্যান্সের জন্য বেছে নেওয়া হয়। ভার্সনগুলি সেমান্টিক ভার্সনিং অনুসরণ করে, তাই একটি ইনস্টলার সর্বশেষ নন-ব্রেকিং রিলিজ বেছে নিতে পারে। অ্যাপ, প্লাগইন, প্রিসেট এবং প্রজেক্টের জন্য উদাহরণ YAML ফাইল দেওয়া আছে, এবং স্পেসিফিকেশনে প্লাগইন ফিল্ড, ফরম্যাট এবং টাইপ, সেইসাথে ফাইল ফিল্ড, ফরম্যাট, সুপারিশ এবং টাইপ নথিভুক্ত করা আছে। ভ্যালিডেশন লোকালি npm install এবং npm run dev:validate দিয়ে YAML ফাইলের পাথ সহ চলে। এটি অতিরিক্ত দীর্ঘ ফিল্ডের মতো সমস্যা রিপোর্ট করে এবং প্রকৃত ডাউনলোডের সাথে ফাইল সাইজ এবং sha256 যাচাই করে। সাইজ ব্যবহারকারীদের জানায় ডাউনলোড কত বড়; sha256 নিশ্চিত করে যে ডাউনলোড করা ফাইলটি উদ্দেশ্যপ্রণোদিত ডিস্ট্রিবিউশনের সাথে মিলে যায়। অমিল হলে প্রাপ্ত এবং প্রত্যাশিত মান প্রিন্ট হয়, যাতে URL বা মেটাডেটা সংশোধন করা যায়। এরপর পুল রিকোয়েস্ট মার্জের আগে স্বয়ংক্রিয় টেস্ট, ভ্যালিডেশন এবং ভাইরাস স্ক্যান চালায়। যে প্যাকেজগুলির বাইনারি সরাসরি রিপোজিটরিতে কমিট করা থাকে এবং কোনো GitHub রিলিজ নেই, সেগুলির জন্য ফাইল URL অবশ্যই একটি নির্দিষ্ট কমিটের দিকে নির্দেশ করতে হবে, ব্রাঞ্চের দিকে নয়, কারণ ব্রাঞ্চ আর্কাইভ URL প্রতিটি পুশে হ্যাশ পরিবর্তন করে। README-তে দেখানো হয়েছে কীভাবে GitHub CLI দিয়ে কমিট SHA পাওয়া যায় এবং পিন করা আর্কাইভ URL ফরম্যাট, তারপর sha256 এবং সাইজ আপডেট করতে আবার ভ্যালিডেশন চালানো যায়। যে প্রজেক্টগুলি স্পেসিফিকেশন বা API ব্যবহার করে তারা প্রদত্ত ব্যাজ দিয়ে লিংক করতে পারে। রেজিস্ট্রিটি Node.js 20.x, TypeScript 5.x, eslint 9.x, prettier 3.x এবং vitest 3.x দিয়ে তৈরি, এবং lint, format, dev, test, build ও start-এর জন্য npm স্ক্রিপ্ট রয়েছে। রিলিজগুলি git ট্যাগ দিয়ে ভার্সন করা হয় এবং স্বয়ংক্রিয়ভাবে GitHub Pages-এ প্রকাশিত হয়। রেজিস্ট্রিটি মূলত Linux, Mac এবং Windows-এর জন্য ক্রস-প্ল্যাটফর্মে তৈরি ফ্রি ওপেন-সোর্স প্যাকেজের জন্য; নির্দেশিকা মেনে না চলা প্যাকেজ প্রত্যাখ্যাত বা সরানো হতে পারে।