संस्करणीकरण
Workflows Execution Engine, Workflow Definitions, और blocks का संस्करणीकरण कैसे होता है।
वर्कफ़्लोज़ इकोसिस्टम के जीवन-चक्र को समझना एक महत्वपूर्ण विषय है, खासकर ब्लॉक्स डेवलपर के दृष्टिकोण से। लागू होने वाले नियम ये हैं:
का हिस्सा है
inference- पैकेज का स्वयं का एक रिलीज़ होता है, जब भी उसके किसी भी घटक में बदलाव होता है और वे बदलाव प्रकाशित होने के लिए तैयार होते हैंवर्कफ़्लोज़ एक्ज़ीक्यूशन इंजन अपना संस्करण घोषित करता है। योजना इस प्रकार है:
वर्कफ़्लोज़ का कोर एक्ज़ीक्यूशन इंजन के कई संस्करणों को होस्ट करने में सक्षम है - उदाहरण के लिए वर्तमान स्थिर संस्करण और विकास संस्करण
स्थिर संस्करण का रखरखाव किया जाता है और नए फीचर जोड़े जाते हैं, जब तक कि नए संस्करण की आवश्यकता न हो और नया संस्करण स्वीकार न कर लिया जाए
चूँकि नया संस्करण पूरी तरह कार्यरत है, इसलिए पहले से स्थिर संस्करण को चरणबद्ध रूप से अप्रचलित किया जाने लगता है - एक अनुग्रह अवधि होती है जिसमें पुराने संस्करण में बग फिक्स पैच किए जाएंगे (लेकिन नए फीचर नहीं जोड़े जाएंगे), उसके बाद उसे जैसा है वैसा छोड़ दिया जाएगा। अनुग्रह अवधि के दौरान हम ब्लॉक्स निर्माताओं से उनके प्लगइन्स को नए संस्करण की आवश्यकताओं के अनुसार अपग्रेड करने के लिए कहेंगे
कोर लाइब्रेरी प्रत्येक मेजर के लिए केवल एक ही एक्ज़ीक्यूशन इंजन संस्करण बनाए रखती है - यह वादा करते हुए कि मेजर के भीतर की सुविधाएँ ब्रेकिंग नहीं होंगी और संस्करण के अंतर्गत बनाया गया वर्कफ़्लो
1.0.0संस्करण के अंतर्गत पूरी तरह कार्यात्मक होगा1.4.3एक्ज़ीक्यूशन इंजन का
समय के साथ इकोसिस्टम की स्थिरता सुनिश्चित करने के लिए:
प्रत्येक वर्कफ़्लो परिभाषा वह एक्ज़ीक्यूशन इंजन संस्करण घोषित करती है जिसके साथ वह संगत है। चूँकि कोर लाइब्रेरी एक्ज़ीक्यूशन इंजन के लिए केवल एक ही संस्करण बनाए रखती है,
संस्करण: 1.1.0वर्कफ़्लो परिभाषा में वास्तव में संस्करण वाले एक्ज़ीक्यूशन इंजन का अनुरोध करता है>=1.1.0,<2.0.0प्रत्येक ब्लॉक को, अपने मैनिफेस्ट में, उचित एक्ज़ीक्यूशन इंजन संगतता प्रदान करनी चाहिए - उदाहरण के लिए - यदि ब्लॉक एक्ज़ीक्यूशन इंजन की उस सुविधा पर निर्भर करता है जो में पेश की गई थी
1.3.7तो उसे यह निर्दिष्ट करना चाहिए>=1.3.7,<2.0.0इंजन के संगत संस्करणों के रूप में
वर्कफ़्लोज़ ब्लॉक्स को वैकल्पिक रूप से संस्करणित किया जा सकता है (जिसकी हम रॉबोफ्लो प्लगइन्स के लिए अनुशंसा करते हैं और लागू करते हैं)।
हम ब्लॉक्स के टाइप पहचानकर्ताओं के लिए निम्न नामकरण परंपरा प्रस्तावित करते हैं:
{plugin_name}/{block_family_name}@v{X}ब्लॉक्स पहचानकर्ता नेमस्पेस के अच्छे उपयोग को सुनिश्चित करने के लिएहम सुझाव देते हैं कि यदि बग-फिक्स की आवश्यकता हो तो केवल ब्लॉक के विशिष्ट संस्करण को ही संशोधित करें, ब्लॉक में अन्य सभी बदलावों से नया संस्करण निकलना चाहिए
ब्लॉक के प्रत्येक संस्करण को नए मॉड्यूल में प्रस्तुत किया जाना है (जैसा कि सुझाव दिया गया यहाँ) - यहाँ तक कि कोड की पुनरावृत्ति की कीमत पर क्योंकि हमें लगता है कि इस विशेष मामले में स्थिरता DRY से अधिक महत्वपूर्ण है
इसी तरह, हम सुझाव देते हैं कि प्रत्येक ब्लॉक यथासंभव स्वतंत्र हो, क्योंकि जो कोड ब्लॉक्स के बीच साझा होता है, वह अनजाने में अन्य ब्लॉक्स को संशोधित कर सकता है और आपके वर्कफ़्लोज़ की स्थिरता को नष्ट कर सकता है
अंतिम अपडेट
क्या यह उपयोगी था?