docs(policy): retiring a flake means its references too - #566
Merged
Conversation
§2.1 already ruled Nix retired and rightly warns against mass-deletion (campaign #102 hand-diffed 277 candidates and removed exactly one; fan-out REMOVE has a ~100% over-call rate here). The owner ruling of 2026-07-28 — "nix flakes are deprecated and to be thrown from the estate" — is reconciled with that warning rather than overriding it: removal stays a per-repo judgement made while you are ALREADY in the repo. Opportunistic, never a sweep. What was genuinely missing is that deleting flake.nix does not retire Nix. Measured on trope-checker (PR #47), one flake had TEN satellites — .envrc's `use flake`, a `nix-shell` recipe in BOTH Justfiles, nix in setup.sh's package-manager detection AND its install switch, a flake-detecting branch in install-tools.sh that ran ahead of Guix, dependabot's `nix` ecosystem, .gitignore/.gitattributes rules, dep5's lockfile glob, and PLAYBOOK prose. Leave any behind and the toolchain still reaches for Nix. They are now listed. Two traps recorded because both cost time: - dependabot.yml rejects the WHOLE file on one malformed entry, so re-parse after removing the nix ecosystem. - a root .githooks/ is usually LOAD-BEARING (CI runs validators straight from it) — allowlist it, do not "tidy" it away while passing through. And the standing caveat: a repo whose guix.scm is a scaffold stub has no working packaging once the flake is gone. Make Guix real, or fill the sealed container, in the SAME change — do not allowlist the flake instead. Note for whoever reconciles the canon: this repo carries TWO LANGUAGE-POLICY.adoc files and they disagree. This one (root) self-declares canonical and is the more current — its §2.2 records the squisher-corpus identity clobber measured 2026-07-29 across 418 repos. The other, rhodium-standard-repositories/spec/LANGUAGE-POLICY.adoc, still lists Deno as "replaces Node/npm/Bun" while §1 here makes Bun tier 1. That contradiction is NOT resolved here — flagged only. Renders clean under asciidoctor.
Note Automatic reviews are paused because your trial's included automatic processing has been used for this period. Upgrade now, or comment "Gitar review" to run a review anytime. Code Review✅ ApprovedUpdates the policy to require removing all satellite references when retiring a Nix flake, preventing leftover toolchain hooks. No issues found.
OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
hyperpolymath
marked this pull request as ready for review
July 29, 2026 07:32
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



§2.1 already rules Nix retired and rightly warns against mass-deletion. The owner ruling of 2026-07-28 — "nix flakes are deprecated and to be thrown from the estate" — is reconciled with that warning rather than overriding it: removal stays a per-repo judgement made while you are already working in the repo. Opportunistic, never a fan-out sweep.
What was genuinely missing
Deleting
flake.nixdoes not retire Nix. Measured ontrope-checker(#47), one flake had ten satellites:.envrcuse flakeblockJustfile+contractiles/Justfilenix-shellrecipebuild/setup.shnixin package-manager detection and the install switchinstall-tools.sh.github/dependabot.ymlnixpackage-ecosystementry.gitignore/.gitattributesflake.lockand*.nixrulescompliance/reuse/dep5flake.lockin the lockfile globPLAYBOOK.a2mlLeave any behind and the toolchain still reaches for Nix. They're now listed in §2.1.
Two traps recorded, because both cost time
dependabot.ymlrejects the whole file on one malformed entry — re-parse after removing thenixecosystem..githooks/is usually load-bearing (CI runs validators straight from it) — allowlist it inroot-allow.txt; don't "tidy" it away in passing.Plus the standing caveat, restated where it will be read: a repo whose
guix.scmis a scaffold stub has no working packaging once the flake is gone. Make Guix real, or fill the sealed container, in the same change.Flagged, not resolved — the canon disagrees with itself
This repo carries two
LANGUAGE-POLICY.adocfiles and they contradict each other:./LANGUAGE-POLICY.adoc(this one) self-declares canonical, is the more current — §2.2 records the squisher-corpus identity clobber measured 2026-07-29 across 418 repos — and makes Bun tier 1../rhodium-standard-repositories/spec/LANGUAGE-POLICY.adocstill lists Deno as "Replaces Node/npm/Bun".PR #51 on trope-checker cites the first; the estate
CLAUDE.mdI was working under states the second. I have not resolved this — it needs an owner decision on which file is authoritative. Note the Nix hardening was also added to the other file earlier (standards #557), so both now carry it; the runtime-tier contradiction is untouched.Renders clean under
asciidoctor.🤖 Generated with Claude Code