Skip to main content
एक पैक एक GitHub रिलीज़ से जुड़ी तीन फाइलें हैं। failproofai pack build उन सभी को एक नीति फाइल से लिखता है जो आपके पास पहले से है।

1. नीतियां लिखें

एक फाइल, किसी भी कस्टम नीति के समान API का उपयोग करते हुए। एक पैक के लिए दो अतिरिक्त फील्ड महत्वपूर्ण हैं:
defaultEnabled डिफ़ॉल्ट रूप से false होता है जब आप इसे छोड़ देते हैं। एक साधारण failproofai pack add केवल उन्हीं को सक्षम करता है जिन्हें आपने चिह्नित किया — किसी अजनबी की सभी नीतियों को निरीक्षण के बिना इंस्टॉल करना एक ऐसा निर्णय नहीं है जो इंस्टॉलर को अपने उपयोगकर्ता के लिए करना चाहिए।
प्रविष्टि एक आत्मनिर्भर फाइल होनी चाहिए। केवल प्रविष्टि को डाइजेस्ट-पिन किया जाता है, इसलिए एक पैक जो स्थानीय फाइलों को आयात करता है वह ईमानदारी से यह दावा नहीं कर सकता कि डाइजेस्ट जो चलता है उसे कवर करता है। पहले बंडल करें (esbuild, bun build, rollup) और पैक को बंडल से बनाएं — pack build एक स्थानीय आयात से इनकार करता है क्योंकि यह एक ऐसा वादा नहीं करना चाहता जिसे वह पूरा नहीं कर सकता।

2. रिलीज़ एसेट्स बनाएं

यह तीन फाइलें लिखता है, और पहले लोडर के अपने नियमों के साथ हर नीति को मान्य करता है — इसलिए एक पैक जो कभी इंस्टॉल नहीं हो सकता है यहां विफल हो जाता है, जहां आप इसे ठीक कर सकते हैं: बिल्ड समय पर अस्वीकार किया गया: एक आईडी जो publisher/name नहीं है, एक नीति नाम में / है, एक नीति alwaysOn की घोषणा करती है, एक लापता description, category या match, एक प्रविष्टि जो कुछ भी पंजीकृत नहीं करती है, और एक प्रविष्टि जो स्थानीय फाइलों को आयात करती है।

3. उन्हें एक रिलीज़ से जोड़ें

रिलीज़ को उसी संस्करण के साथ टैग करें जो आपने बनाया था, और सभी तीन फाइलों को रिलीज़ एसेट्स के रूप में जोड़ें:
अब कोई भी इसे इंस्टॉल कर सकता है:
एसेट नाम निर्धारित हैं — ये वह हैं जो एक उपभोक्ता का CLI अपने URLs का निर्माण करने के लिए बनाता है, कोई API कॉल के बिना और कोई खोज के बिना।

एक नया संस्करण शिप करना

नए --version के साथ बनाएं, एक नई रिलीज़ को टैग करें, तीनों एसेट्स को फिर से जोड़ें। उपभोक्ता समान pack add चलाते हैं और जो भी सबसेट उन्होंने चुना था उसे रखते हैं; एक नीति जिसे उन्होंने बंद किया था अपग्रेड के दौरान बंद रहती है। एक नीति के नाम को बदलना एक ब्रेकिंग परिवर्तन है: एक मशीन जिसने इसे बंद कर दिया था, एक नाम को बंद कर रही है जो अब मौजूद नहीं है, और नया नाम जो भी defaultEnabled कहता है उसमें आता है।

आपके उपयोगकर्ता क्या विश्वास कर रहे हैं

SHA256SUMS उसी रिलीज़ में रहता है जो आर्टिफैक्ट के समान है, इसलिए यह साबित करता है कि बाइट्स वे हैं जिन्हें आपने प्रकाशित किया — न कि आप कौन हैं। जो कोई भी रिपोजिटरी को लिख सकता है वह दोनों फाइलों को लिख सकता है। आपके उपयोगकर्ताओं की सुरक्षा यह है कि डाइजेस्ट को तब पिन किया जाता है जब वे इंस्टॉल करते हैं, इसलिए जो आपने शिप किया वह उसके बाद उनके अंतर्गत नहीं बदल सकता। एक ऐसी रिपोजिटरी से प्रकाशित करें जिसके लिखने की पहुंच आप नियंत्रित करते हैं, और एक पैक रिलीज़ को एक पैकेज प्रकाशित करने की तरह व्यवहार करें।

लागू करने से पहले देखें

एक मैनिफेस्ट "effect": "observe" घोषित कर सकता है। वे नीतियां चलती हैं और उनके फैसले रिकॉर्ड किए जाते हैं और त्यागे जाते हैं — कुछ भी ब्लॉक नहीं होता है। यह वास्तविक ट्रैफ़िक के विरुद्ध एक नई नियम को मापने का तरीका है इससे पहले कि यह किसी के काम को बाधित कर सके।