रिलीज़ मॉडल

समस्या की शिकायत करें सोर्स देखें

जैसा कि ओरिजनल ब्लॉग पोस्ट में बताया गया था, Basel 4.0 और उसके बाद के वर्शन में दो रिलीज़ ट्रैक काम करते हैं: रोलिंग रिलीज़ और लंबे समय तक सहायता (एलटीएस) रिलीज़. इस पेज पर, Basel के रिलीज़ मॉडल के बारे में नई जानकारी दी गई है.

रिलीज़ का वर्शन

Basel, major.minor.patch सिमैंटिक वर्शनिंग स्कीम का इस्तेमाल करती है.

  • मुख्य रिलीज़ में ऐसी सुविधाएं होती हैं जो पिछली रिलीज़ के साथ काम नहीं करतीं. बेज़ल का हर मेजर वर्शन, एलटीएस रिलीज़ है.
  • किसी माइनर रिलीज़ में, पुराने सिस्टम के साथ काम करने वाली गड़बड़ियां ठीक की गई होती हैं. साथ ही, इसमें ऐसी सुविधाएं शामिल होती हैं जिन्हें मुख्य ब्रांच से बैक-पोर्ट किया जाता है.
  • पैच रिलीज़ में गंभीर गड़बड़ियां ठीक की गई हैं.

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

उदाहरण के लिए, हर टाइप की नई रिलीज़ से ये वर्शन नंबर मिलेंगे:

  • मेजर: 6.0.0
  • कम: 6.1.0
  • पैच: 6.1.2
  • रिलीज़ से पहले: 7.0.0-pre.20230502.1

सहायता के चरण

हर मुख्य Basel वर्शन के लिए, सहायता के चार चरण हैं:

  • रोलिंग: यह मेजर वर्शन अब भी रिलीज़ के पहले की प्रक्रिया में है, Baज़रल टीम, HEAD से रोलिंग रिलीज़ पब्लिश करती है.
  • चालू: यह मेजर वर्शन, चालू एलटीएस रिलीज़ है. Basel की टीम, अपनी छोटी-छोटी रिलीज़ में अहम सुविधाओं को बैकपोर्ट करती है और गड़बड़ियां ठीक करती है.
  • रखरखाव: यह मेजर वर्शन, रखरखाव मोड में इस्तेमाल की जाने वाली पुरानी एलटीएस रिलीज़ है. Basel की टीम, एलटीएस रिलीज़ में सिर्फ़ सुरक्षा से जुड़ी समस्याओं और ओएस के साथ काम करने से जुड़ी समस्याओं को ठीक करने का वादा करती है.
  • अब काम नहीं करता: Basel टीम अब इस मेजर वर्शन के लिए सहायता नहीं देती है. सभी उपयोगकर्ताओं को नए Basel एलटीएस रिलीज़ पर माइग्रेट कर देना चाहिए.

रिलीज़ की फ़्रीक्वेंसी

Basel ने दो रिलीज़ ट्रैक के लिए, नियमित तौर पर रिलीज़ पब्लिश की.

रोलिंग रिलीज़

  • रोलिंग रिलीज़ को Google Blaze रिलीज़ के साथ मिलकर बनाया जाता है और इन्हें हर दो हफ़्तों के आस-पास HEAD से रिलीज़ किया जाता है. यह अगली Babel LTS रिलीज़ का पूर्वावलोकन है.
  • रोलिंग रिलीज़, काम न करने वाले बदलावों को शिप कर सकती हैं. नुकसान पहुंचाने वाले बड़े बदलावों के लिए, इस्तेमाल न किए जा सकने वाले फ़्लैग इस्तेमाल करने का सुझाव दिया जाता है. साथ काम न करने वाले बदलावों को रोल आउट करने के लिए, पुराने सिस्टम के साथ काम करने से जुड़ी हमारी नीति का पालन करना ज़रूरी है.

