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

Freshmaker হল একটি পরিষেবা যা তাদের নির্ভরতা পরিবর্তন হওয়ার পরে বিভিন্ন সফটওয়্যার আর্টিফ্যাক্টগুলি স্বয়ংক্রিয়ভাবে পুনর্নির্মাণ করার জন্য ডিজাইন করা হয়েছে। উদাহরণস্বরূপ, এটি একটি RPM-এর .spec ফাইল আপডেট হলে বা একটি RPM Bodhi-এর মাধ্যমে স্থিতিশীল অবস্থায় পাঠানো হলে একটি মডিউল পুনর্নির্মাণ করতে পারে। একইভাবে, এটি একটি কন্টেইনারের মধ্যে একটি RPM আপডেট হলে কন্টেইনার ইমেজ পুনর্নির্মাণ করতে পারে। পরিষেবাটি আর্টিফ্যাক্ট পুনর্নির্মাণ এবং এই পুনর্নির্মাণের কারণ সম্পর্কে তথ্য পুনরুদ্ধার করার জন্য একটি REST API প্রদান করে, এবং এটি এই ঘটনাগুলি সম্পর্কে বার্তা বাস-এ বার্তা পাঠায়। আর্কিটেকচারগতভাবে, Freshmaker একটি ইভেন্ট-হ্যান্ডলার প্যাটার্নের উপর ভিত্তি করে। ইভেন্টগুলি হল fedmsg বার্তা যা dist-git, Koji, এবং Bodhi-এর মতো অন্যান্য পরিষেবা থেকে প্রাপ্ত হয়। হ্যান্ডলারগুলি হল ছোট ক্লাস যা Freshmaker কোর দ্বারা প্রদত্ত উচ্চ-স্তরের API ব্যবহার করে আর্টিফ্যাক্টগুলি পুনর্নির্মাণ করে। সিস্টেমটি আর্টিফ্যাক্টগুলির মধ্যে নির্ভরতা ট্র্যাক করার জন্য একটি উচ্চ-স্তরের APIও প্রদান করে, যা পুনর্নির্মাণ প্রক্রিয়াকে দক্ষ এবং নির্ভরযোগ্য করে তোলে। ওয়ার্কফ্লোতে আর্টিফ্যাক্ট আপডেট সম্পর্কে নতুন fedmsg বার্তাগুলির জন্য অপেক্ষা করা, এই বার্তাগুলিকে ইভেন্ট অবজেক্টে পার্স করা, এবং তারপরে এই ইভেন্টগুলি নির্দিষ্ট হ্যান্ডলারগুলির সাথে পরিচালনা করা জড়িত। এই হ্যান্ডলারগুলি সেই আর্টিফ্যাক্টগুলির তালিকা চিহ্নিত করে যেগুলি পুনর্নির্মাণ করতে হবে, সঠিক বিল্ড ক্রম নিশ্চিত করতে একটি গাছের মতো কাঠামোতে পুনর্নির্মাণ পরিকল্পনা করে, পূর্বশর্তগুলি প্রস্তুত করে (যেমন আপডেট করা RPM রিপোজিটরি তৈরি করা), এবং অবশেষে পুনর্নির্মাণ শুরু করে। Freshmaker-এ আর্টিফ্যাক্ট এবং তাদের নির্ভরতাগুলির জন্য ডাটাবেস ব্যবস্থাপনা এবং বিল্ড শুরু করার জন্য Koji এবং ODCS-এর মতো সিস্টেমগুলির সাথে একীকরণের জন্য অন্তর্নির্মিত সমর্থন রয়েছে।