रिलीज़ की नीति

Bazel, लंबे समय तक सहायता (एलटीएस) देने वाले रिलीज़ मॉडल का इस्तेमाल करता है. इसमें हर नौ महीने में एक मेजर वर्शन और हर महीने माइनर वर्शन रिलीज़ किया जाता है. इस पेज पर, Bazel की रिलीज़ से जुड़ी नीति के बारे में बताया गया है. इसमें रिलीज़ कैंडिडेट, टाइमलाइन, सूचनाएं, और टेस्टिंग के बारे में जानकारी शामिल है.

Bazel के रिलीज़ किए गए वर्शन, GitHub पर देखे जा सकते हैं.

रिलीज़ कैंडिडेट

Bazel के नए वर्शन के लिए रिलीज़ कैंडिडेट, आम तौर पर हर महीने की शुरुआत में बनाया जाता है. इस काम को GitHub पर रिलीज़ से जुड़ी गड़बड़ी के ज़रिए ट्रैक किया जाता है. इसमें रिलीज़ की तय तारीख दी गई है. साथ ही, इसे मौजूदा रिलीज़ मैनेजर को असाइन किया गया है. रिलीज़ कैंडिडेट को सभी Bazel यूनिट टेस्ट पास करने चाहिए. साथ ही, Buildkite पर टेस्ट किए गए प्रोजेक्ट में कोई अवांछित रिग्रेशन नहीं दिखना चाहिए.

रिलीज़ कैंडिडेट के बारे में bazel-discuss पर सूचना दी जाती है. अगले कुछ दिनों तक, Bazel टीम कम्यूनिटी की ओर से सबमिट की गई गड़बड़ी की रिपोर्ट की निगरानी करती है. इससे यह पता चलता है कि कैंडिडेट वर्शन में कोई रिग्रेशन तो नहीं है.

रिलीज़ करना

अगर कोई समस्या नहीं मिलती है, तो एक हफ़्ते बाद कैंडिडेट को आधिकारिक तौर पर रिलीज़ कर दिया जाता है. हालांकि, रिग्रेशन की वजह से रिलीज़ कैंडिडेट को रिलीज़ करने में देरी हो सकती है. अगर रिग्रेशन मिलते हैं, तो Bazel टीम उन रिग्रेशन को ठीक करने के लिए, रिलीज़ कैंडिडेट पर उनसे जुड़े चेरी-पिक लागू करती है. अगर पहले रिलीज़ कैंडिडेट के एक हफ़्ते बाद, लगातार दो कामकाजी दिनों तक कोई और रिग्रेशन नहीं मिलता है, तो कैंडिडेट को रिलीज़ कर दिया जाता है.

रिलीज़ कैंडिडेट तैयार होने के बाद, उसमें नई सुविधाएं नहीं जोड़ी जाती हैं. इसके अलावा, अगर किसी नई सुविधा में गड़बड़ी है, तो हो सकता है कि सुविधा को रिलीज़ कैंडिडेट से वापस ले लिया जाए. रिलीज़ कैंडिडेट बनने के बाद, रिलीज़ कैंडिडेट में सिर्फ़ उन बग को ठीक किया जाता है जो रिलीज़ बिल्ड पर काफ़ी असर डाल सकते हैं या उसे खराब कर सकते हैं.

रिलीज़ सिर्फ़ उस दिन की जाती है जब अगला दिन कामकाजी दिन हो.

अगर नई रिलीज़ में कोई गंभीर समस्या मिलती है, तो Bazel टीम उस समस्या को ठीक करके, पैच रिलीज़ बनाती है. यह पैच, नई रिलीज़ बनाने के बजाय मौजूदा रिलीज़ को अपडेट करता है. इसलिए, पैच रिलीज़ कैंडिडेट को दो कामकाजी दिनों के बाद रिलीज़ किया जा सकता है.

टेस्ट करना

ci.bazel.build पर चल रहे सभी प्रोजेक्ट की नाइटली बिल्ड प्रोसेस पूरी की जाती है. इसके लिए, हेड पर बनाए गए Bazel बाइनरी और रिलीज़ बाइनरी का इस्तेमाल किया जाता है. जिन प्रोजेक्ट पर बड़े बदलाव का असर पड़ने वाला है उन्हें सूचना दी जाती है.

जब रिलीज़ कैंडिडेट जारी किया जाता है, तो TensorFlow जैसे अन्य Google प्रोजेक्ट की पूरी टेस्ट सुइट पर जांच की जाती है. इसके लिए, रिलीज़ कैंडिडेट बाइनरी का इस्तेमाल किया जाता है. अगर आपको Bazel का इस्तेमाल करके कोई ज़रूरी प्रोजेक्ट बनाना है, तो हमारा सुझाव है कि आप टेस्टिंग की एक ऐसी प्रोसेस बनाएं जो अपने-आप काम करती हो. इससे मौजूदा रिलीज़ कैंडिडेट को ट्रैक किया जा सकेगा और किसी भी रिग्रेशन की रिपोर्ट की जा सकेगी.