feat(addon-system): add <kindred> package.xml extensions and schema docs #257

Merged
forbes merged 1 commits from feat/package-xml-schema into main 2026-02-17 13:15:50 +00:00
Owner

Summary

Adds <kindred> extension elements to both addon package.xml files and documents the schema. This activates the manifest-driven loader's version checking and priority-based ordering (replacing the legacy fallback).

Depends on PR #256 (manifest-driven loader).
Closes #252

Changes

  • mods/ztools/package.xml — added <kindred> element: min_create_version=0.1.0, load_priority=50, pure_python=true, contexts: partdesign.body and partdesign.feature (inject)
  • mods/silo/freecad/package.xml — added <kindred> element: min_create_version=0.1.0, load_priority=60, pure_python=true, contexts: * (overlay)
  • src/Mod/Create/addon_loader.py — fixed topological sort to use level-by-level processing with (priority, name) sorting within each level. static_order() did not guarantee deterministic ordering for independent nodes.
  • docs/src/development/package-xml-schema.md (new) — full field reference table, schema example, priority ranges, context actions, backward compatibility notes
  • docs/src/SUMMARY.md — added link to new page under Development section

Deferred to future issues

Testing

  • Both addons parsed with has_kindred=True
  • Load order correct: ZTools (priority 50) before Kindred Silo (priority 60)
  • Version gating works: addons requiring higher Create version are skipped
  • Backward compatible: addons without <kindred> still load with defaults
## Summary Adds `<kindred>` extension elements to both addon `package.xml` files and documents the schema. This activates the manifest-driven loader's version checking and priority-based ordering (replacing the legacy fallback). Depends on PR #256 (manifest-driven loader). Closes #252 ## Changes - **`mods/ztools/package.xml`** — added `<kindred>` element: `min_create_version=0.1.0`, `load_priority=50`, `pure_python=true`, contexts: `partdesign.body` and `partdesign.feature` (inject) - **`mods/silo/freecad/package.xml`** — added `<kindred>` element: `min_create_version=0.1.0`, `load_priority=60`, `pure_python=true`, contexts: `*` (overlay) - **`src/Mod/Create/addon_loader.py`** — fixed topological sort to use level-by-level processing with `(priority, name)` sorting within each level. `static_order()` did not guarantee deterministic ordering for independent nodes. - **`docs/src/development/package-xml-schema.md`** (new) — full field reference table, schema example, priority ranges, context actions, backward compatibility notes - **`docs/src/SUMMARY.md`** — added link to new page under Development section ## Deferred to future issues - `sdk_version` and `dependencies` fields — SDK does not exist yet (#249) - Validation function in `kindred_sdk.manifest` — deferred to #249 ## Testing - Both addons parsed with `has_kindred=True` - Load order correct: ZTools (priority 50) before Kindred Silo (priority 60) - Version gating works: addons requiring higher Create version are skipped - Backward compatible: addons without `<kindred>` still load with defaults
forbes added 1 commit 2026-02-16 20:24:25 +00:00
feat(addon-system): add <kindred> package.xml extensions and schema docs
Some checks failed
Build and Test / build (pull_request) Failing after 2m59s
98d1877472
Add <kindred> elements to ztools (priority=50) and silo (priority=60)
package.xml files declaring min_create_version, load_priority,
pure_python, and context metadata.

Fix addon_loader.py topological sort to use level-by-level processing
with (priority, name) sorting within each level, replacing
static_order() which did not guarantee deterministic ordering.

Add docs/src/development/package-xml-schema.md documenting the full
field reference, schema example, and backward compatibility notes.

Closes #252
forbes merged commit 34964066a0 into main 2026-02-17 13:15:50 +00:00
forbes deleted branch feat/package-xml-schema 2026-02-17 13:15:50 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kindred/create#257