Skip to content
Apothem
Runbook

Membuat adapter harness baru

Runbook untuk membuat dan menerbitkan adapter harness Apothem baru.

Gunakan runbook ini saat membuat adapter harness baru untuk disertakan secara bawaan di Apothem atau sebagai paket pihak ketiga.

Prasyarat

Langkah

1. Implementasikan adapter

Ikuti contoh Membuat adapter harness untuk mengimplementasikan HarnessAdapter bagi harness target.

Jika adapter menulis templat teks biasa (berkas yang bukan JSON atau YAML) dengan mode: write_text dan ownership_class: operator-owned, uninstall menghapus berkas tersebut hanya selama berkas itu merupakan salinan yang belum disunting dari templat yang dikirimkan Apothem. Ketika rilis berikutnya mengubah templat, tambahkan digest SHA-256 dari teks sebelumnya ke daftar earlier_digests milik entri manifest tersebut dalam perubahan yang sama, atau uninstall membiarkan di tempatnya setiap salinan belum disunting yang ditulis rilis sebelumnya. Ambil digest teks pada tag rilis terbaru dengan git show <tag>:<template path> | sha256sum; templat tidak boleh membawa token path ${...}. tests/unit/test_template_digests.py gagal ketika templat yang dikirimkan tidak diperhitungkan.

2. Tulis halaman dokumentasi

Buat site/content/docs/harnesses/<slug>.mdx yang mencakup:

  • Alur instalasi
  • Pemetaan profil ke konfigurasi native
  • Catatan kompatibilitas
  • Resep verifikasi
  • Resep pembaruan dan pencopotan
  • Permukaan gerbang konformitas
  • Tabel pemecahan masalah
  • Tabel kenop konfigurasi

3. Tulis pengujian

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

Cakupan pengujian minimum:

  • test_install_creates_expected_files
  • test_verify_passes_after_install
  • test_uninstall_removes_files

4. Verifikasi secara lokal

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

5. Kirim pull request

Buka PR dengan:

  • Implementasi adapter
  • Halaman dokumentasi di site/content/docs/harnesses/<slug>.mdx
  • Pengujian
  • Registrasi entry point di pyproject.toml, entri HARNESS_REGISTRY di src/apothem/lib/harness_registry_data.py (naikkan SUPPORTED_HARNESS_COUNT di sana), dan ID pada enum harnessId di src/apothem/schemas/profile.schema.json
  • Entri changelog

On this page