Skip to content
Apothem
रनबुक

नया टूल अडैप्टर लिखना

नया Apothem टूल अडैप्टर लिखने और प्रकाशित करने के लिए रनबुक।

जब आप Apothem में फ़र्स्ट-पार्टी समावेश के लिए या किसी थर्ड-पार्टी पैकेज के रूप में नया टूल अडैप्टर लिख रहे हों, तब इस रनबुक का उपयोग करें।

पूर्वापेक्षाएँ

चरण

1. अडैप्टर लागू करें

लक्ष्य टूल के लिए HarnessAdapter लागू करने हेतु टूल अडैप्टर लिखना उदाहरण का अनुसरण करें।

यदि अडैप्टर mode: write_text और ownership_class: operator-owned के साथ कोई सादा-पाठ टेम्पलेट (ऐसी फ़ाइल जो JSON या YAML नहीं है) लिखता है, तो uninstall फ़ाइल को केवल तभी हटाता है जब वह Apothem द्वारा शिप किए गए किसी टेम्पलेट की असंपादित प्रति हो। जब कोई बाद की रिलीज़ टेम्पलेट बदलती है, तो उसी बदलाव में पिछले पाठ का SHA-256 डाइजेस्ट उस मैनिफ़ेस्ट प्रविष्टि की earlier_digests सूची में जोड़ें, अन्यथा uninstall पिछली रिलीज़ द्वारा लिखी गई हर असंपादित प्रति को यथास्थान छोड़ देता है। नवीनतम रिलीज़ टैग पर पाठ का डाइजेस्ट git show <tag>:<template path> | sha256sum से लें; टेम्पलेट में कोई ${...} पथ टोकन नहीं होना चाहिए। जब कोई शिप किया गया टेम्पलेट हिसाब में नहीं होता, तो tests/unit/test_template_digests.py विफल हो जाता है।

2. दस्तावेज़ पृष्ठ लिखें

site/content/docs/harnesses/<slug>.mdx बनाएँ, जो निम्न को कवर करता हो:

  • इंस्टॉलेशन प्रवाह
  • प्रोफ़ाइल-से-नेटिव-कॉन्फ़िग मैपिंग
  • संगतता संबंधी सावधानियाँ
  • सत्यापन विधियाँ
  • अपडेट और अनइंस्टॉल विधियाँ
  • अनुरूपता गेट सतह
  • समस्या-निवारण तालिका
  • कॉन्फ़िगरेशन नॉब तालिका

3. परीक्षण लिखें

tests/packaging/test_<slug>_adapter.py
tests/unit/test_<slug>_adapter.py

न्यूनतम परीक्षण कवरेज:

  • test_install_creates_expected_files
  • test_verify_passes_after_install
  • test_uninstall_removes_files

4. स्थानीय रूप से सत्यापित करें

apothem install --harness <slug>
apothem verify --harness <slug>
python -m apothem.conformity.gate --all .

5. पुल रिक्वेस्ट सबमिट करें

निम्न के साथ एक PR खोलें:

  • अडैप्टर कार्यान्वयन
  • site/content/docs/harnesses/<slug>.mdx पर दस्तावेज़ पृष्ठ
  • टेस्ट
  • pyproject.toml में एंट्री-पॉइंट पंजीकरण, src/apothem/lib/harness_registry_data.py में एक HARNESS_REGISTRY प्रविष्टि (वहाँ SUPPORTED_HARNESS_COUNT बढ़ाएँ), और src/apothem/schemas/profile.schema.json के harnessId enum में ID
  • चेंजलॉग प्रविष्टि

On this page