docs: LIDL-based dependency consumption + dependency_overrides - #65
Conversation
Tutorial-sync for "concrete dependencies via LIDL": - Developer guide §9.2: explain that each module publishes a cheap LIDL interface contract (packages.<sys>.lidl) and that consuming a dependency generates modules().<dep> from that LIDL WITHOUT building the dependency's plugin — only the standalone-app run (#run) bundles/builds deps. Notes the cross-language pipeline (Rust -> LIDL -> C++) and the transitional fallback for deps that don't yet expose a `lidl` output. - Document the new `dependency_overrides` metadata field (§9.2 + field table). - Composing Modules tutorial: correct the prose that said the builder "fetches calc_module's headers" — it now reads calc_module's published LIDL contract and does not build calc_module's plugin at the aggregator build step. Depends on logos-cpp-sdk#77, logos-plugin-qt#9, logos-module-builder#110 (the described behavior ships with those). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Documentation sync for the new “consume dependencies via published LIDL contract” flow, plus documentation for the new dependency_overrides metadata field. This fits into the repo’s tutorial + developer-guide docs by updating the dependency-consumption explanation while keeping the tutorial’s executable steps unchanged.
Changes:
- Update the Composing Modules tutorial prose to describe generating
modules().<dep>from a dependency’s published LIDL contract (without building the dependency at aggregator build time). - Document
dependency_overridesin themetadata.jsonfield reference and in §9.2, including an example override. - Add a new §9.2 subsection explaining the LIDL contract pipeline, cross-language implications, and a transitional fallback.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| tests/tutorial-composing-modules.test.yaml | Updates tutorial prose about how dependencies are consumed/generated. |
| logos-developer-guide.md | Adds dependency_overrides to the field table and documents LIDL-based dependency consumption in §9.2. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
📊 Tutorial execution reportRendered tutorial alongside the commands actually run and their output (updated each run, commit Pages can take a minute to update after the run finishes. |
- Regenerate outputs/tutorial-composing-modules.md so the committed markdown matches the updated YAML prose (it had stale "fetch headers" / "exported interface" wording). Verified identical to `doctest generate`. - Developer guide §9.2: add a note tying the LIDL-contract dependency wrapper generation to §8.2 — it's the same logos-cpp-generator driven by the dep's LIDL/.h contract (like interface_dependencies) rather than inspecting a compiled plugin (the manual/standalone path), so the two sections no longer read as conflicting mechanisms. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Addressed the Copilot review (cebe0aa):
🤖 Generated with Claude Code |
Docs: LIDL-based dependency consumption +
dependency_overridesTutorial-sync for the "consume concrete dependencies via LIDL" feature (see logos-co/logos-cpp-sdk#77, logos-co/logos-plugin-qt#9, logos-co/logos-module-builder#110). The user-facing dependency API is unchanged (
modules().<dep>still works the same), so this is a documentation update rather than a new executable tutorial.This PR
packages.<system>.lidlcontract; consuming a dependency generatesmodules().<dep>from that LIDL without building the dependency's plugin (only the standalone-appnix run/#runbundles/builds deps). Documents the cross-language pipeline (source → LIDL → C++, e.g.Rust → LIDL → C++) and the transitional fallback for deps that don't yet expose alidloutput.dependency_overrides— documented in §9.2 and added to the metadata field table ({ file, input?, impl_class? }keyed by dep name).calc_module's headers and event metadata"; it now readscalc_module's published LIDL contract and does not buildcalc_module's plugin at the aggregator build step. (Prose-only; the executable steps/assertions are unchanged and still pass.)Notes
🤖 Generated with Claude Code