जब इंजीनियर, Blink रेंडरिंग इंजन में कोई बदलाव करना चाहते हैं, तो वे blink-dev मेलिंग सूची पर पोस्ट करते हैं, ताकि उन्हें आगे बढ़ने की अनुमति मिल सके. मेलिंग सूची की इन पोस्ट को Blink Intents कहा जाता है.
Chromium पर आधारित वेब ब्राउज़र, Blink रेंडरिंग इंजन का इस्तेमाल करके कोड और रिसॉर्स को वेब पेजों में बदल देते हैं. इन वेब पेजों को देखा जा सकता है और इनके साथ इंटरैक्ट किया जा सकता है.
जानें कि Blink Intents कैसे काम करते हैं, ये क्यों ज़रूरी हैं, और नई सुविधाएं Blink में कैसे शामिल की जाती हैं.
Chromium और Blink
Chromium, ओपन-सोर्स ब्राउज़र प्रोजेक्ट है. Chrome और कुछ अन्य ब्राउज़र और फ़्रेमवर्क, इसी पर आधारित हैं. Blink, Chromium का रेंडरिंग इंजन है.
इस प्रोसेस के बारे में ज़्यादा जानकारी पाने के लिए, Blink क्या है लेख पढ़ें.किसी नई सुविधा को Blink में शामिल करने के लिए, उसे Chromium प्रोजेक्ट की ओपन डेवलपमेंट प्रोसेस से गुज़रना पड़ता है. "नई सुविधा" का मतलब है, ब्राउज़र कोड या आर्किटेक्चर में किया गया कोई भी बदलाव या जोड़ा गया कोई भी कॉम्पोनेंट. यह कोई नई JavaScript API, Blink कोड में परफ़ॉर्मेंस को बेहतर बनाने वाला कोई अहम बदलाव या ब्राउज़र के दिखने या काम करने के तरीके में किया गया कोई अन्य बदलाव हो सकता है.
ओपन और मिलकर काम करने की प्रोसेस
Chromium एक बड़ा और जटिल प्रोजेक्ट है, जिसमें हज़ारों लोग योगदान देते हैं. Chromium में बदलाव होने पर, हर माइलस्टोन एक मौका होता है, ताकि वेब इकोसिस्टम के ज़्यादा से ज़्यादा लोग, डिज़ाइन और लागू करने के तरीके पर टिप्पणी कर सकें.
नई सुविधाओं को वेब प्लैटफ़ॉर्म पर इंटरऑपरेबल होना चाहिए. साथ ही, उन्हें सिर्फ़ एक ब्राउज़र पर लागू नहीं किया जाना चाहिए. वेब डेवलपर को सरप्राइज़ पसंद नहीं होते. जैसे, जब ब्राउज़र आपकी उम्मीद के मुताबिक काम नहीं करते या जब आपको अलग-अलग ब्राउज़र और प्लैटफ़ॉर्म के लिए अलग-अलग कोड लिखना पड़ता है. Blink Intents, बदलाव की प्रोसेस को स्ट्रक्चर करने और उसे कंट्रोल करने में मदद करते हैं. इससे बदलावों के बारे में पहले से अनुमान लगाया जा सकता है और ये सरप्राइज़ नहीं होते. यह वेब डेवलपर के लिए अच्छी बात है.
उपयोगकर्ताओं के लिए, ब्राउज़र बनाने वाली कंपनियों को यह पक्का करना होता है कि बदलावों की वजह से वेबसाइटें काम करना बंद न करें. अक्सर, साइट के मालिक वेबसाइटों को अपडेट करना बंद कर देते हैं. कुछ साइटें तो दशकों से अपडेट नहीं की गई हैं! ब्राउज़र बनाने वाली कंपनियों को ऐसे बदलाव करते समय इस बात का ध्यान रखना चाहिए जिनसे वेबसाइटें काम करना बंद कर सकती हैं.
आइडिया से प्रपोज़ल तक
वेब प्लैटफ़ॉर्म में बदलाव और अपडेट के प्रपोज़ल, रिसर्च के आधार पर तैयार किए जाते हैं. इसके लिए, उपयोगकर्ताओं, कारोबारों, ब्राउज़र इंजीनियरों, वेब डेवलपर, और अन्य स्टेकहोल्डर से सलाह ली जाती है. इस रिसर्च से Chrome टीम को यह पता चलता है कि प्लैटफ़ॉर्म में क्या कमी है या उसमें क्या बदलाव करने की ज़रूरत है. शुरुआत में, वेब प्लैटफ़ॉर्म पर किसी बदलाव या नई सुविधा का प्रपोज़ल, सिर्फ़ एक पेज पर लिखे गए शब्दों के तौर पर होता है. इंजीनियर, अपने साथियों से सुझाव और चर्चा के लिए दस्तावेज़ शेयर करते हैं.
उदाहरण: FedCM
फ़ेडरेटेड क्रेडेंशियल मैनेजमेंट (FedCM) एक API है. यह उपयोगकर्ता के साइन अप और लॉगिन के लिए, निजता को ध्यान में रखकर और उपयोगकर्ता के लिए आसान तरीका उपलब्ध कराता है. इसे फ़ेडरेटेड आइडेंटिटी के तौर पर जाना जाता है. उदाहरण के लिए, यह 'Google से साइन इन करें' और सोशल मीडिया प्लैटफ़ॉर्म से साइन इन करने के अन्य तरीकों पर लागू होता है.
ब्राउज़र API बनाने के लिए, पहला चरण है कि सार्वजनिक चर्चा के लिए एक प्रपोज़ल तैयार किया जाए. FedCM का प्रपोज़ल, GitHub पर जानकारी के तौर पर पब्लिश किया गया था. जानकारी के रिपॉज़िटरी पर GitHub Issue बनाकर, कोई भी व्यक्ति सुविधा के डिज़ाइन के बारे में सवाल पूछ सकता है या टिप्पणी कर सकता है. सुझाव/राय में, डेवलपर, इस्तेमाल के अन्य उदाहरण, पाबंदियां, सुधार के लिए आइडिया या सहायता का वादा शामिल कर सकते हैं.
जब किसी प्रपोज़ल को W3C जैसे स्टैंडर्डाइज़ेशन बॉडी से मंज़ूरी मिल जाती है, तो स्टेकहोल्डर, W3C वर्किंग ग्रुप जैसे वेब स्टैंडर्ड ग्रुप में चर्चाओं में शामिल हो सकते हैं और प्रज़ेंटेशन देख सकते हैं.
Blink Intents: माइलस्टोन और प्रोग्रेस
जब इंजीनियर, Blink रेंडरिंग इंजन में किसी नई सुविधा या बदलाव पर काम कर रहे होते हैं, तो वे blink-dev चर्चा ग्रुप पर एक पोस्ट पब्लिश करते हैं. इसमें वे बताते हैं कि वे किसी सुविधा को लागू करने के लिए, अगले फ़ेज़ में जाने वाले हैं. इन पोस्ट को "intents" कहा जाता है. कोई भी व्यक्ति blink-dev ग्रुप की सदस्यता ले सकता है, ताकि Blink में नई सुविधाओं की प्रोग्रेस के बारे में सूचना मिल सके. इसके अलावा, अपडेट पाने के लिए किसी सुविधा की सदस्यता भी ली जा सकती है.
Intent to Prototype
इस स्टेज पर, Chromium के इंजीनियर किसी सुविधा को लागू करना शुरू कर सकते हैं. इसका मतलब है कि सुविधा के लिए प्रोटोटाइप की सुविधा, डेवलपर टेस्टिंग के लिए उपलब्ध कराई जा सकती है. इसके लिए, सुविधा फ़्लैग का इस्तेमाल किया जाता है. शुरुआत में, यह सुविधा Chrome कैनरी में उपलब्ध कराई जाती है. इसके बाद, इसे अन्य रिलीज़ चैनलों में उपलब्ध कराया जाता है. कोई भी उपयोगकर्ता, chrome://flags पेज से फ़्लैग सेट करके, अपने ब्राउज़र में किसी सुविधा को चालू और टेस्ट कर सकता है.
हालांकि, सभी फ़्लैग को chrome://flags पेज से सेट नहीं किया जा सकता. ज़्यादा बेहतर कंट्रोल के लिए, Chrome को टर्मिनल से चलाया जा सकता है. इसके लिए, कमांड-लाइन फ़्लैग का इस्तेमाल किया जाता है. ध्यान रखें कि कुछ नई सुविधाएं, Chrome कैनरी में टेस्टिंग के लिए उपलब्ध होने तक इस्तेमाल नहीं की जा सकतीं. हालांकि, ऐसा बहुत कम होता है. कुछ सुविधाओं का अपना फ़्लैग नहीं होता. हालांकि, अगर experimental-web-platform-features फ़्लैग चालू है, तो ये सुविधाएं उपलब्ध कराई जाती हैं. आम तौर पर, ऐसा "छोटी" सुविधाओं के लिए होता है. इन्हें लागू करने में ज़्यादा से ज़्यादा तीन से छह महीने लगते हैं.
प्रोटोटाइप पर सुझाव/राय इकट्ठा करना
किसी नई सुविधा का प्रोटोटाइप बनाना शुरू होने के बाद, Chromium के इंजीनियर, चर्चा और शुरुआती एक्सपेरिमेंट के लिए न्योता भेजते हैं. इस स्टेज पर मिलने वाले सुझाव/राय, प्रपोज़ल की पुष्टि करने और उन्हें बेहतर बनाने के लिए ज़रूरी होते हैं. Chrome में लागू करने के तरीके पर टिप्पणी करने के लिए, Chromium bugs पर जाएं.
Intent to Experiment: असल दुनिया में टेस्टिंग
blink-dev पर Intent to Experiment पोस्ट करना, अगला वैकल्पिक चरण है. ऐसा तब किया जाता है, जब Chrome के इंजीनियर, ऑरिजिन ट्रायल चलाने का अनुरोध करना चाहते हैं.
ऑरिजिन ट्रायल, वेब प्लैटफ़ॉर्म की किसी नई या एक्सपेरिमेंटल सुविधा को टेस्ट करने का एक तरीका है. किसी सुविधा के ऑरिजिन ट्रायल के लिए रजिस्टर करें. इसके बाद, आपको ट्रायल के लिए एक टोकन मिलेगा. टोकन उपलब्ध कराने वाले किसी भी पेज पर, सुविधा चालू हो जाएगी.
Blink API के मालिकों से मंज़ूरी
किसी सुविधा को लागू करने की दिशा में आगे बढ़ने के लिए, Blink API मालिकों को अपनी मंज़ूरी देनी होगी. इसके लिए, उन्हें "मुझे यह ठीक लगता है" वाली पोस्ट के साथ किसी इंटेंट का जवाब देना होगा. इसे एलजीटीएम कहा जाता है.
Blink API के मालिक, Chromium में योगदान देने वाले लोगों का एक छोटा ग्रुप है. इन्हें वेब प्लैटफ़ॉर्म और इसके एपीआई का काफ़ी अनुभव होता है. साथ ही, Blink कम्यूनिटी ने इन्हें अच्छी स्थिति में माना है. ये Blink के मिशन और वैल्यू के लिए प्रतिबद्ध हैं. एपीआई के मालिक, सुविधाओं को लागू करने की मंज़ूरी देने (या न देने) के साथ-साथ, Blink Intent की प्रोसेस की निगरानी भी करते हैं.
Intent to Experiment को एपीआई के मालिकों से कम से कम एक एलजीटीएम मिलना चाहिए.
ऑरिजिन ट्रायल की अहमियत
डेवलपर, किसी सुविधा के ऑरिजिन ट्रायल के लिए साइन अप कर सकते हैं. इसके बाद, वे असल दुनिया के एनवायरमेंट में, असली उपयोगकर्ताओं के साथ प्रोडक्शन में सुविधा को टेस्ट कर सकते हैं. इसके लिए, उपयोगकर्ताओं को सुविधा को चालू करने के लिए कोई कार्रवाई नहीं करनी पड़ती. डेवलपर, अपने टेस्ट के नतीजे शेयर कर सकते हैं. इससे सुविधा को बेहतर बनाने और उसे विकसित करने के लिए अहम जानकारी और डेटा मिलता है.
Intent to Ship: आखिरी माइलस्टोन
Intent to Ship से पता चलता है कि कोई सुविधा अब पूरी हो गई है और इसे आम तौर पर उपलब्ध कराया जा सकता है. इसके लिए, Chrome के स्टेबल वर्शन के सभी उपयोगकर्ताओं को किसी फ़्लैग या ट्रायल टोकन की ज़रूरत नहीं होती. Intent to Ship को लागू करने से पहले, एपीआई के मालिकों से तीन एलजीटीएम मिलने चाहिए.
नई सुविधाएं रोल आउट करना
मंज़ूरी मिलने के बाद, किसी सुविधा को आने वाले रिलीज़ में मर्ज कर दिया जाता है. इसके बाद, यह Chrome के रिलीज़ चैनलों में आगे बढ़ती है. नई सुविधाओं की टेस्टिंग और उन्हें लागू करने का काम, अक्सर खास ध्यान से किया जाता है. कुछ सुविधाएं, धीरे-धीरे रोल आउट की जाती हैं. इन्हें ज़्यादा से ज़्यादा उपयोगकर्ताओं के लिए उपलब्ध कराया जाता है. अगर अनचाहे साइड इफ़ेक्ट होते हैं, तो सुविधाओं को रोल बैक किया जा सकता है और उनमें बदलाव किया जा सकता है.
सुविधा को बंद करने और हटाने की प्रोसेस मैनेज करना
Blink Intent के दो अन्य टाइप हैं:
- Intent to Deprecate
- Intent to Remove
ये सुनने में थोड़े दुखद लग सकते हैं, लेकिन ये Blink डेवलपमेंट की सफलता के लिए ज़रूरी हैं.
इंजीनियर, Intent to Deprecate तब पोस्ट करते हैं, जब वे डेवलपर को यह चेतावनी देना चाहते हैं कि किसी सुविधा को बंद किया जाने वाला है. उदाहरण के लिए, Chrome DevTools कंसोल में, बंद की जाने वाली सुविधा के बारे में सहायता और जानकारी देकर.
Intent to Remove तब पोस्ट किया जाता है, जब इंजीनियर चाहते हैं कि कोड डिफ़ॉल्ट रूप से डीऐक्टिवेट हो जाए.
सुविधा को बंद करने और हटाने की अहमियत
सुविधा को बंद करना और हटाना, दोनों ही वेब प्लैटफ़ॉर्म के लिए ज़रूरी हैं. इनसे यह पक्का होता है कि Chrome, उन सुविधाओं को हटा सकता है जो एंड यूज़र या वेब डेवलपर के लिए ठीक से काम नहीं करती हैं. साथ ही, इनसे कोडबेस की जटिलता को कम करने में मदद मिलती है. उदाहरण के लिए, AppCache के डिज़ाइन में समस्याएं तब सामने आईं, जब इसका इस्तेमाल स्टेबल ब्राउज़र में प्रोडक्शन साइटों पर किया गया. इसके बाद, एपीआई को हटा दिया गया. सुविधाओं को बंद करने और हटाने से, Chrome को सुरक्षित रखने में भी मदद मिलती है. ऐसा, संभावित हमलों के वेक्टर को कम करके किया जाता है.
Chrome टीम, सभी Blink Intent के लिए, सोच-समझकर फ़ैसले लेती है. वे आगे बढ़ने से पहले, सुविधा के इस्तेमाल की दर और अन्य डेटा की समीक्षा करते हैं. सुविधाओं को हटाने के लिए, बहुत सख्त शर्तें होती हैं. किसी सुविधा को सिर्फ़ तब हटाया जाएगा, जब बहुत कम लोग उसका इस्तेमाल करते हों और उसके बेहतर विकल्प उपलब्ध हों.
Blink Intents के बारे में अप-टू-डेट रहें
Chrome Status पर, सुविधाओं की प्रोग्रेस ट्रैक की जा सकती है. Chrome Status पर, जहां अपडेट की सदस्यता ली जा सकती है, गड़बड़ियां रिपोर्ट की जा सकती हैं, और अन्य रिसॉर्स ढूंढे जा सकते हैं.
नई सुविधाओं को ट्रैक करने के लिए, Chromium Blog को फ़ॉलो करें और blink-dev चर्चा ग्रुप में शामिल हों. इस ग्रुप से कई ईमेल मिल सकते हैं. इसलिए, हो सकता है कि आपको किसी एक इंटेंट की सदस्यता लेना बेहतर लगे. Blink Intents की स्प्रेडशीट देखी जा सकती है .
अगर आपको Blink Intents बहुत पसंद हैं, तो Blink Intent Tracker की ऑटोमेटेड सेवाओं का इस्तेमाल भी किया जा सकता है.