रिलीज़ का मॉडल

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

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

रिलीज़ से जुड़ा वर्शन

Bazel, major.minor.patch SemanticVersioning स्कीम का इस्तेमाल करता है.

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

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

उदाहरण के लिए, हर तरह की नई रिलीज़ के नतीजे ये वर्शन नंबर होंगे:

  • खास तरीका: 6.0.0
  • नाबालिग: 6.1.0
  • पैच: 6.1.2
  • रिलीज़ से पहले: 7.0.0-pre.20230502.1

सहायता चरण

हर एक बड़ी बेज़ल वर्शन के लिए, चार सहायता चरण होते हैं:

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

रिलीज़ की रफ़्तार

Bazel, दो रिलीज़ ट्रैक के लिए रिलीज़ को नियमित रूप से पब्लिश करता है.

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

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

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

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

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

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

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

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

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

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

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

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

रिग्रेशन की शिकायत करें

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

उदाहरण के लिए, अगर आप {0/} के

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

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

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

नियम के साथ काम करना

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