Update architecture docs for addon-first model #255

Closed
opened 2026-02-16 17:13:30 +00:00 by forbes · 0 comments
Owner

Summary

Update ARCHITECTURE.md and INTEGRATION_PLAN.md to reflect the addon-first architecture decisions:

  1. mods/ is pure Python, versioned independently via submodules with package.xml manifests
  2. src/Mod/Create/ hosts both the Python bootstrap loader AND any Kindred C++ features
  3. mods/sdk/ is the stable API contract between Create platform and addons
  4. C++ patches in src/Gui/ exist to provide extension points, not features
  5. Addon loading is manifest-driven with dependency resolution

Sections to update

ARCHITECTURE.md

  • Update bootstrap flow diagram to show manifest parsing and SDK loading
  • Add SDK to the source layout section
  • Document the addon lifecycle: manifest parse → compatibility check → dependency resolve → load → registry populate
  • Add src/Mod/Create/App/ and src/Mod/Create/Gui/ to the layout (C++ scaffold)

INTEGRATION_PLAN.md

  • Update Layer 3 description: no longer "does not contain C++ code" — it will host FlipPocket etc.
  • Update Layer 4 description: emphasize pure Python, SDK dependency, manifest requirement
  • Add Layer 2.5 or rename: SDK as the stable bridge between Layer 2 (FreeCAD API) and Layer 4 (addons)
  • Update phase status for C++ module scaffold

README

  • Update project structure tree to include mods/sdk/
  • Brief mention of addon SDK in the architecture section

Acceptance criteria

  • Architecture docs accurately describe the manifest-driven loading system
  • Layer diagram updated to show SDK's role
  • New developer reading the docs understands where to put Python addon code vs C++ feature code
  • Bootstrap flow diagram includes SDK load step

Dependencies

  • Depends on: #1, #2, #4 (needs the design to be finalized before documenting)
## Summary Update ARCHITECTURE.md and INTEGRATION_PLAN.md to reflect the addon-first architecture decisions: 1. `mods/` is pure Python, versioned independently via submodules with `package.xml` manifests 2. `src/Mod/Create/` hosts both the Python bootstrap loader AND any Kindred C++ features 3. `mods/sdk/` is the stable API contract between Create platform and addons 4. C++ patches in `src/Gui/` exist to provide extension points, not features 5. Addon loading is manifest-driven with dependency resolution ## Sections to update ### ARCHITECTURE.md - Update bootstrap flow diagram to show manifest parsing and SDK loading - Add SDK to the source layout section - Document the addon lifecycle: manifest parse → compatibility check → dependency resolve → load → registry populate - Add `src/Mod/Create/App/` and `src/Mod/Create/Gui/` to the layout (C++ scaffold) ### INTEGRATION_PLAN.md - Update Layer 3 description: no longer "does not contain C++ code" — it will host FlipPocket etc. - Update Layer 4 description: emphasize pure Python, SDK dependency, manifest requirement - Add Layer 2.5 or rename: SDK as the stable bridge between Layer 2 (FreeCAD API) and Layer 4 (addons) - Update phase status for C++ module scaffold ### README - Update project structure tree to include `mods/sdk/` - Brief mention of addon SDK in the architecture section ## Acceptance criteria - [ ] Architecture docs accurately describe the manifest-driven loading system - [ ] Layer diagram updated to show SDK's role - [ ] New developer reading the docs understands where to put Python addon code vs C++ feature code - [ ] Bootstrap flow diagram includes SDK load step ## Dependencies - **Depends on:** #1, #2, #4 (needs the design to be finalized before documenting)
forbes added the documentation label 2026-02-16 17:13:30 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kindred/create#255