feat: use logos-delivery-module journey#226
Conversation
|
|
Critical issue:
|
|
Hi team, are there any updates on the docs? I'm considering a pre-dogfooding but since this PR is in progress, I can hold off until there is an update on docs here and perhaps do a dogfooding instead. |
Hey @danisharora099! Thanks for looking into it. I was busy with some stuff and also waiting for some fixes to land into delivery module. |
51a98e8 to
c85b6bb
Compare
Issues to be resolved
I think the docpacket is good to go as is anyway, workarounds are mentioned. As soon as fixes are ready, I'll update the doc. So I'm opening the PR for review now. |
|
I'm currently dogfooding this doc. Share updates soon |
| // LogosModules* m_logos = nullptr; | ||
|
|
||
| void MyPlugin::initLogos(LogosAPI* api) { | ||
| m_logos = new LogosModules(api); |
There was a problem hiding this comment.
Do we need to store api as suggested here, or safe to not?
There was a problem hiding this comment.
Non-blocking review — used this journey end-to-end while wiring logos-delivery-module v0.1.1 into logos-co/eth-lez-atomic-swaps. Got us from zero to a working downstream module + UI pair on bin-macos-app Basecamp. Feedback below is tracked as separate issues so this PR doesn't need to carry it.
Things that worked straight off the doc:
- Step 2 config flow (
getAvailableConfigs→ pickdefault→createNode/start/stop) — no surprises. - Step 3 events 1–3 (
messageReceived,connectionStateChanged,subscribe(contentTopic)) — copy-paste intoswap_delivery_adapter.cppworked first try. messageSent/messagePropagated/messageErrorfired with the documented payload shape on every send path we exercised.
Doc-side follow-ups, consolidated into #270:
- A5 — late-subscriber drain pattern for topic-per-session content topics.
- A7 —
subscribe/unsubscribeidempotency contract. - B3 — macOS
XDG_RUNTIME_DIR104-bytesun_pathbudget; bites any<repo>/.basecamp/<name>/runlayout under/Users/<user>/Developer/…. - B4 —
--user-dirfor multi-instance testing; prefer overLOGOS_DATA_DIRbecause the latter appendsDevin non-portable builds. - C1 — named-module
qmldirover relativeimport "."; the relative form silently producesundefinedsingleton bindings inbin-macos-app. - C2 —
src = ./.in flake.nix only sees git-tracked files; newly createdqmldir/ generated resources have to begit add-ed or they silently omit from the LGX. - C3 — rebuild → reinstall LGX into every
--user-dir→ restart Basecamp; source rebuild alone isn't enough.
API-side, separate from this PR:
- logos-co/logos-delivery-module#36 — first-class peer count / structured
getStatus(). Today we parse the Prometheus text fromgetNodeInfo("Metrics"). - logos-co/logos-delivery-module#34 —
getSubscriptions()orsubscribeIfNot(). Today consumers mirror subscription state in-process. - logos-co/logos-delivery-module#35 — document the
subscribe/unsubscribeidempotency contract. Small Doxygen note; also covered doc-side in #270. - logos-co/logos-delivery-module#37 — publish binary-cache substitutes for
zerokit-*,liblogosdelivery-dev,logos-delivery_module-module-lib*on Logos Cachix. Currently 404 for aarch64-darwin + x86_64-linux + x86_64-darwin, so new contributors take the cold-build hit.
Packaging / host side, separate repos:
- logos-co/logos-basecamp#190 — module-proxy logs every
Q_INVOKABLEarg verbatim at INFO; needs opt-in redaction. - logos-co/logos-package-manager#12 + logos-co/logos-basecamp#191 —
LGPM_PORTABLE_BUILDvariant mismatch.lgpm installrejects the<host>variantbin-macos-appactually loads, andbin-macos-appsilently drops the<host>-devvariantlgpm installactually writes. No log line on the silent drop.
Fine to merge as-is.
|
Thanks @danisharora099 @jzaki for testing! I agree there're things that could be improved and I like the approach of having them listed as separate ticket. I'm planning to get a v0.1.2 version published soon with a bunch of fixes, I'll update this doc accordingly then, but I'd ideally avoid postponing this PR even more. @fryorcraken whose approval do I need to get it? |
The doc team will take over your PR and takes it from there. |
|
Cross-checked the doc against Real divergences (will trip up devs)
APIs the demo relies on but the doc doesn't mention
Config asymmetry
Aligned (no action needed, noting for completeness)
|
|
Thanks @fryorcraken Funny enough, I've noticed all exactly the same thing as you mention, but before seeing your comment 😄 https://github.com/logos-co/logos-delivery-demo now points to |
…ce known issue, sha permalinks
c85b6bb to
f6835b3
Compare
|
Thanks for this journey doc — it matches the integration path we followed in 1. Is compiling the whole module the only way to get the typed accessor? Step 2 notes that Is that intended? Is there (or could there be) a headers-only / interface-only output so a consumer can generate the typed wrapper without building the entire messaging/RLN stack? Our core never links delivery's 2. What's the intended way to build the delivery dependency in CI? Following Steps 2/4 verbatim, a cold CI build (GitHub Actions) compiles The doc's "Estimated time" note says build time "depends on your machine and cache state," which suggests a binary cache is assumed — but the doc names no substituter, and the worked example ( Is there a public nix/cachix substituter that hosts the prebuilt Happy to contribute a CI example back if that's useful. |
I'm afraid Logos Core doesn't provide such an option at the moment.
A public cache will be setup soon and can be used by downstream developers: But I believe this is out of scope of this journey. CI integration is the same for all modules, so I'd rather have a separate journey (written by Logos Core team I guess). And actually I'd love to use it myself, because at the moment we're just copy-pasting the CI around different modules. But in theory we could even publish a Github Action for Logos modules building cc @fryorcraken |
Closes #145