नियम के साथ काम करने से जुड़ा नियम

किसी समस्या की शिकायत करें सोर्स देखें Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Bazel Starlark नियम, Bazel LTS रिलीज़ के साथ इन दो स्थितियों में काम नहीं कर सकते:

  1. इस नियम से, आने वाली एलटीएस रिलीज़ के साथ काम करने की सुविधा पर असर पड़ता है. ऐसा इसलिए होता है, क्योंकि यह एक ऐसी सुविधा है जो पर निर्भर करता है, जो HEAD पर बेज़ेल से निकाल दिया गया है.
  2. इस नियम से मौजूदा या पुरानी एलटीएस रिलीज़ के साथ काम करने की सुविधा पर असर पड़ता है, क्योंकि जिस सुविधा पर यह निर्भर करता है वह सिर्फ़ नए Bagel LTS रिलीज़ में उपलब्ध है.

हालांकि, नियम खुद ही उनके उपयोगकर्ताओं के लिए काम न करने वाले बदलावों को इस रूप में भेज सकता है करते हैं. Basel में नुकसान पहुंचाने वाले बदलावों के साथ जोड़ने पर, नियम वर्शन को अपग्रेड करें और Babel वर्शन वाले वर्शन का इस्तेमाल करने वाले लोग अक्सर परेशानी का सामना कर सकते हैं. यह पेज पर बताया गया है कि किस तरह नियमों को बेज़ल के साथ काम करने के लिए, नियमों को बनाए रखना चाहिए इससे उपयोगकर्ताओं के लिए, Basel और नियमों को अपग्रेड करना आसान हो जाता है.

माइग्रेशन की मैनेज की जा सकने वाली प्रोसेस

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

उदाहरण के लिए, यहां दी गई, काम करने के तरीके की मैट्रिक के साथ:

  • criteria_foo 1.x + Bagel 4.x से legal_foo 2.x + Baज़र 5.x पर माइग्रेट करना को प्रबंधनीय माना जाता है, क्योंकि उपयोगकर्ताओं को नियमों_foo और Basel का इस्तेमाल करने की सहमति देते हैं.
  • segment_foo 2.x + Baze 5.x से रूल_foo 3.x + Baज़र 6.x पर माइग्रेट करने पर माना जाता है कि इसे मैनेज किया जा सकता है. इसकी वजह यह है कि उपयोगकर्ता पहले, नियमों_foo को 2.x से 3.x के लिए, मेजर Basel वर्शन में बदलाव नहीं किया गया है, फिर Baज़र को 5.x से अपग्रेड करके 6.x.
रूल_फ़ूट 1.x rules_foo 2.x रूल_foo 3.x शीर्ष
Bazel 4.x
Bazel 5.x
Bazel 6.x
शीर्ष

❌: मेजर नियम वाले वर्शन का कोई भी वर्शन, Basel LTS के साथ काम नहीं करता रिलीज़.

✅: नियम का कम से कम एक वर्शन, Bazel एलटीएस रिलीज़ के सबसे नए वर्शन के साथ काम करता है.

सबसे सही तरीके

Basel का नियम लेखक होने पर, आपके पास यह पक्का करने का विकल्प होता है कि उपयोगकर्ताओं के लिए माइग्रेशन की प्रोसेस को मैनेज किया जा सके ये सबसे सही तरीके अपनाएं:

  1. यह नियम सिमेंटिक वर्शनिंग के मुताबिक होना चाहिए: एक ही मेजर वर्शन के माइनर वर्शन, बैकवर्ड के साथ काम करते हैं.
  2. HEAD में मौजूद नियम, Bazel के सबसे नए एलटीएस वर्शन के साथ काम करना चाहिए.
  3. HEAD पर मौजूद नियम, HEAD पर मौजूद Bazel के साथ काम करना चाहिए. इसे पाने के लिए, आप कर सकते हैं
  4. नियम का नया मुख्य वर्शन, सबसे नए Bazel LTS रिलीज़ के साथ काम करना चाहिए.
  5. नियम का नया मेजर वर्शन, पिछले Basel LTS के साथ काम करना चाहिए रिलीज़, नियम के पिछले मेजर वर्शन में काम करती है.

दूसरा और तीसरा चरण पूरा करना सबसे ज़रूरी है, क्योंकि इससे चौथा और पांचवां चरण पूरा किया जा सकता है. ढूंढें.

Bazel के HEAD और सबसे नए LTS वर्शन, दोनों के साथ आसानी से काम करने के लिए, नियम बनाने वाले लोग ये काम कर सकते हैं:

  • पुराने सिस्टम के साथ काम करने वाली सुविधाओं का अनुरोध करना, ताकि उन्हें नए एलटीएस (लंबे समय तक सहायता) पर वापस ले जाया जा सके रिलीज़, रिलीज़ की प्रोसेस देखें देखें.
  • bazel_features का इस्तेमाल करें का इस्तेमाल करें.

आम तौर पर, सुझाए गए तरीकों का इस्तेमाल करके, नियम ऐसे होने चाहिए कि Basel की सुविधाएं बिना किसी काम के बदलाव करती हैं. साथ ही, HEAD पर उसकी नई सुविधाओं का इस्तेमाल बिना लॉन्च होने के बाद, ये Basel की नई एलटीएस रिलीज़ के साथ काम करती हैं.