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

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

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

खास जानकारी

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

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

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

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

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

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

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

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

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

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

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

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

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

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