एलटीएस रिलीज़

  • मुख्य रिलीज़: करीब हर 12 महीने में, नई एलटीएस रिलीज़ को HEAD से काटा जाने की उम्मीद है. नई एलटीएस रिलीज़ रिलीज़ होने के बाद, यह तुरंत ऐक्टिव स्टेज में आ जाती है. साथ ही, पिछली एलटीएस रिलीज़, रखरखाव वाले चरण में पहुंच जाती है.
  • थोड़ी-बहुत रिलीज़: ऐक्टिव एलटीएस ट्रैक पर नए छोटे वर्शन हर दो महीने में एक बार रिलीज़ होने की उम्मीद है.
  • पैच रिलीज़: ज़रूरी गड़बड़ियां ठीक करने के लिए, एलटीएस रिलीज़ के लिए चालू और रखरखाव वाले चरणों के नए पैच वर्शन रिलीज़ किए जा सकते हैं.
  • दो साल तक रखरखाव के चरण में रहने के बाद, Basel LTS की रिलीज़ ' डेप्रिकेटेड' स्टेज में आ गई है.

पहले से तय की गई रिलीज़ के लिए, कृपया GitHub पर हमारी रिलीज़ से जुड़ी समस्याएं देखें.

सपोर्ट मैट्रिक्स

एलटीएस रिलीज़ सहायता का स्टेज सबसे नया वर्शन इस डिवाइस पर सहायता पाने की सुविधा बंद होने के बारे में जानकारी
बेज़ल 7 लगातार GitHub के रिलीज़ पेज की जांच करें लागू नहीं
बेज़ल 6 चालू है 6.4.0 दिसंबर 2025
बेज़ल 5 रखरखाव 5.4.1 जनवरी 2025
बेज़ल 4 रखरखाव 4.2.4 जनवरी 2024

Basel की सभी रिलीज़, GitHub पर रिलीज़ पेज पर मिल सकती हैं.

रिलीज़ की प्रोसेस और नीतियां

रोलिंग रिलीज़ के लिए यह प्रोसेस आसान है: करीब हर दो हफ़्ते में एक नई रिलीज़ बनाई जाती है और यह Google की इंटरनल ब्लेज़ रिलीज़ जैसी बेसलाइन के साथ अलाइन होती है. तेज़ी से रिलीज़ होने वाले शेड्यूल की वजह से, हम रोलिंग रिलीज़ में कोई भी बदलाव नहीं करते.

