Commit Graph
112 Commits
Author SHA1 Message Date
Dario Gabriel LipicarandClaude Opus 4.7 147fee72fa fix(tutorial): correct the no-validation negative test
Binding to a module that isn't loaded does NOT return a silent default — the
inner remote call fails and propagates, so `logoscore call ... sumVia
no_such_module` exits non-zero with RPC_FAILED. The step asserted "result":0
and let the non-zero exit fail the doctest step. Reframe it accurately: a bad
bind surfaces as an ordinary RPC failure (not a crash); absorb the exit with
`|| true`, capture stderr, and assert `"status":"error"`. Fix the prose and the
recap row to match.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-05 22:03:27 -03:00
Dario Gabriel Lipicar 04df00defc rerun 2026-06-05 21:30:08 -03:00
Dario Gabriel Lipicar 92981e5a44 rerun 2026-06-05 21:07:51 -03:00
Dario Gabriel LipicarandClaude Opus 4.7 1176ebf99e address review: self-valid interface header + accurate CI step
- Interface calculator.h includes logos_module_context.h so the logos_events
  token is defined (valid C++ standalone); prose updated accordingly.
- CI step name/comment now reflect the third tutorial leaf
  (tutorial-interface-dependencies), not just the UI chain + Composing Modules.
(Copilot review, PR #64.)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-05 12:50:21 -03:00
Dario Gabriel LipicarandClaude Opus 4.7 592683156a feat: dependency interfaces tutorial (executable)
Add tests/tutorial-interface-dependencies.test.yaml — an executable
logos-doctest tutorial that builds calc_via_interface: a module declaring a
`calculator` interface and binding it to calc_module at runtime. Covers typed
sync/async/event calls, the no-validation rule, and the cross-repo interface
form. Registered in run.sh and CI (run + generate). Documents
interface_dependencies + bind_<interface> in the developer guide.

Depends on logos-cpp-sdk#74, logos-module-builder#108, logos-plugin-qt#8 —
the published flakes must carry these before the tutorial runs green in CI
(same release gating as the Composing Modules tutorial).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-05 12:50:21 -03:00
Dario LipicarandClaude Opus 4.8 c84322d50c Add "Composing Modules" tutorial: calc_aggregator core module (#63)
* Add "Composing Modules" tutorial: calc_aggregator core module

New executable tutorial (tests/tutorial-composing-modules.test.yaml) that
builds calc_aggregator, a core (universal) module depending on calc_module,
showcasing every LogosModuleContext capability end-to-end via logoscore:

- modulePath / instanceId / instancePersistencePath getters
- durable per-instance persistence (a run counter that survives a restart),
  wired up in onContextReady()
- typed sync dependency calls (computeReport composes five calc_module calls
  into one map)
- typed async dependency call (fibonacciAsync with a callback)
- typed event subscription (onVersionReady on calc_module's versionReady)

Driven entirely from the logoscore daemon (no UI), mirroring Part 1's flow.

Also:
- README: list the tutorial and the calc_aggregator example module
- run.sh: build the module into outputs/ via --workdir (reusing the chain's
  calc_module, no rebuild) and clean its calc-data/ persistence dir
- ci.yml: run the new spec and verify its markdown generation
- outputs/: rendered tutorial + cleaned module source

The typed event subscriber requires logos-cpp-sdk PR #72 (LIDL parser: accept
reserved words as identifiers in name positions) so calc_module's versionReady
event sidecar round-trips; the doctest's event step stays red against published
deps until that lands and the module builder bumps its SDK pin.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* rerun

* Address review: warn about SDK dependency, make CI non-blocking

- prerequisites + event step: explicit toolchain note that the typed event
  subscriber needs logos-cpp-sdk#72 (calc_module's `version` event param
  collides with a reserved word), with a workaround (pin a fixed
  logos-module-builder, or skip the event step — everything else works on
  the released toolchain).
- ci.yml: split the Composing Modules spec out of the blocking UI-chain run
  into its own `continue-on-error: true` step so it doesn't block merges
  until #72 lands; a comment says to fold it back in once the dep ships.
- regenerate outputs/tutorial-composing-modules.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Re-enable Composing Modules as a blocking CI tutorial

logos-cpp-sdk#72 (LIDL parser: reserved words usable as identifiers) is merged
and logos-module-builder has bumped its SDK pin, so calc_module's versionReady
event sidecar now round-trips and the typed onVersionReady subscriber builds on
the published toolchain.

- ci.yml: fold the spec back into the blocking UI-chain run (and the published
  two-column report); drop the temporary continue-on-error step.
- spec: remove the now-obsolete toolchain prerequisite note and the event-step
  heads-up.
- regenerate outputs/tutorial-composing-modules.md.

Verified end-to-end against the published toolchain: 77/77 doctest steps pass,
including the build and the full event round-trip.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 09:46:55 -03:00
Dario LipicarandClaude Opus 4.8 9a75e048bf Document + verify event introspection in the tutorials (#62)
* Document + verify event introspection in the tutorials

Mirror the per-method documentation coverage for events. The
wrapping-c-library calc_module already emits a versionReady event; give
it a /// doc comment and assert the whole event pipeline end-to-end.

- wrapping-c-library: document the versionReady event; add a 'List
  events' step asserting 'lm events' shows the signature + both
  description lines; assert logoscore module-info's Events section.
- qml-ui-app: rename the basecamp ui_test driver call openMethods ->
  openInterface and assert the event's description renders on the
  Interface screen (basecamp-interface-docs.png).
- Regenerate both tutorial markdowns.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* rerun

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 17:41:23 -03:00
Dario LipicarandClaude Opus 4.8 d85b19c222 Demonstrate & validate method doc comments (wrapping-c-library) (#60)
* demonstrate and validate method doc comments (wrapping-c-library)

Add /// doc comments to the calc module's methods and assert they surface
via `lm methods` (human + --json) and `logoscore module-info`. Corrects the
stale lm output (provider-path introspection lists only impl methods, not
eventResponse/initLogos). Regenerated the tutorial markdown.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* showcase multi-line doc comments in the calc module

factorial uses two /// lines and libVersion uses a /** ... */ block; both
join into a single-line description. Assertions and rendered output updated
to match the joined text.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* preserve multi-line doc comments in the calc module tutorial

factorial/libVersion/libVersionNotify now keep their line breaks in lm and
logoscore module-info output; assertions and rendered markdown updated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* use consistent introspection terminology in the tutorial

Refer to "the module's method introspection" throughout instead of mixing the
internal getMethods()/getPluginMethods names. Addresses review feedback on #60.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* verify method docs on basecamp's Methods screen (Part 2 doctest)

Extends the Part 2 basecamp ui_test to open calc_module's Methods screen
(via CoreModulesView.openMethods) and assert each method's description
renders — including factorial's multi-line doc comment. Closes the GUI
surface of the per-method documentation feature in the automated doctest.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* rerun

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 12:39:51 -03:00
Iuri Matias 3e77b0b333 Merge pull request #58 from logos-co/support_release_param
support specifying --release param on run.sh
2026-06-03 10:46:39 -04:00
Iuri Matias 187e748fa8 support specifying --release param on run.sh
support specifying --release param on run.sh

fix perms
2026-06-03 10:45:47 -04:00
Iuri Matias d0885d52b0 Merge pull request #57 from logos-co/extract_docspec
Use extracted logos-docspec
2026-06-01 10:42:09 -04:00
Iuri Matias d2502ab05d use logos-docspec
use logos-docspec

fix perms
2026-05-30 10:23:00 -04:00
Iuri Matias f9a762a628 regenerate outputs 2026-05-29 17:28:54 -04:00
Iuri Matias 44e105f1b8 update test so it checks basecamp too 2026-05-29 17:23:02 -04:00
Iuri Matias 62c0f0ad3f update tutorials
update tutorials

fix test
2026-05-29 16:22:44 -04:00
Iuri Matias c6a22710d9 Merge pull request #56 from logos-co/screenshots
support screenshots
2026-05-29 16:04:41 -04:00
Iuri Matias 728e6ce8f3 include screenshots in reports 2026-05-29 15:55:18 -04:00
Iuri Matias a32ea8bce4 support screenshots 2026-05-29 15:43:10 -04:00
Iuri Matias d71b454c35 Merge pull request #54 from logos-co/runner_tui
Runner tui
2026-05-29 14:10:01 -04:00
Iuri Matias 3f91daa824 regenerate tutorials and outputs 2026-05-29 14:09:51 -04:00
Iuri Matias 3cae557ba1 fix issue with relying on old github tutorial example 2026-05-29 13:57:10 -04:00
Iuri Matias cc97dba1c6 fix issue with relying on old github tutorial example 2026-05-29 13:31:50 -04:00
Iuri Matias b5e30e6bb9 add --tui and --iterative option 2026-05-29 12:24:30 -04:00
Iuri Matias 6799f76650 Merge pull request #53 from logos-co/generate_outputs
support --output option ; generate both tutorials and example code fr…
2026-05-29 12:16:56 -04:00
Iuri Matias d17fce1360 support --output option ; generate both tutorials and example code from test specs
support --output option ; generate both tutorials and example code from test specs

delete old code files

add to readme instructions about run.sh

update run.sh to avoid logs and hardcoded paths
2026-05-29 11:50:37 -04:00
Iuri Matias 49de0c013f Merge pull request #50 from logos-co/executable_tutorials
add executable tutorials support; convert tutorial-wrapping-c-library to an executable tutorial
2026-05-29 10:36:35 -04:00
Iuri Matias c6595b3664 generate links to report on check 2026-05-29 10:24:45 -04:00
Iuri Matias c79fc6aaf2 add support for a --report option that creates an html with the markdown and executed commands side by side 2026-05-29 10:11:00 -04:00
Iuri Matias 943cbc7997 test ci fix 2026-05-29 09:21:36 -04:00
Iuri Matias 6416b538dc regenerate tutorials 2026-05-29 09:01:48 -04:00
Iuri Matias c7f10f0767 update ci 2026-05-29 09:01:48 -04:00
Iuri Matias eca8a2f65f add test.yaml for tutorial-cpp-ui-app
fix tests

add test.yaml for tutorial-cpp-ui-app
2026-05-29 09:01:42 -04:00
Iuri Matias 366d2d6f44 add requires directive; updated tests 2026-05-29 09:01:42 -04:00
Iuri Matias 33eb8c9728 support runnign headless and running tests 2026-05-29 09:01:42 -04:00
Iuri Matias 5397a4c1c7 add tests/tutorial-qml-ui-app.test.yaml; add support for ui tests
add tests/tutorial-qml-ui-app.test.yaml

add tests/tutorial-qml-ui-app.test.yaml; add support for ui tests
2026-05-29 09:01:37 -04:00
Iuri Matias 89ca784b0d support specifying a release 2026-05-28 14:20:59 -04:00
Iuri Matias b0b9ef8110 genreated tutorial-wrapping-c-library.md from tests/tutorial-wrapping-c-library.test.yaml 2026-05-28 10:38:04 -04:00
Iuri Matias c9641c2f98 add executable tutorials support; convert tutorial-wrapping-c-library to an executable tutorial
add executable tutorials support; convert tutorial-wrapping-c-library to an executable tutorial

add executable tutorials

update tutorial; generate steps

clarify workdir usage

update/fix tutorial
2026-05-28 10:37:22 -04:00
Iuri Matias a40d1a9616 Merge pull request #45 from logos-co/dev_boost_lib_wrapper
add tutorial using logos-dev-boost
2026-05-20 10:24:43 -04:00
Iuri Matias 080e541db5 add tutorial using logos-dev-boost
add tutorial using logos-dev-boost

update dev boost tutorial
2026-05-20 10:23:51 -04:00
Khushboo-dev-cpp 846e02caf5 Merge pull request #43 from logos-co/chore/updateUsageOfLogosDesignSystem
chore: update tutorial on guidance to use Logos design system, also update incorrect usage of DEV_QML_PATH
2026-05-01 14:35:23 +05:30
Khushboo Mehta 61085eec71 chore: update tutorial on guidance to use Logos design system, also update incorrect usage of DEV_QML_PATH 2026-05-01 14:19:20 +05:30
Khushboo-dev-cpp 519212ce2e Merge pull request #42 from logos-co/fix/DEVQMLPATH
feat: fix the ENV to be used to load changes in qml with the need to rebuild the whole app
2026-04-29 10:21:12 +02:00
Khushboo Mehta 48f59c5edf feat: fix the ENV to be used to load changes in qml with the need to rebuild the whole app. Use DEV_QML_PATH 2026-04-29 13:17:30 +05:30
Khushboo-dev-cpp f97a079116 Merge pull request #38 from logos-co/fix/addDepsForQMLViewing
Fix: Add deps for qml viewing
2026-04-21 14:07:00 +02:00
jzaki 33b7a655ed Add dep install step for qml viewing 2026-04-21 13:01:34 +01:00
jzaki eaf0f00c49 Autoformat md file 2026-04-21 12:58:32 +01:00
Khushboo-dev-cpp 8ab5796bbb Merge pull request #34 from logos-co/fix/missingUpdateInterfaceSection
fix: updating interface section is missing in tutorial-cpp-ui-app.md
2026-04-21 13:53:28 +02:00
Khushboo-dev-cpp 21bdd549e7 Merge pull request #37 from logos-co/jz/fix/logosWatchCallbacks
Fix: Logos `watch` callbacks
2026-04-21 13:38:13 +02:00
jzaki 48591dc0d7 fix callback function params 2026-04-21 10:46:34 +01:00