Repository navigation
fix(flake-closure-diff): pass the head profile as an absolute path - #51
Conversation
nix reads a relative path argument as a flake reference: it resolved the .profile symlink and then rejected the store path with "is not a flake (because it's not a directory)", so every run failed at the report step. An absolute path under the store is recognised as a store path, which is what diff-closures wants. The base side was already absolute, from mktemp -d. Found on the first real run — solution-arsenal#858, the first consumer to call this — and reproduced locally: the relative form gives exactly the CI error, the absolute form prints the diff and exits 0.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to The workflow passes the intended absolute head-profile path to the closure-diff command. No merge-blocking issue is supported by the review. Pre-merge checks |
|
What
flake-closure-difffailed on its first real run. One-line fix: pass the head profile as anabsolute path.
Why it failed
nix reads a relative path argument as a flake reference. It resolved the
.profilesymlink,found a store path that is a file, and rejected it. The base side was already absolute, from
mktemp -d; only the head side was relative, so every run failed at the report step.Reproduced locally against Solar's flake — the relative form gives exactly the CI error, the
absolute form prints the diff and exits 0:
Notes
opendefensecloud/solution-arsenal#858, the first consumer to call this workflow.feat: add check-dev-kit-pins and a flake.lock closure diff #44 said it had not run end to end; this is what that was worth.
differences, but a failure to compute the diff means the tool is broken — and that is the
only reason this bug was noticed rather than shipped quietly to every consumer.
be dropped from
#858— nothing depends on it.Checklist
Summary by CodeRabbit