Create daw-module-manager as standalone submodule #1

Closed
opened 2026-04-13 12:34:59 +02:00 by michael · 1 comment
Owner

Goal

Extract module management from steurjan core into a standalone repo
DAW/daw-module-manager that can be used by all DAW host projects as a
submodule.

Background

Currently src/core/modules.lua in steurjan handles module management.
openbookregister needs the same functionality to install daw-modul-storage-pg.
Building it project-specific again would create duplication.

Scope

Core functionality:

  • Load and cache registry index (DAW/daw-module-registry-index)
  • Verify index signature (minisign)
  • Check system dependencies (including one-of format)
  • Install module from .stpkg (unpack, verify sha256)
  • List installed modules
  • Check installed vs available versions

Out of scope (stays in host project):

  • Module activation (tenant.yaml)
  • Project-specific module registry checks

Interface (proposed)

local mm = require("daw.module-manager")

mm.list()                    -- installed modules
mm.install("storage-pg")     -- install from registry
mm.check("storage-pg")       -- check dependencies

Integration

Host projects embed as git submodule:
src/lib/daw-module-manager/

CLI via host project binary:
steurjan module install storage-pg
openbookregister module install storage-pg

Refs

  • DAW/tool-gitea-workflow#31 -- one-of dependency format
  • DAW/daw-modul-storage-pg -- first consumer in openbookregister
  • DAW/steurjan src/core/modules.lua -- existing implementation to extract
## Goal Extract module management from steurjan core into a standalone repo `DAW/daw-module-manager` that can be used by all DAW host projects as a submodule. ## Background Currently `src/core/modules.lua` in steurjan handles module management. openbookregister needs the same functionality to install `daw-modul-storage-pg`. Building it project-specific again would create duplication. ## Scope Core functionality: - [ ] Load and cache registry index (DAW/daw-module-registry-index) - [ ] Verify index signature (minisign) - [ ] Check system dependencies (including one-of format) - [ ] Install module from .stpkg (unpack, verify sha256) - [ ] List installed modules - [ ] Check installed vs available versions Out of scope (stays in host project): - Module activation (tenant.yaml) - Project-specific module registry checks ## Interface (proposed) ```lua local mm = require("daw.module-manager") mm.list() -- installed modules mm.install("storage-pg") -- install from registry mm.check("storage-pg") -- check dependencies ``` ## Integration Host projects embed as git submodule: src/lib/daw-module-manager/ CLI via host project binary: steurjan module install storage-pg openbookregister module install storage-pg ## Refs - DAW/tool-gitea-workflow#31 -- one-of dependency format - DAW/daw-modul-storage-pg -- first consumer in openbookregister - DAW/steurjan src/core/modules.lua -- existing implementation to extract
Author
Owner

Done

  • daw-module-manager extracted from DAW/steurjan src/core/module_{index,install,semver,verify}
  • Integrated in DAW/steurjan as git submodule at src/lib/daw-module-manager
  • one-of dependency handling implemented (DAW/steurjan#139 resolved)
  • 28 tests passing (semver, deps)
## Done - daw-module-manager extracted from DAW/steurjan src/core/module_{index,install,semver,verify} - Integrated in DAW/steurjan as git submodule at src/lib/daw-module-manager - one-of dependency handling implemented (DAW/steurjan#139 resolved) - 28 tests passing (semver, deps)
michael 2026-04-13 17:34:41 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
DAW/daw-module-manager#1
No description provided.