mirror of
https://github.com/logos-co/logos-basecamp.git
synced 2026-08-27 06:41:14 +00:00
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>
This commit is contained in:
committed by
Dario Lipicar
co-authored by
Claude Opus 5
parent
9b8cf6e47e
commit
5caa8fc619
Generated
+201
-161963
File diff suppressed because it is too large
Load Diff
@@ -149,7 +149,16 @@
|
||||
# but does not carry the view plugin, so tracking master here would trade a
|
||||
# build failure for a runtime mismatch that still looks green. The merge
|
||||
# gives both.
|
||||
logos-package-manager-ui.url = "github:logos-co/logos-package-manager-ui";
|
||||
# `package_manager` and `package_downloader` are the SAME flakes as this
|
||||
# root's logos-package-manager-module / logos-package-downloader-module
|
||||
# inputs, at the same revs, with identical resolved subtrees -- they are
|
||||
# just reached under different input NAMES. Nix cannot know that, so
|
||||
# without these it unrolls a private ~3,178-node copy of each.
|
||||
logos-package-manager-ui = {
|
||||
url = "github:logos-co/logos-package-manager-ui";
|
||||
inputs.package_manager.follows = "logos-package-manager-module";
|
||||
inputs.package_downloader.follows = "logos-package-downloader-module";
|
||||
};
|
||||
logos-design-system.url = "github:logos-co/logos-design-system";
|
||||
# Unpinned: logos-view-module-runtime#25 merged, so master carries the move
|
||||
# onto the split host and no longer rev-pins logos-plugin-qt itself. That
|
||||
|
||||
Reference in New Issue
Block a user