इस प्रोजेक्ट के बारे में
Freshmaker एक ऐसी सेवा है जिसे सॉफ्टवेयर आर्टिफैक्ट्स को उनके निर्भरताओं में बदलाव होने के बाद स्वचालित रूप से फिर से बनाने के लिए डिज़ाइन किया गया है। उदाहरण के लिए, यह एक मॉड्यूल को फिर से बना सकता है जब एक RPM का .spec फ़ाइल अपडेट हो जाता है या जब एक RPM को Bodhi के माध्यम से स्थिर में धकेल दिया जाता है। इसी तरह, यह कंटेनर छवियों को फिर से बना सकता है जब कंटेनर के भीतर एक RPM अपडेट हो जाता है। सेवा आर्टिफैक्ट रीबिल्ड्स और इन रीबिल्ड्स के कारणों के बारे में जानकारी प्राप्त करने के लिए एक REST API प्रदान करती है, और इन घटनाओं के बारे में संदेश बस को संदेश भेजती है।
आर्किटेक्चर के दृष्टिकोण से, Freshmaker एक Event-Handler पैटर्न पर आधारित है। इवेंट्स fedmsg संदेश हैं जो dist-git, Koji, और Bodhi जैसी अन्य सेवाओं से प्राप्त होते हैं। हैंडलर्स छोटे क्लास हैं जो Freshmaker कोर द्वारा प्रदान किए गए उच्च-स्तरीय API का उपयोग करके आर्टिफैक्ट्स को फिर से बनाते हैं। सिस्टम आर्टिफैक्ट्स के बीच निर्भरताओं को ट्रैक करने के लिए एक उच्च-स्तरीय API भी प्रदान करता है, जिससे रीबिल्डिंग प्रक्रिया कुशल और विश्वसनीय हो जाती है।
वर्कफ़्लो में आर्टिफैक्ट अपडेट के बारे में नए fedmsg संदेशों की प्रतीक्षा करना, इन संदेशों को Event ऑब्जेक्ट्स में पार्स करना, और फिर इन इवेंट्स को विशिष्ट हैंडलर्स के साथ संभालना शामिल है। ये हैंडलर्स उन आर्टिफैक्ट्स की सूची की पहचान करते हैं जिन्हें फिर से बनाया जाना चाहिए, सही निर्माण क्रम सुनिश्चित करने के लिए एक पेड़-जैसे संरचना में रीबिल्ड की योजना बनाते हैं, पूर्व-आवश्यकताओं की तैयारी करते हैं (जैसे कि अपडेटेड RPM रिपॉजिटरीज़ का निर्माण), और अंत में रीबिल्ड शुरू करते हैं। Freshmaker में आर्टिफैक्ट्स और उनकी निर्भरताओं के लिए डेटाबेस प्रबंधन, और निर्माण शुरू करने के लिए Koji और ODCS जैसे सिस्टम के साथ एकीकरण के लिए अंतर्निहित समर्थन शामिल है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.