पुराने सिस्टम के साथ काम करने की सुविधा

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

इस पेज पर पुराने सिस्टम के साथ काम करने की सुविधा को मैनेज करने के बारे में जानकारी दी गई है. इसमें एक रिलीज़ से दूसरी रिलीज़ पर माइग्रेट करना और काम न करने वाले बदलावों के बारे में बताने का तरीका शामिल है.

Bazel को बेहतर बनाया जा रहा है. एलटीएस के मेजर वर्शन के हिस्से के तौर पर रिलीज़ किए गए छोटे वर्शन, पूरी तरह से पुराने सिस्टम के साथ काम करते हैं. नई बड़ी एलटीएस रिलीज़ में ऐसे बदलाव हो सकते हैं जो काम के नहीं हैं. उन्हें माइग्रेट करने के लिए, थोड़ी-बहुत कोशिश करनी पड़ती है. Bazel के रिलीज़ मॉडल के बारे में ज़्यादा जानकारी के लिए, कृपया रिलीज़ मॉडल पेज पर जाएं.

खास जानकारी

  1. हमारा सुझाव है कि आप नुकसान पहुंचा सकने वाले बदलाव करने के लिए, --incompatible_* फ़्लैग का इस्तेमाल करें.
  2. हर --incompatible_* फ़्लैग के लिए, GitHub की एक समस्या, उपयोगकर्ताओं के व्यवहार में हुए बदलाव के बारे में बताती है. साथ ही, इसका मकसद माइग्रेशन की रेसिपी देना है.
  3. इस्तेमाल न किए जा सकने वाले फ़्लैग को, एलटीएस रिलीज़ के नए वर्शन पर बैक-पोर्ट करने का सुझाव दिया जाता है. ऐसा करने के लिए, फ़्लैग को डिफ़ॉल्ट रूप से चालू नहीं किया जाता.
  4. --experimental_* फ़्लैग से सुरक्षित एपीआई और उसके काम करने के तरीके में किसी भी समय बदलाव हो सकता है.
  5. --experimental_* या --incompatible_* फ़्लैग वाले प्रोडक्शन बिल्ड कभी न चलाएं.

इस नीति का पालन करने का तरीका

स्टेबल फ़ंक्शन क्या है?

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

ऐसे कॉन्टेंट के कुछ उदाहरण यहां दिए गए हैं:

  • Starlark भाषा और एपीआई
  • Bazel के साथ बंडल किए गए नियम
  • Bazel एपीआई, जैसे कि रिमोट एक्ज़ीक्यूशन एपीआई या बिल्ड इवेंट प्रोटोकॉल
  • फ़्लैग और उनके सिमेंटिक्स

काम न करने वाले बदलाव और माइग्रेशन की रेसिपी

नई रिलीज़ में ऐसे हर बदलाव के लिए जिसका इस्तेमाल नहीं किया जा सकता, Bazel टीम का मकसद माइग्रेशन रेसिपी उपलब्ध कराना है. इससे आपको कोड अपडेट करने में मदद मिलेगी. इसमें BUILD और .bzl फ़ाइलों के साथ-साथ, स्क्रिप्ट में Bazel का इस्तेमाल, Bazel API का इस्तेमाल वगैरह को अपडेट करने में मदद मिलेगी.

काम न करने वाले बदलावों के लिए, --incompatible_* फ़्लैग और उससे जुड़ी GitHub समस्या होनी चाहिए.

हमारा सुझाव है कि काम न करने वाले फ़्लैग और काम के बदलावों को, फ़्लैग को डिफ़ॉल्ट रूप से चालू किए बिना, सबसे नए एलटीएस रिलीज़ पर बैक-पोर्ट करने का सुझाव दिया जाता है. इससे उपयोगकर्ताओं को, एलटीएस रिलीज़ के उपलब्ध होने से पहले ही उन बदलावों के लिए माइग्रेट करने की अनुमति मिल जाती है जो साथ काम नहीं करते.

असंगत बदलावों के बारे में बताना

काम न करने वाले बदलावों के बारे में जानकारी का मुख्य सोर्स, GitHub की समस्याएं हैं. इन समस्याओं को "बेमेल-बदलाव" लेबल से मार्क किया गया होता है.

हर काम न करने वाले बदलाव के लिए, समस्या के बारे में नीचे दी गई जानकारी मौजूद होती है:

  • असंगत बदलाव को नियंत्रित करने वाले फ़्लैग का नाम
  • बदली गई फ़ंक्शन की जानकारी
  • माइग्रेशन की रेसिपी

जब HEAD पर Bazel के साथ माइग्रेशन के लिए कोई ऐसा बदलाव तैयार होता है जो काम नहीं करता, तो उसे migration-ready लेबल से मार्क किया जाना चाहिए. इसलिए, यह बदलाव Bazel के अगले रोलिंग रिलीज़ के साथ भी लागू होगा. असंगत बदलाव की समस्या तब बंद हो जाती है, जब असंगत फ़्लैग को HEAD पर फ़्लिप किया जाता है.