feat(sdk): addon registry wrappers in kindred_sdk #384

Open
opened 2026-03-03 23:02:28 +00:00 by forbes · 0 comments
Owner

Summary

Wrap FreeCAD.KindredAddons (AddonRegistry) with proper kindred_sdk functions so addons don't access the raw registry directly. Add missing addon_version() query.

Current state (PARTIAL)

AddonRegistry on FreeCAD.KindredAddons has is_loaded(name), all(), loaded(), failed(), skipped(). Missing:

  • addon_version(name) — version is stored on manifest but not queryable by name
  • load_time_ms not exposed via public method
  • No kindred_sdk wrapper — addons must access FreeCAD.KindredAddons directly

Proposed API

import kindred_sdk as sdk

sdk.is_addon_loaded("gears")       # -> True
sdk.addon_version("gears")         # -> "0.1.0" or None
sdk.loaded_addons()                 # -> ["sdk", "solver", "gears", "datums", "silo"]

Implementation notes

  • New module kindred_sdk/registry.py
  • Thin wrappers around FreeCAD.KindredAddons methods
  • Add addon_version(name) by looking up manifest version via get(name).version
  • Export from kindred_sdk.__init__

Roadmap

v0.2.0 — SDK Core

## Summary Wrap `FreeCAD.KindredAddons` (AddonRegistry) with proper kindred_sdk functions so addons don't access the raw registry directly. Add missing `addon_version()` query. ## Current state (PARTIAL) `AddonRegistry` on `FreeCAD.KindredAddons` has `is_loaded(name)`, `all()`, `loaded()`, `failed()`, `skipped()`. Missing: - `addon_version(name)` — version is stored on manifest but not queryable by name - `load_time_ms` not exposed via public method - No `kindred_sdk` wrapper — addons must access `FreeCAD.KindredAddons` directly ## Proposed API ```python import kindred_sdk as sdk sdk.is_addon_loaded("gears") # -> True sdk.addon_version("gears") # -> "0.1.0" or None sdk.loaded_addons() # -> ["sdk", "solver", "gears", "datums", "silo"] ``` ## Implementation notes - New module `kindred_sdk/registry.py` - Thin wrappers around `FreeCAD.KindredAddons` methods - Add `addon_version(name)` by looking up manifest version via `get(name).version` - Export from `kindred_sdk.__init__` ## Roadmap v0.2.0 — SDK Core
forbes added the enhancement label 2026-03-03 23:02:28 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kindred/create#384