Skip to content

docs: LIDL-based dependency consumption + dependency_overrides - #65

Merged
dlipicar merged 2 commits into
masterfrom
feat/deps-via-lidl
Jun 8, 2026
Merged

docs: LIDL-based dependency consumption + dependency_overrides#65
dlipicar merged 2 commits into
masterfrom
feat/deps-via-lidl

Conversation

@dlipicar

@dlipicar dlipicar commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Docs: LIDL-based dependency consumption + dependency_overrides

Tutorial-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

  • Developer guide §9.2 — new "How dependencies are consumed — the LIDL contract" subsection: each module publishes a cheap packages.<system>.lidl contract; consuming a dependency generates modules().<dep> from that LIDL without building the dependency's plugin (only the standalone-app nix run/#run bundles/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 a lidl output.
  • dependency_overrides — documented in §9.2 and added to the metadata field table ({ file, input?, impl_class? } keyed by dep name).
  • Composing Modules tutorial — corrected the prose that said the builder "fetches calc_module's headers and event metadata"; it now reads calc_module's published LIDL contract and does not build calc_module's plugin at the aggregator build step. (Prose-only; the executable steps/assertions are unchanged and still pass.)

Notes

  • The metadata field-table anchor and §9.2 cross-links resolve within the guide.
  • Like the dependency-interfaces tutorial, the described behavior is live once the three code PRs above ship; the composing tutorial remains green in the meantime (the change is cosmetic prose).

🤖 Generated with Claude Code

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>
Copilot AI review requested due to automatic review settings June 8, 2026 14:22

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_overrides in the metadata.json field 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.

Comment thread tests/tutorial-composing-modules.test.yaml
Comment thread logos-developer-guide.md
@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown

📊 Tutorial execution report

Rendered tutorial alongside the commands actually run and their output (updated each run, commit 0f10ddd):

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>
@dlipicar

dlipicar commented Jun 8, 2026

Copy link
Copy Markdown
Contributor Author

Addressed the Copilot review (cebe0aa):

  • Regenerated outputs/tutorial-composing-modules.md so the committed markdown matches the updated YAML prose (it still had the old "fetch headers" / "exported interface" wording). Verified byte-identical to a fresh doctest generate.
  • §9.2 ↔ §8.2 reconciliation: added a note that the LIDL-contract dependency wrapper is generated by the same logos-cpp-generator from §8.2, just driven by the dependency's .lidl/.h contract (the same form interface_dependencies uses) rather than by inspecting a compiled plugin — the latter being the manual/standalone path. So the two sections no longer read as conflicting mechanisms.

🤖 Generated with Claude Code

@dlipicar
dlipicar merged commit c2cd6f0 into master Jun 8, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants