flake-status: surface flake repos the workspace walk silently misses #102
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
allod/tools#102
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
flake-statusandflake-update-cascadediscover repos withworkspace_collect_repos(lib/workspace.sh): a recursive walk of$WORK_DIRthat stops at each git repo root.flake-statusthen drops any discovered repo without a rootflake.lockfrom its output entirely (_collect_all/_collect_namedwrite a skip marker and the render loop omits the repo), whileflake-update-cascadeat least prints "no flake.lock, skipping". Theflake/README.mddescribes both tools as covering "all repos" with no caveat.A repo newly added to the workspace therefore never appears in
flake-statusoutput when any of these hold, and nothing signals the omission or its reason:flake.nixbut no committedflake.lockyet (a fresh flake repo before its first lock commit) — silently absent.<root>/flake.lockis checked.$WORK_DIRat all — e.g.allod/deploy(created 2026-07-14, currently empty): once populated, its lock pins can go stale with no signal unless every operator happens to keep a clone.Observed 2026-07-15 while checking pins across the workspace after the recent repo additions: newly added repos were expected in
flake-status --upstreamoutput, and their absence gives no way to tell whether a repo is lock-less, nested, or simply not cloned.Scope
One artifact in this repo: make the omission visible instead of silent.
flake-status: render repos that haveflake.nixbut noflake.lockas an explicit status line (e.g.(flake.nix, no flake.lock — run nix flake lock)) instead of dropping them.lib/workspace.sh: extend discovery so a nestedflake.nix/flake.lockbelow a repo root is found and reported asrepo (subdir). Nested flakes may be status-only in the first pass; repo-root semantics stay for health warnings and cascade updates.read:organization); record it as a documented limitation inflake/README.md, with any forge-backed detection left to a follow-up issue.Validation
flake.nixand no lock, (b) a repo with a nested flake, (c) a flakeless repo:flake-statusshows (a) and (b) with correct statuses and still omits (c).flake.nixremoves its line).flake-update-cascaderepo set and behavior unchanged (still notices-and-skips lock-less repos); existingtests/flake/suite passes with the sharedworkspace.shchange.Out of scope
flake-update-cascadeis willing to update.won't fix, working as intended