एलटीएस रिलीज़ के लिए, नीचे दी गई प्रक्रिया और नीतियों का पालन किया जाता है:

  1. रिलीज़ के लिए बेसलाइन तय तय करें.
    • नई बड़ी एलटीएस रिलीज़ के लिए, बेसलाइन कमिटी मुख्य ब्रांच का हेड है.
    • किसी माइनर या पैच रिलीज़ के लिए, बेसलाइन कमिटी उसी एलटीएस रिलीज़ के मौजूदा सबसे नए वर्शन का हेड है.
  2. बेसलाइन कमिट से release-<version> के नाम में रिलीज़ ब्रांच बनाएं.
  3. बैकपोर्ट को PR के ज़रिए रिलीज़ ब्रांच में बदला जाता है.
    • समुदाय ने GitHub से जुड़ी समस्याओं पर "@bazel-io flag" या पीआर की मदद से, उन्हें बैक-पोर्ट करने का सुझाव दिया है. ऐसा करके, उन्हें रिलीज़ ब्लॉकर के तौर पर मार्क किया जा सकता है. बेज़ल टीम उन्हें प्राथमिकता के साथ प्राथमिकता देती है और फ़ैसला लेती है कि उन कमिट को बैक-पोर्ट करना है या नहीं.
    • मुख्य ब्रांच में, सिर्फ़ पुराने सिस्टम के साथ काम करने वाले कॉन्टेंट को बैक-पोर्ट किया जा सकता है. मर्ज से जुड़ी समस्याओं को हल करने के लिए, मामूली बदलाव किए जा सकते हैं.
  4. रिलीज़ ब्लॉकर की पहचान करें और रिलीज़ ब्रांच में मिलने वाली समस्याओं को ठीक करें.
    • रिलीज़ ब्रांच को बेज़ल सीआई पर, उसी टेस्ट सुइट के साथ पोस्टसबमिट और डाउनस्ट्रीम टेस्ट पाइपलाइन के साथ टेस्ट किया जाता है. Basel टीम रिलीज़ ब्रांच के टेस्ट के नतीजों को मॉनिटर करती है और रिग्रेशन मिलने पर उन्हें ठीक करती है.
  5. सभी ज्ञात रिलीज़ ब्लॉकर का समाधान हो जाने के बाद, रिलीज़ ब्रांच से एक नया रिलीज़ कैंडिडेट बनाएं.
    • रिलीज़ कैंडिडेट के बारे में baज़ेन-चर्चा, बज़ल की टीम, उम्मीदवार के लिए कम्यूनिटी से जुड़ी गड़बड़ियों की रिपोर्ट पर नज़र रखती है.
    • अगर रिलीज़ करने वाले नए ब्लॉकर की पहचान हो जाती है, तो आखिरी चरण पर वापस जाएं और सभी समस्याओं को ठीक करने के बाद, नया रिलीज़ कैंडिडेट बनाएं.
    • पहला रिलीज़ कैंडिडेट बनाने के बाद, रिलीज़ ब्रांच में नई सुविधाओं को जोड़ने की अनुमति नहीं है.
  6. अगर आगे कोई रिलीज़ ब्लॉकर नहीं मिलता है, तो रिलीज़ कैंडिडेट को आधिकारिक रिलीज़ के तौर पर पुश करें
    • पैच रिलीज़ के लिए, आखिरी बार रिलीज़ किए गए कैंडिडेट के लाइव होने के कम से कम दो कामकाजी दिनों के बाद रिलीज़ करें.
    • बड़ी और छोटी रिलीज़ के लिए, कैंडिडेट (रिलीज़) की पिछली रिलीज़ के दो कामकाजी दिनों के बाद कॉन्टेंट रिलीज़ करें. हालांकि, पहली रिलीज़ रिलीज़ होने के एक हफ़्ते बाद तक कॉन्टेंट रिलीज़ न करें.
    • रिलीज़ को सिर्फ़ उस दिन पुश किया जाता है जिस दिन अगला दिन कामकाजी दिन होता है.
    • इस रिलीज़ की सूचना baaz-discuss पर दी गई है. Basel की टीम नई रिलीज़ के लिए, कम्यूनिटी की गड़बड़ी की रिपोर्ट पर नज़र रखती है और उन समस्याओं को ठीक करती है.

रिग्रेशन की रिपोर्ट करें

अगर किसी उपयोगकर्ता को नई बेज़ल रिलीज़, रिलीज़ कैंडिडेट या यहां तक कि HEAD पर बैजल की सुविधा में रिग्रेशन मिलता है, तो कृपया GitHub पर गड़बड़ी की शिकायत करें. बैजेलिस्क का इस्तेमाल करके, अपराधी ने उसे दो अलग-अलग हिस्सों में बांटा है और गड़बड़ी की रिपोर्ट में इस जानकारी को शामिल किया है.

उदाहरण के लिए, यदि आपका बिल्ड Basel 6.1.0 के साथ सफल होता है, लेकिन 6.2.0 के दूसरे रिलीज़ कैंडिडेट से विफल होता है, तो आप दो चरणों में

bazelisk --bisect=6.1.0..release-6.2.0rc2 build //foo:bar

अगर किसी समस्या को फिर से जनरेट करने की ज़रूरत हो, तो बिल्ड स्थिति को रीसेट करने के लिए, मिलते-जुलते बेज़ल कमांड को चलाने के लिए, BAZELISK_SHUTDOWN या BAZELISK_CLEAN एनवायरमेंट वैरिएबल को सेट किया जा सकता है. ज़्यादा जानकारी के लिए, Bazelisk bisect सुविधा के बारे में दस्तावेज़ देखें.

दो वर्शन की सुविधा का इस्तेमाल करने के लिए, Bazelisk को नए वर्शन पर अपग्रेड करना न भूलें.

नियम का साथ काम करता है

अगर आप नियम लिखने वाले हैं और आपको अलग-अलग बैजल वर्शन के साथ काम करना है, तो कृपया नियम के साथ काम करने की सुविधा पेज देखें.