Files
logos-basecamp/flake.lock
T
Dario Gabriel LipicarandClaude Opus 5 5caa8fc619 chore(deps): stop unrolling two private copies of the package-manager flakes
flake.lock is 19,832 nodes / 507,875 lines. 7,018 of those carry their own
logos-nix edge, and therefore their own nixpkgs. For contrast,
logos-view-module-runtime costs SEVEN nodes — it is the one input here that
already declares `follows`.

logos-package-manager-ui reaches logos-package-manager-module and
logos-package-downloader-module under DIFFERENT INPUT NAMES
(`package_manager`, `package_downloader`) than this root does. Same flakes,
same revs, identical resolved subtrees — Nix just cannot know that, so it
unrolls a private ~3,178-node copy of each. Two root-to-root follows,
retargeted across the name difference:

    19,832 nodes / 507,875 lines  ->  13,476 / 346,113   (-32%)

Nothing about what is built changes: all 21 root inputs resolve to the same
revs before and after, and `nix flake lock` re-runs as a byte-level no-op
with no unmatched-follows warnings.

WHAT IS DELIBERATELY NOT HERE. Four deeper follows take this to 2,992 nodes
(-85%) by sharing logos-module-builder subtrees between consumers and
closing a real cycle (capability-module -> module-builder -> standalone-app
-> liblogos -> capability-module, which Nix unrolls one fresh copy per lap).
They were proven meaning-preserving against an earlier tip — 1361/1361
derivations identical, plus a bisimulation over both lock graphs — and then
that tip moved. On the commit that reworked main_ui into "a plugin that
links no logos runtime", the same follows produce

    Failed to load the main UI plugin from .../main_ui/main_ui.dylib:
      The shared library was not found

with shutdown-test and smoke-test red while the base is green. A
derivation-graph proof is only as durable as the tip it was taken on.

One of the four was disqualified separately, for a reason that would have
outlived any tip: pointing this UI's standalone-app/liblogos at
logos-capability-module's is a no-op HERE, but a parent that overrides
logos-capability-module — exactly how logos-workspace consumes this flake —
pulls them apart, and this UI's build-time liblogos silently follows the
parent's down. Measured at the workspace's own pin: 93207e41 -> 56aa8bb4,
eight days older, no warning.

The two kept are ordinary root-to-root sharing, the idiom already used by
logos-view-module-runtime and nix-bundle-macos-app above. The remaining
10,484 nodes are the module-builder cycle, and the fix for that belongs
upstream in logos-module-builder / logos-capability-module, where closing it
once collapses every consumer at the same time.

Rebased onto master after logos-basecamp#337 merged and its branch was
deleted; re-verified from scratch rather than carried over, because the base
moving is what invalidated the deeper follows. On 9b8cf6e: bin-macos-app
builds, and shutdown-test, smoke-test, symbol-gate, symbol-gate-negative,
unit-tests, qml-tests and sandbox-test are all green.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 17:34:50 -03:00

9.5 MiB

The file is too large to be shown. View Raw