mirror of
https://github.com/logos-co/logos-workspace.git
synced 2026-08-27 10:41:16 +00:00
* chore: pin the handshake-surface landing (4 repos) logos-protocol 362b03fb -> c1b0a0f5 (#42 token-only handshake surface published before a module's initializer, + trust-anchor fallback, owner-thread marshal, negative cache) logos-qt-sdk af767b7e -> 60d7a083 (#28 publish before init; seed the trust anchor before it goes live) logos-module-builder 5a400e30 -> e9c8da45 (#189 carries both to every module) logos-capability-module 390486e2 -> f18b9b15 (#22 3s bound on the token push) Fixes the ui-host startup wedge: capability_module had to acquire a target's replica to push it a token, while the target was itself blocked in a synchronous requestModule back to capability. ui-host then missed the standalone app's hard 10s readiness deadline and was SIGKILLed before either 20s acquire expired. Measured on a native Linux host against the real wallet-ui app bundle: sequential, unloaded 5/20 -> 0/20 p = 0.024 interleaved (arm+order) 5/46 -> 0/46 p = 0.028 protocol+qt-sdk ALONE 6/25 -> 0/25 p = 0.011 pooled, exact stratified 10/66 -> 0/66 p = 0.00066 plus the full 26-action wallet-ui e2e doctest. Honest scope: greatly reduces, not eliminates -- 0/66 admits a residual up to ~4.4%, on one host. CPU contention SUPPRESSED the race (baseline 0/14 loaded), so "constrained CI hardware is worse" has no established sign; the 2-core runner where this was first reported is untested. Both the lock and the submodule gitlinks are bumped: the doctest jobs pin each submodule to its gitlink, so a lock-only bump would leave them testing the old code. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * chore: pin logos-cpp-sdk to 198f031 alongside qt-sdk The first push failed six doctest jobs with qt-generator/lidl_gen_qt_consumer.cpp: error: 'fieldIsOptional' was not declared qt-generator/lidl_gen_qt_consumer.cpp: error: 'optionalValueType' was not declared qt-sdk 60d7a083 carries 3604188 ("optional PARAMETERS on every Qt surface"), whose generator needs those helpers from logos-cpp-sdk's LIDL frontend. The workspace pinned cpp-sdk 3d322bd3 -- an ANCESTOR of the 198f031 that qt-sdk itself pins -- and forces it into qt-sdk via `follows`, so the generator could not compile. Nothing to do with the handshake surface: this re-pin is simply the first change to move qt-sdk past that commit. Pinned to 198f031 rather than cpp-sdk master: that is exactly the revision qt-sdk 60d7a083 was built and tested against, so it is the narrowest fix. fieldIsOptional is present in 5 files there and in 0 at 3d322bd3. Verified locally: `nix build .#logos-capability-module` succeeds with zero generator symbol errors. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * chore: bump the logos-lidl submodule to 35f33d8 (matches cpp-sdk 198f031) The cpp-sdk bump traded one skew for its mirror image. CI then failed with share/lidl-frontend/lidl_compat.h: error: 'paramValueType' was not declared share/lidl-frontend/lidl_compat.h: error: 'fieldValueType' was not declared i.e. cpp-sdk 198f031's LIDL frontend needs a NEWER logos-lidl than it was getting. Why it only bites in CI: the doctest jobs run `--override-input logos-module-builder/logos-cpp-sdk <ws pin>`, and CI is on install-nix-action@v27 = Nix 2.22, which is BELOW the 2.26 threshold where an overridden input starts being resolved from its own lock. So cpp-sdk's own logos-lidl pin is ignored and lidl comes from the parent's stale lock. Locally (Nix 2.34.6) the child lock is honoured, which is exactly why the same build passed here and failed there. logos-lidl is not a flake input of the workspace, but it IS a submodule, and the --workspace-pins map is built from submodule gitlinks -- so bumping the gitlink is what puts lidl into the override set. 8c95d4f (2026-06-16) -> 35f33d8 (2026-07-31, lidl master tip, and the rev both cpp-sdk 198f031 and qt-sdk 60d7a083 pin). Strictly an upgrade; 8c95d4f is an ancestor. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * chore: pin logos-cpp-sdk to dfd46282, not 198f031 Correcting my own earlier pin. I chose 198f031 to "match exactly what qt-sdk was tested against, the narrowest fix". That rev is the one with a gap: it has fieldIsOptional (which fixed the first failure) but PREDATES f3369fa, the commit that added logos_async_result.h. So it traded one skew for another. That produced the basecamp failure, whose full include chain -- visible only in a local repro, CI truncated 22k lines -- is src/PackageCoordinator.cpp:22 -> src/generated_code/logos_sdk.h:6 -> src/generated_code/package_downloader_api.h:14 -> #include "logos_async_result.h" <- absent at 198f031 rev fieldIsOptional logos_async_result.h 3d322bd3 no no (the workspace's original; basecamp built) 198f031 YES NO (my pin; basecamp broke) dfd46282 YES YES (cpp-sdk master, and what module-builder pins) Verified by controlled test, cpp-sdk the ONLY variable: basecamp d68173f7 with CI's exact 22 workspace-pin overrides fails on 198f031 and builds (EXIT=0, zero logos_async_result hits) on dfd46282. Bumping basecamp instead does NOT help -- basecamp master fails identically on 198f031, so this was never staleness. Also confirmed dfd46282 does not reintroduce the generator failure: a forced `nix build .#logos-qt-sdk--logos-qt-generator --rebuild` compiles it from source, 7 CXX steps, zero symbol errors. (An earlier pre-flight failed against dfd46282 with 'lidlCheckRecords undeclared'; that was an artifact of forcing qt-sdk#28's UNMERGED head, based on the older cde7d42, into module-builder -- not a cpp-sdk problem.) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
530 lines
26 KiB
Nix
530 lines
26 KiB
Nix
{
|
|
description = "Logos Workspace — unified multi-repo development environment";
|
|
|
|
# ── Inputs ─────────────────────────────────────────────────────────────────
|
|
#
|
|
# The bulk of this block is auto-generated by `ws sync-graph` from each
|
|
# repo's flake.lock. Nix's flake parser requires `inputs` to be a literal
|
|
# attrset (no `let`, `//`, `import`, or `builtins.mapAttrs` allowed), so
|
|
# the per-repo follows can't be computed at evaluation time — they must
|
|
# be written into this file directly.
|
|
#
|
|
# To regenerate after editing any repo's flake inputs:
|
|
#
|
|
# ws sync-graph
|
|
#
|
|
# URL overrides (logos-blockchain org, tutorial sub-flakes) and manual
|
|
# follows overrides live in `scripts/ws` near the top of `cmd_sync_graph`.
|
|
|
|
inputs = {
|
|
# ── Manual: shared Nix infrastructure ──────────────────────────────────
|
|
#
|
|
# logos-nix pins the workspace's nixpkgs (and therefore Qt). Overriding
|
|
# logos-nix here propagates to ALL downstream consumers via the auto-
|
|
# generated follows below.
|
|
logos-nix.url = "github:logos-co/logos-nix";
|
|
nixpkgs.follows = "logos-nix/nixpkgs";
|
|
# Pinned explicitly because logos-blockchain-module's upstream lock
|
|
# currently references an invalid commit-ish via /0.2.1.
|
|
logos-blockchain.url = "github:logos-blockchain/logos-blockchain/88941ff33f2e028591b9d0ed2549a328d54f0cfa";
|
|
|
|
# BEGIN AUTO-INPUTS — generated by `ws sync-graph`, do not edit by hand
|
|
logos-protocol = {
|
|
url = "github:logos-co/logos-protocol/c1b0a0f554cd5197a974db7d6f805fc87ff07457";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-qt-sdk = {
|
|
url = "github:logos-co/logos-qt-sdk/60d7a08313d66cae129faa104749c562106b4c72";
|
|
inputs.logos-cpp-sdk.follows = "logos-cpp-sdk";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.logos-protocol.follows = "logos-protocol";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-cpp-sdk = {
|
|
url = "github:logos-co/logos-cpp-sdk/dfd46282a7b7d48075f890ace3a39a128e5b2576";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.logos-protocol.follows = "logos-protocol";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-view-module-runtime = {
|
|
url = "github:logos-co/logos-view-module-runtime/049978f144aa53d8b98ea2c0b164b0554c88c856";
|
|
inputs.logos-cpp-sdk.follows = "logos-cpp-sdk";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.logos-protocol.follows = "logos-protocol";
|
|
inputs.logos-qt-sdk.follows = "logos-qt-sdk";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-module-client = {
|
|
url = "github:logos-co/logos-module-client/351f282055659a9d8ccf0e6411c2683256906958";
|
|
inputs.logos-cpp-sdk.follows = "logos-cpp-sdk";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.logos-protocol.follows = "logos-protocol";
|
|
inputs.logos-qt-sdk.follows = "logos-qt-sdk";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-module = {
|
|
url = "github:logos-co/logos-module/2ec64c4a65f8966b5137cdba3a19a6498ce17b6d";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-liblogos = {
|
|
url = "github:logos-co/logos-liblogos/be221c5749036343909fa0b109edecfb4d329fdd";
|
|
inputs.logos-capability-module.follows = "logos-capability-module";
|
|
inputs.logos-cpp-sdk.follows = "logos-cpp-sdk";
|
|
inputs.logos-module.follows = "logos-module";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.logos-package-manager.follows = "logos-package-manager";
|
|
inputs.logos-protocol.follows = "logos-protocol";
|
|
inputs.logos-qt-sdk.follows = "logos-qt-sdk";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.process-stats.follows = "process-stats";
|
|
};
|
|
logos-logoscore-cli = {
|
|
url = "github:logos-co/logos-logoscore-cli/f4753ddc19dd9989f4a701d19d9d3c5d5934a405";
|
|
inputs.logos-capability-module.follows = "logos-capability-module";
|
|
inputs.logos-cpp-sdk.follows = "logos-cpp-sdk";
|
|
inputs.logos-liblogos.follows = "logos-liblogos";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.logos-protocol.follows = "logos-protocol";
|
|
inputs.logos-qt-sdk.follows = "logos-qt-sdk";
|
|
inputs.logos-test-modules.follows = "logos-test-modules";
|
|
inputs.nix-bundle-appimage.follows = "nix-bundle-appimage";
|
|
inputs.nix-bundle-dir.follows = "nix-bundle-dir";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-capability-module = {
|
|
url = "github:logos-co/logos-capability-module/f18b9b15683af260c47a4d076183af13b34cd4e7";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
};
|
|
logos-package = {
|
|
url = "github:logos-co/logos-package/8d4236f9453bce8b44dfd2f85a5006af993b7ed2";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-plugin-qt = {
|
|
url = "github:logos-co/logos-plugin-qt/f33f264abb6d628cc78cf926f9f33c7cc8252151";
|
|
inputs.logos-module.follows = "logos-module";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-module-builder = {
|
|
url = "github:logos-co/logos-module-builder/e9c8da45d3cf84e4207ba22d22e23ccccb1cb59a";
|
|
inputs.logos-cpp-sdk.follows = "logos-cpp-sdk";
|
|
inputs.logos-design-system.follows = "logos-design-system";
|
|
inputs.logos-module.follows = "logos-module";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.logos-plugin-core.follows = "logos-plugin-qt";
|
|
inputs.logos-plugin-qt.follows = "logos-plugin-qt";
|
|
inputs.logos-protocol.follows = "logos-protocol";
|
|
inputs.logos-qt-sdk.follows = "logos-qt-sdk";
|
|
inputs.logos-rust-sdk.follows = "logos-rust-sdk";
|
|
inputs.logos-standalone-app.follows = "logos-standalone-app";
|
|
inputs.logos-view-module-runtime.follows = "logos-view-module-runtime";
|
|
inputs.nix-bundle-lgx.follows = "nix-bundle-lgx";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
nix-bundle-dir = {
|
|
url = "github:logos-co/nix-bundle-dir/4f72d7a64dd83979d771c17161f23ebc9dbedb40";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
nix-bundle-lgx = {
|
|
url = "github:logos-co/nix-bundle-lgx/b49074a8e1157832002b11d3d254c1aaa4b96680";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.logos-package.follows = "logos-package";
|
|
inputs.nix-bundle-dir.follows = "nix-bundle-dir";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
nix-bundle-appimage = {
|
|
url = "github:logos-co/nix-bundle-appimage/8fcc56b5afcc313ca917cf3487be082ae2f0184c";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.nix-bundle-dir.follows = "nix-bundle-dir";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
nix-bundle-macos-app = {
|
|
url = "github:logos-co/nix-bundle-macos-app/d6b0cc518e599ab7a52258bf3e1f8123c8a01d31";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.nix-bundle-dir.follows = "nix-bundle-dir";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-standalone-app = {
|
|
url = "github:logos-co/logos-standalone-app/1aa90d083c03679de1e2f0291adb818032d044fc";
|
|
inputs.logos-capability-module.follows = "logos-capability-module";
|
|
inputs.logos-cpp-sdk.follows = "logos-cpp-sdk";
|
|
inputs.logos-design-system.follows = "logos-design-system";
|
|
inputs.logos-liblogos.follows = "logos-liblogos";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.logos-protocol.follows = "logos-protocol";
|
|
inputs.logos-qt-sdk.follows = "logos-qt-sdk";
|
|
inputs.logos-view-module-runtime.follows = "logos-view-module-runtime";
|
|
inputs.nix-bundle-lgx.follows = "nix-bundle-lgx";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-basecamp = {
|
|
url = "github:logos-co/logos-basecamp/d68173f73ca500c4eec422f2059585735943b88d";
|
|
inputs.logos-capability-module.follows = "logos-capability-module";
|
|
inputs.logos-cpp-sdk.follows = "logos-cpp-sdk";
|
|
inputs.logos-design-system.follows = "logos-design-system";
|
|
inputs.logos-liblogos.follows = "logos-liblogos";
|
|
inputs.logos-module.follows = "logos-module";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.logos-package.follows = "logos-package";
|
|
inputs.logos-package-downloader-module.follows = "logos-package-downloader-module";
|
|
inputs.logos-package-manager.follows = "logos-package-manager";
|
|
inputs.logos-package-manager-module.follows = "logos-package-manager-module";
|
|
inputs.logos-package-manager-ui.follows = "logos-package-manager-ui";
|
|
inputs.logos-protocol.follows = "logos-protocol";
|
|
inputs.logos-qt-sdk.follows = "logos-qt-sdk";
|
|
inputs.logos-view-module-runtime.follows = "logos-view-module-runtime";
|
|
inputs.nix-bundle-appimage.follows = "nix-bundle-appimage";
|
|
inputs.nix-bundle-dir.follows = "nix-bundle-dir";
|
|
inputs.nix-bundle-macos-app.follows = "nix-bundle-macos-app";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-accounts-module = {
|
|
url = "github:logos-co/logos-accounts-module/4fd4cb0be3d281b4a9b3303f892b2b265edb2a62";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
};
|
|
logos-accounts-ui = {
|
|
url = "github:logos-co/logos-accounts-ui/324b2c6e0aa76ecbed3a2d2922fd16093539eb25";
|
|
inputs.accounts_module.follows = "logos-accounts-module";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
};
|
|
logos-chat-module = {
|
|
url = "github:logos-co/logos-chat-module/33c624d0e6ea8444486d6bfe68aa07450315bdb6";
|
|
inputs.logos-delivery-module.follows = "logos-delivery-module";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
};
|
|
logos-chat-ui = {
|
|
url = "github:logos-co/logos-chat-ui/8d6a9feaa6eef3e9714d3aed3867d20337972542";
|
|
inputs.chat_module.follows = "logos-chat-module";
|
|
inputs.logos-delivery-module.follows = "logos-delivery-module";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
};
|
|
logos-package-manager = {
|
|
url = "github:logos-co/logos-package-manager/202af6fa0f0f4493bc59c8a609dff9326f78a18d";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.logos-package.follows = "logos-package";
|
|
inputs.nix-bundle-appimage.follows = "nix-bundle-appimage";
|
|
inputs.nix-bundle-dir.follows = "nix-bundle-dir";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-package-downloader = {
|
|
url = "github:logos-co/logos-package-downloader/6fcf682539c501e927d72393872a4f36d6b1d2a9";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.logos-package.follows = "logos-package";
|
|
inputs.nix-bundle-appimage.follows = "nix-bundle-appimage";
|
|
inputs.nix-bundle-dir.follows = "nix-bundle-dir";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-package-manager-module = {
|
|
url = "github:logos-co/logos-package-manager-module/cad6bab044d09eb54fe9a8efb20ed94694eb44ff";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
inputs.logos-package-manager.follows = "logos-package-manager";
|
|
};
|
|
logos-package-downloader-module = {
|
|
url = "github:logos-co/logos-package-downloader-module/2298842e8d5e8118d2268952fb08017152b8d433";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
inputs.logos-package-downloader.follows = "logos-package-downloader";
|
|
};
|
|
logos-package-manager-ui = {
|
|
url = "github:logos-co/logos-package-manager-ui/d14f284ea73e47448bebc6841612e53123c585bb";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
inputs.logos-package.follows = "logos-package";
|
|
inputs.package_downloader.follows = "logos-package-downloader-module";
|
|
inputs.package_manager.follows = "logos-package-manager-module";
|
|
};
|
|
logos-storage-module = {
|
|
url = "github:logos-co/logos-storage-module/8feb7cc0f7806bc2b25faa884e1bb9076b993969";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
};
|
|
logos-storage-ui = {
|
|
url = "github:logos-co/logos-storage-ui/823be657d236afe824b9804d6aee69c14b1d4507";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
inputs.nix-bundle-lgx.follows = "nix-bundle-lgx";
|
|
inputs.storage_module.follows = "logos-storage-module";
|
|
};
|
|
logos-wallet-module = {
|
|
url = "github:logos-co/logos-wallet-module/f6f9c160410db824531f42dd8b27ccecd39ca589";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
};
|
|
logos-wallet-ui = {
|
|
url = "github:logos-co/logos-wallet-ui/26f8f5bebd511e91e29019e1e7c892bd5753439d";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
inputs.nix-bundle-lgx.follows = "nix-bundle-lgx";
|
|
inputs.wallet_module.follows = "logos-wallet-module";
|
|
};
|
|
logos-delivery-module = {
|
|
url = "github:logos-co/logos-delivery-module/3f8a0ed99afae349fec8013442638e7569ac2cf3";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
inputs.nix-bundle-lgx.follows = "nix-bundle-lgx";
|
|
};
|
|
logos-delivery-demo = {
|
|
url = "github:logos-co/logos-delivery-demo/b5fec54843a20290fdc847762bdbc7f2d7217da1";
|
|
inputs.delivery_module.follows = "logos-delivery-module";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
};
|
|
logos-blockchain-module = {
|
|
url = "github:logos-blockchain/logos-blockchain-module/581323e9e587a3b8057f8f63a9ade1ff1892111a";
|
|
inputs.logos-blockchain.follows = "logos-blockchain";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
};
|
|
logos-blockchain-ui = {
|
|
url = "github:logos-blockchain/logos-blockchain-ui/eb513b5a79f558f5718a5ca0eafac1d5fda7d832";
|
|
inputs.blockchain_module.follows = "logos-blockchain-module";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
inputs.nix-bundle-lgx.follows = "nix-bundle-lgx";
|
|
};
|
|
logos-execution-zone-wallet-ui = {
|
|
url = "github:logos-blockchain/logos-execution-zone-wallet-ui/da1b021db5315eccd1e39835268bbc08633adc12";
|
|
inputs.lez_core.follows = "logos-execution-zone-module";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
inputs.nix-bundle-lgx.follows = "nix-bundle-lgx";
|
|
};
|
|
logos-execution-zone-module = {
|
|
url = "github:logos-blockchain/logos-execution-zone-module/033f807a3b1690fb2f8e661cb8067646b8a98242";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
inputs.nix-bundle-lgx.follows = "nix-bundle-lgx";
|
|
};
|
|
logos-libp2p-module = {
|
|
url = "github:logos-co/logos-libp2p-module/7b4b776b26d96e2a0c794827c77bb6eb89da5100";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
inputs.logoscore-cli.follows = "logos-logoscore-cli";
|
|
inputs.package-manager.follows = "logos-package-manager";
|
|
inputs.libp2p.url = "github:vacp2p/nim-libp2p/7c73484cc0c57a5f649dd3d277cef1c7c4de28f0";
|
|
};
|
|
logos-webview-app = {
|
|
url = "github:logos-co/logos-webview-app/b5d1bb40da6ba550076069a10cf9beaac45aa515";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
inputs.nix-bundle-lgx.follows = "nix-bundle-lgx";
|
|
};
|
|
counter_qml.url = "github:logos-co/counter_qml/8029a894f4221f9284efabbedcee7d9d18929777";
|
|
counter = {
|
|
url = "github:logos-co/counter/204ec0d3f0ccffc5d40269db9e7253cba7c330d6";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
};
|
|
logos-design-system = {
|
|
url = "github:logos-co/logos-design-system/fd4978713921e087c40f4a6a52a3e5f60f6104bd";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.nix-bundle-appimage.follows = "nix-bundle-appimage";
|
|
inputs.nix-bundle-dir.follows = "nix-bundle-dir";
|
|
inputs.nix-bundle-macos-app.follows = "nix-bundle-macos-app";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-js-sdk = {
|
|
url = "github:logos-co/logos-js-sdk/6b6ccb5f10ea358ae8c9bee4264722dfb0aed76b";
|
|
inputs.logos-capability-module.follows = "logos-capability-module";
|
|
inputs.logos-cpp-sdk.follows = "logos-cpp-sdk";
|
|
inputs.logos-liblogos.follows = "logos-liblogos";
|
|
inputs.logos-module.follows = "logos-module";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
inputs.logos-module-client.follows = "logos-module-client";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-nim-sdk = {
|
|
url = "github:logos-co/logos-nim-sdk/df1f21906e661d96f5e4bda172cb9a619292b603";
|
|
inputs.logos-cpp-sdk.follows = "logos-cpp-sdk";
|
|
inputs.logos-liblogos.follows = "logos-liblogos";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-rust-sdk.url = "github:logos-co/logos-rust-sdk/be0dedad0fbef00c497e2e5e83ef03a000abcee6";
|
|
logos-logoscore-py = {
|
|
url = "github:logos-co/logos-logoscore-py/6e081b2d2fd87a909b958aa8a97be445229acf75";
|
|
inputs.logos-logoscore-cli.follows = "logos-logoscore-cli";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.logos-test-modules.follows = "logos-test-modules";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-test-modules = {
|
|
url = "github:logos-co/logos-test-modules/fb773a564d16d6a273871a8f0d118008b841a736";
|
|
inputs.logos-liblogos.follows = "logos-liblogos";
|
|
inputs.logos-logoscore-cli.follows = "logos-logoscore-cli";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
process-stats = {
|
|
url = "github:logos-co/process-stats/33ace1270f90c89b3565e803139c0970fcd1ce8f";
|
|
inputs.logos-nix.follows = "logos-nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-module-viewer = {
|
|
url = "github:logos-co/logos-module-viewer/b6489c1aab8c1590fa127dbaedb39708f3614fbc";
|
|
inputs.logos-capability-module.follows = "logos-capability-module";
|
|
inputs.logos-cpp-sdk.follows = "logos-cpp-sdk";
|
|
inputs.logos-liblogos.follows = "logos-liblogos";
|
|
inputs.logos-package-manager.follows = "logos-package-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
logos-evm-net-proxy.url = "github:logos-co/logos-evm-net-proxy/564a730551b677ff8292144c3773a46d99a18b91";
|
|
logos-evm-keystore-module = {
|
|
url = "github:logos-co/logos-evm-keystore-module/1ac386973acf568b48bb52f7e17baf302fa55670";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
};
|
|
logos-evm-eth-rpc-module = {
|
|
url = "github:logos-co/logos-evm-eth-rpc-module/8a825cdbf0b78de4af30b6250e91b08d2e1ba1d7";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
};
|
|
logos-evm-token-list-module = {
|
|
url = "github:logos-co/logos-evm-token-list-module/25d5d6b2a96987bb2a757a0348c150baeb675e3b";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
};
|
|
logos-evm-uniswap-module = {
|
|
url = "github:logos-co/logos-evm-uniswap-module/df069a7eab47d705eb3b519092a5e41e85ddd7f1";
|
|
inputs.eth_rpc_module.follows = "logos-evm-eth-rpc-module";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
};
|
|
logos-evm-railgun-module = {
|
|
url = "github:logos-co/logos-evm-railgun-module/b6d066932c62791c8be5b9a7344318d8df9a6156";
|
|
inputs.eth_rpc_module.follows = "logos-evm-eth-rpc-module";
|
|
inputs.keystore_module.follows = "logos-evm-keystore-module";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
};
|
|
logos-evm-wallet-backend-module = {
|
|
url = "github:logos-co/logos-evm-wallet-backend-module/584dbfe3195ec6dfe4c0d8b91fabb02ac2d963f4";
|
|
inputs.eth_rpc_module.follows = "logos-evm-eth-rpc-module";
|
|
inputs.keystore_module.follows = "logos-evm-keystore-module";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
inputs.railgun_module.follows = "logos-evm-railgun-module";
|
|
inputs.token_list_module.follows = "logos-evm-token-list-module";
|
|
inputs.uniswap_module.follows = "logos-evm-uniswap-module";
|
|
};
|
|
logos-evm-wallet-ui = {
|
|
url = "github:logos-co/logos-evm-wallet-ui/68f7c4fe6005990dea38de67d6853d12d9045872";
|
|
inputs.eth_rpc_module.follows = "logos-evm-eth-rpc-module";
|
|
inputs.keystore_module.follows = "logos-evm-keystore-module";
|
|
inputs.logos-module-builder.follows = "logos-module-builder";
|
|
inputs.railgun_module.follows = "logos-evm-railgun-module";
|
|
inputs.token_list_module.follows = "logos-evm-token-list-module";
|
|
inputs.uniswap_module.follows = "logos-evm-uniswap-module";
|
|
inputs.wallet_backend_module.follows = "logos-evm-wallet-backend-module";
|
|
};
|
|
# END AUTO-INPUTS
|
|
};
|
|
|
|
outputs = { self, nixpkgs, ... }@inputs:
|
|
let
|
|
systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
|
forAllSystems = fn: nixpkgs.lib.genAttrs systems fn;
|
|
|
|
depGraph = import ./nix/dep-graph.nix;
|
|
|
|
# Every logos flake input we iterate over for packages/apps/checks.
|
|
# Excludes `logos-nix` (it's a nixpkgs pin, not a buildable repo).
|
|
repoInputNames = builtins.attrNames
|
|
(builtins.removeAttrs depGraph [ "logos-nix" ]);
|
|
|
|
# Mapping from flake input name → submodule directory name under repos/.
|
|
# Only entries where the names differ need to be listed.
|
|
inputToDirOverrides = {
|
|
"logos-calc-module" = "logos-tutorial/logos-calc-module";
|
|
"logos-calc-ui" = "logos-tutorial/logos-calc-ui";
|
|
"logos-calc-ui-cpp" = "logos-tutorial/logos-calc-ui-cpp";
|
|
};
|
|
|
|
inputToDir = name: inputToDirOverrides.${name} or name;
|
|
|
|
in {
|
|
|
|
# ── Packages ──────────────────────────────────────────────────────────
|
|
# nix build .#logos-cpp-sdk → default package
|
|
# nix build .#logos-basecamp → default package
|
|
# nix build .#logos-basecamp--portable → non-default output
|
|
# nix build .#logos-liblogos--portable
|
|
# nix bundle --bundler .#nix-bundle-lgx .#logos-chat-module--lib
|
|
# All repo package outputs are exposed: default as the repo name,
|
|
# non-default as <repo>--<output>.
|
|
packages = forAllSystems (system:
|
|
let
|
|
# Collect all package outputs from all repos.
|
|
# Each repo's packages are forwarded lazily — the value is not
|
|
# evaluated until someone actually builds it, so broken store
|
|
# paths or missing files won't cause errors at evaluation time.
|
|
allPkgs = builtins.foldl' (acc: name:
|
|
let
|
|
repoPkgs = (inputs.${name}.packages.${system} or {});
|
|
outNames = builtins.attrNames repoPkgs;
|
|
in
|
|
acc // builtins.listToAttrs (map (outName:
|
|
let
|
|
attrName = if outName == "default" then name else "${name}--${outName}";
|
|
in
|
|
{ name = attrName; value = repoPkgs.${outName}; }
|
|
) outNames)
|
|
) {} repoInputNames;
|
|
in allPkgs
|
|
);
|
|
|
|
# ── Apps ──────────────────────────────────────────────────────────────
|
|
# nix run .#logos-standalone-app -- --plugin ./result/lib/
|
|
# Forwards apps outputs from all repos. Default app exposed as repo name,
|
|
# non-default as <repo>--<output>.
|
|
apps = forAllSystems (system:
|
|
builtins.foldl' (acc: name:
|
|
let
|
|
repoApps = (inputs.${name}.apps.${system} or {});
|
|
outNames = builtins.attrNames repoApps;
|
|
in
|
|
acc // builtins.listToAttrs (map (outName:
|
|
let
|
|
attrName = if outName == "default" then name else "${name}--${outName}";
|
|
in
|
|
{ name = attrName; value = repoApps.${outName}; }
|
|
) outNames)
|
|
) {} repoInputNames
|
|
);
|
|
|
|
# ── Dev Shells ────────────────────────────────────────────────────────
|
|
# nix develop → workspace shell (ws CLI + common tools)
|
|
# nix develop .#logos-cpp-sdk → that repo's own devShell
|
|
# nix develop → workspace shell with ws CLI + common tools
|
|
# For sub-repo devShells use: nix develop path:./repos/<repo-name>
|
|
# or: ws develop <repo-name>
|
|
devShells = forAllSystems (system:
|
|
let
|
|
pkgs = import nixpkgs { inherit system; };
|
|
# Always delegates to the live scripts/ws in the workspace,
|
|
# without needing to rebuild the devshell. Falls back to the
|
|
# flake directory if LOGOS_WORKSPACE_ROOT is not set.
|
|
wsScript = pkgs.writeShellScriptBin "ws" ''
|
|
exec "''${LOGOS_WORKSPACE_ROOT:-${builtins.toString ./.}}/scripts/ws" "$@"
|
|
'';
|
|
in {
|
|
default = import ./nix/devshell.nix { inherit pkgs wsScript; };
|
|
}
|
|
);
|
|
|
|
# ── Checks ────────────────────────────────────────────────────────────
|
|
# nix flake check → run ALL repo checks
|
|
# nix build .#checks.x86_64-linux.logos-cpp-sdk--test
|
|
checks = forAllSystems (system:
|
|
builtins.foldl' (acc: name:
|
|
let
|
|
result = builtins.tryEval (inputs.${name}.checks.${system} or {});
|
|
repoChecks = if result.success then result.value else {};
|
|
prefixed = nixpkgs.lib.mapAttrs'
|
|
(cname: drv: { name = "${name}--${cname}"; value = drv; })
|
|
repoChecks;
|
|
in
|
|
acc // prefixed
|
|
) {} repoInputNames
|
|
);
|
|
|
|
# ── Bundlers ──────────────────────────────────────────────────────────
|
|
# Forwards nix-bundle-lgx bundlers so scripts can use "$WORKSPACE_ROOT"
|
|
# as the --bundler reference.
|
|
bundlers = forAllSystems (system:
|
|
inputs.nix-bundle-lgx.bundlers.${system}
|
|
);
|
|
|
|
# ── Lib (for programmatic use) ────────────────────────────────────────
|
|
lib = {
|
|
inherit repoInputNames inputToDir;
|
|
# Dependency graph: input name → { deps, follows, hasTests }
|
|
depGraph = depGraph;
|
|
};
|
|
};
|
|
}
|