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

किसी समस्या की शिकायत करना सोर्स देखना Nightly · 8.1 · 8.0 · 7.5 · 7.4

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

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

खास जानकारी

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

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

सही तरीके से काम करने की सुविधा क्या है?

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

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

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

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

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

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

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

काम न करने वाले बदलावों की जानकारी देना

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

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

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

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