इस पेज पर, पुराने सिस्टम के साथ काम करने की सुविधा के बारे में जानकारी दी गई है. इसमें, एक रिलीज़ से दूसरी रिलीज़ पर माइग्रेट करना और साथ काम न करने वाले बदलावों की जानकारी देने का तरीका भी शामिल है.
Bazel लगातार तैयार हो रहा है. एलटीएस मेजर वर्शन के हिस्से के तौर पर रिलीज़ किए गए माइनर वर्शन, पुराने सिस्टम के साथ काम करते हैं. एलटीएस की नई बड़ी रिलीज़ में ऐसे बदलाव हो सकते हैं जो काम नहीं करते. Bazel के रिलीज़ मॉडल के बारे में ज़्यादा जानकारी के लिए, कृपया रिलीज़ मॉडल पेज देखें.
खास जानकारी
- हमारा सुझाव है कि नुकसान पहुंचा सकने वाले बदलावों के लिए,
--incompatible_*
फ़्लैग का इस्तेमाल करें. - हर
--incompatible_*
फ़्लैग के लिए, GitHub से जुड़ी समस्या में, व्यवहार में हुए बदलाव की जानकारी दी जाती है. इसका मकसद, डेटा को दूसरी जगह भेजने की रेसिपी उपलब्ध कराना है. - 'फ़्लैग करें' सुविधा के साथ काम न करने वाले फ़्लैग को डिफ़ॉल्ट रूप से चालू किए बिना, नए एलटीएस रिलीज़ के साथ पोर्ट किए जाने का सुझाव दिया जाता है.
--experimental_*
फ़्लैग के ज़रिए सुरक्षित एपीआई और व्यवहार कभी भी बदले जा सकते हैं.--experimental_*
या--incompatible_*
फ़्लैग के साथ प्रोडक्शन बिल्ड कभी न चलाएं.
इस नीति का पालन करने का तरीका
- Bzel उपयोगकर्ताओं के लिए - Bazel को अपडेट करने का तरीका
- योगदान देने वालों के लिए - अलग-अलग बदलावों के सबसे सही तरीके
- रिलीज़ मैनेजर के लिए - समस्या वाले लेबल और रिलीज़ को अपडेट करने का तरीका
स्टेबल फ़ंक्शन क्या है?
आम तौर पर, --experimental_...
फ़्लैग के बिना एपीआई या व्यवहार, बेज़ल में काम करने वाली सुविधाएं माने जाते हैं.
इसमें ये शामिल हैं:
- Starlark की भाषा और एपीआई
- Bazel के साथ जोड़े गए नियम
- बेज़ल एपीआई, जैसे कि रिमोट एक्ज़ीक्यूशन एपीआई या बिल्ड इवेंट प्रोटोकॉल
- फ़्लैग और उनके सिमेंटिक
एक साथ काम न करने वाले बदलाव और माइग्रेशन की रेसिपी
नई रिलीज़ में किए गए हर बदलाव के लिए, Bazel की टीम का मकसद माइग्रेशन रेसिपी उपलब्ध कराना है. यह कोड आपके कोड (BUILD
और .bzl
फ़ाइलों) के साथ-साथ स्क्रिप्ट में बैजल एपीआई के इस्तेमाल, बेज़ल एपीआई के इस्तेमाल वगैरह की जानकारी अपडेट करने में आपकी मदद करेगा.
असंगत बदलावों में एक संबद्ध --incompatible_*
फ़्लैग और
एक संबंधित GitHub समस्या होनी चाहिए.
जो फ़्लैग काम के नहीं हैं और उनसे जुड़े काम के सुझाव हैं, उन्हें डिफ़ॉल्ट तौर पर चालू किए बिना, एलटीएस रिलीज़ के साथ पोर्ट किए जाने का सुझाव दिया जाता है. इससे अगली एलटीएस रिलीज़ उपलब्ध होने से पहले ही, उपयोगकर्ता ऐसे बदलावों के लिए माइग्रेट कर सकते हैं जो काम के नहीं हैं.
बदलावों के बारे में लोगों को बताना
असंगत बदलावों के बारे में जानकारी का प्राथमिक स्रोत GitHub समस्याएं हैं, जिन्हें "अप्रासंगिक-बदलने वाला" लेबल से मार्क किया जाता है.
हर एक बदलाव के लिए, समस्या यह जानकारी देती है:
- काम न करने वाले बदलाव को कंट्रोल करने वाले फ़्लैग का नाम
- बदली गई सुविधा के बारे में जानकारी
- माइग्रेशन की रेसिपी
migration-ready
HEAD में काम न करने वाले फ़्लैग को फ़्लिप करने पर, असंगत बदलाव की समस्या बंद हो जाती है.