chore(nix): dedupe logos-nix with follows - #134
Conversation
a6b7849 to
3e460c2
Compare
📊 Doc-test reportsThe four ways to wrap a C library plus the two cross-language composition tours — each scaffolded into real modules, built against this commit, loaded in logoscore, and driven — rendered alongside the commands actually run and their output (updated each run, commit Pages can take a minute to update after the run finishes. |
danisharora099
left a comment
There was a problem hiding this comment.
This is the companion logos-co/logos-nix#5 needs, and it is green, but I think it is two inputs short of complete.
#5 names these as each carrying their own logos-nix edge: logos-cpp-sdk, logos-qt-sdk, logos-module, logos-protocol, logos-plugin-qt/core, logos-design-system, logos-standalone-app, logos-test-framework, logos-view-module-runtime, and both nix-bundle-*.
This PR adds follows for all of those except logos-design-system and logos-view-module-runtime. Both appear in flake.nix but neither gets inputs.logos-nix.follows.
If #5's list is right, those two stay on the old nixpkgs after both PRs land, which is the split graph #5's own matrix shows failing with uses incompatible Qt library. If they do not actually expose a logos-nix input, or get it transitively through something already followed, then it is #5's list that needs correcting.
Either way worth resolving before these two merge, since they have to land in lockstep. Everything else here looks right, and deduping to one logos-nix is clearly the correct shape.
Caveat: I read the diff rather than evaluating the flake, so the transitive case is exactly what I cannot rule out from here.
3e460c2 to
1ccf144
Compare
|
@danisharora099 the pr was just old-ish (I think when it was created those two deps didn't exist. Added now. |
|
Resolved on my side, and thanks for the quick turnaround. I re-checked by evaluation rather than by reading the diff this time, and both edges are I also ran the experiment that matters for the pair: pinning the root One thing left in the way, unrelated to the above: this branch is currently |
1ccf144 to
45713e1
Compare
|
Rebased! |
Summary
logos-module-builderis the aggregator every module depends on. It pulls a stack oflogos-*inputs directly, and each one vendored its own copy oflogos-nix. This PR pins them all to the rootlogos-nixwithfollows, so the builder and every downstream module lock share one copy instead of N.Before this PR, only
logos-test-framework.inputs.logos-cpp-sdkwas deduped. This addsinputs.logos-nix.follows = "logos-nix"to every top-level input that carried a privatelogos-nix:logos-cpp-sdklogos-protocollogos-qt-sdklogos-modulelogos-plugin-qtlogos-plugin-corelogos-design-systemlogos-view-module-runtimelogos-standalone-applogos-test-frameworknix-bundle-lgxnix-bundle-logos-module-installlogos-view-moduleandlogos-rust-sdkalready carried thefollowson master, so the whole top-level set is now covered.Result
Measured on the rebased branch against master
3711449. Alogos-nixcopy is a lock node whose locked repo islogos-nix.logos-nixnode copiesNo input revision moves. Every input resolves to the same
logos-nixrev as before, shared instead of duplicated.nix flake metadataevaluates.Scope
Top-level input edges only. The 65
logos-nixcopies that remain are transitive:logos-modulepulls 15,nix-bundle-dir10,logos-package7, and the rest are spread overlogos-package-manager,nix-bundle-appimage,logos-container,logos-module-loaderand the SDK repos. Each of those must add thefollowsin its own flake, so they are out of scope here.