Summary
Add the CLI surface for composing a referenced (non-vendored) module into a codefly run graph, so a solution repo can be the composition root that references the host + runtime modules it needs.
Why
See codefly-dev/core#350 for the model-layer need and the motivating scenario (a lastlogin-* solution that references the saas host module + its own runtime module across repos, and self-registers at runtime). This issue is the operator-facing half.
What's needed (CLI surface)
- A
workspace.codefly.yaml module entry (or codefly add module --source <path|url>) that declares a module by reference — an out-of-repo path first, external git/OCI later — rather than a vendored modules/<name>/ copy. codefly run resolves and boots referenced modules alongside local ones (host + solution in one graph).codefly doctor / dry-run report the referenced module and flag an unresolved reference clearly.
Relationship to base-sync
This does not replace codefly sync module — vendoring a hash-pinned base is still correct for taking upstream base updates. This adds a second, lighter composition mode: reference a module you don't own instead of copying it, for the multi-repo solution-composition case.
Current understanding — TO BE CONFIRMED BY SPIKE
Appears unsupported today (add module has no source flag; base-sync is the only external-module path). A lodestar-side spike will verify before this is scoped as real work; if codefly run already resolves a path-referenced module, close this.
Links
Summary
Add the CLI surface for composing a referenced (non-vendored) module into a
codefly rungraph, so a solution repo can be the composition root that references the host + runtime modules it needs.Why
See codefly-dev/core#350 for the model-layer need and the motivating scenario (a
lastlogin-*solution that references the saas host module + its own runtime module across repos, and self-registers at runtime). This issue is the operator-facing half.What's needed (CLI surface)
workspace.codefly.yamlmodule entry (orcodefly add module --source <path|url>) that declares a module by reference — an out-of-repo path first, external git/OCI later — rather than a vendoredmodules/<name>/copy.codefly runresolves and boots referenced modules alongside local ones (host + solution in one graph).codefly doctor/ dry-run report the referenced module and flag an unresolved reference clearly.Relationship to base-sync
This does not replace
codefly sync module— vendoring a hash-pinned base is still correct for taking upstream base updates. This adds a second, lighter composition mode: reference a module you don't own instead of copying it, for the multi-repo solution-composition case.Current understanding — TO BE CONFIRMED BY SPIKE
Appears unsupported today (
add modulehas no source flag; base-sync is the only external-module path). A lodestar-side spike will verify before this is scoped as real work; ifcodefly runalready resolves a path-referenced module, close this.Links