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

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

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

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

खास जानकारी

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

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

स्थिर फ़ंक्शन क्या है?

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

इसमें इस तरह का कॉन्टेंट शामिल है:

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

डेटा को दूसरी जगह भेजने से जुड़ी रेसिपी और उनमें किए गए बदलाव काम नहीं करते

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

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

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

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

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

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

  • काम न करने वाले बदलाव को कंट्रोल करने वाले फ़्लैग का नाम
  • बदली गई सुविधा की जानकारी
  • डेटा दूसरी जगह भेजने से जुड़ी रेसिपी

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