Skip to content

docs(policy): retiring a flake means its references too - #566

Merged
hyperpolymath merged 1 commit into
mainfrom
worktree-nix-references-clause
Jul 29, 2026
Merged

docs(policy): retiring a flake means its references too#566
hyperpolymath merged 1 commit into
mainfrom
worktree-nix-references-clause

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

§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.nix does not retire Nix. Measured on trope-checker (#47), one flake had ten satellites:

file what it kept alive
.envrc a direnv use flake block
Justfile + contractiles/Justfile a nix-shell recipe
build/setup.sh nix in package-manager detection and the install switch
install-tools.sh a flake-detecting branch running ahead of Guix
.github/dependabot.yml a nix package-ecosystem entry
.gitignore / .gitattributes flake.lock and *.nix rules
compliance/reuse/dep5 flake.lock in the lockfile glob
docs / PLAYBOOK.a2ml prose

Leave any behind and the toolchain still reaches for Nix. They're now listed in §2.1.

Two traps recorded, because both cost time

  • dependabot.yml rejects the whole file on one malformed entry — re-parse after removing the nix ecosystem.
  • A root .githooks/ is usually load-bearing (CI runs validators straight from it) — allowlist it in root-allow.txt; don't "tidy" it away in passing.

Plus the standing caveat, restated where it will be read: 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.

Flagged, not resolved — the canon disagrees with itself

This repo carries two LANGUAGE-POLICY.adoc files 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.adoc still lists Deno as "Replaces Node/npm/Bun".

PR #51 on trope-checker cites the first; the estate CLAUDE.md I 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

§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.
@gitar-bot

gitar-bot Bot commented Jul 29, 2026

Copy link
Copy Markdown

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.
Learn more

Code Review ✅ Approved

Updates the policy to require removing all satellite references when retiring a Nix flake, preventing leftover toolchain hooks. No issues found.

Auto-approved and auto-merge armed: No blocking issues found.
Please see Auto-approve Docs for details on setting custom approval criteria. — merges when pipeline and required approvals pass.

Options

Display: compact → Showing less information.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Gitar

@gitar-bot gitar-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gitar has auto-approved this PR and enabled auto-merge (configure)

@gitar-bot gitar-bot Bot added the gitar-approved Added by Gitar label Jul 29, 2026
@sonarqubecloud

Copy link
Copy Markdown

@hyperpolymath
hyperpolymath marked this pull request as ready for review July 29, 2026 07:32
@hyperpolymath
hyperpolymath merged commit a6f567f into main Jul 29, 2026
34 of 36 checks passed
@hyperpolymath
hyperpolymath deleted the worktree-nix-references-clause branch July 29, 2026 07:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gitar-approved Added by Gitar

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant