Skip to content

nixpkgs: drop the nixpkgs-master input — amd should draw only from nixos-unstable (Drew directive) #3327

Closed

Description

@dezren39

Directive (Drew, 2026-10-31 23:10 CDT)

"use unstable" — the amd configuration should not draw packages from a master-tracking nixpkgs. Kill the master input; anything it feeds should come from the nixos-unstable set (or a deliberately pinned exception, justified in place).

Current state (verified on the laptop, 2026-10-31)

  • flake.nix:98: nixpkgs-master.url = "github:NixOS/nixpkgs" — no ref, so it tracks master. Its pin is currently 086873f31aea (also, oddly, the exact rev nixpkgs-stable is pinned to).
  • Consumers of inputs.nixpkgs-master.legacyPackages:
    • nixos/environment/default.nix — system packages: ghostty, zed-editor, framework-tool, musl, fish; plus PLAYWRIGHT_BROWSERS_PATH from master's playwright-driver.browsers (~line 379).
    • home/common/default.nix:1226 — ghostty package.
  • The system's base nixpkgs is already the root nixpkgs input on nixos-unstable; master feeds only the list above.

Why this matters (tonight's evidence)

The 2026-10-30 nixpkgs-update run bumped master c61a74e1 -> 086873f31aea. A master rev that fresh has not been through Hydra, so master-fed packages and their closures build from source. The acceptance build (nix build .#nixosConfigurations.amd.config.system.build.toplevel in ~/git/fleet/nixpkgs-update-2026-10-30) ran 13h13m under fleet load before Drew ordered it killed on 2026-10-31 — and its load is what flaked the watchdog activation switch via code#3199. Completed derivations are cached in the store, so the update itself is resumable; the structural problem is the master input, not the run.

Asks

  1. Repoint every nixpkgs-master consumer (system packages above, the Playwright browsers path, the home ghostty) to the nixos-unstable package set (nixpkgs-25 / root nixpkgs, matching what the surrounding config uses). If a specific package genuinely needs to be fresher than unstable, pin THAT package's input deliberately with a comment saying why — no general master set.
  2. Remove the nixpkgs-master input from flake.nix / flake.lock (and check nixpkgs-stable's pin, which currently equals the master rev — stable should be a release branch or go away too).
  3. Acceptance: nix eval .#nixosConfigurations.amd.config.system.build.toplevel.drvPath clean and the toplevel builds; no remaining nixpkgs-master references in the tree.

Related: the nixpkgs-update procedure (Muse cron nixpkgs-update-amd) is being restricted to the nixos-unstable set in the same pass, so future updates stop bumping master even before this lands.

Acceptance criteria

  • The nixpkgs-master input is removed from flake.nix (or any retained exception is pinned and justified in place per the directive).
  • Every former master consumer (system packages in nixos/environment/default.nix, ghostty in home/common/default.nix, PLAYWRIGHT_BROWSERS_PATH) resolves from the nixos-unstable set.
  • The amd configuration evaluates/builds in CI with no master-tracking input in flake.lock.

Activity

  1. added
    kind/infrastructureInfrastructure / host-portability work
    priority/highImportant and time-sensitive
    effort/sSmall: expected under 2 hours of work
    area/nixNix expressions, flakes, and packaging
    source/humanFiled directly by a human
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Nov 1, 2026
  2. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    Intake review — fleet monitor

    Related: filed from Drew's 2026-10-31 23:10 CDT directive; the 2026-10-30 nixpkgs-update bump is the motivating evidence (in body). No merged PR references this issue yet at intake (~30 min after filing).
    Notes: body is complete with verified current state (flake.nix:98 and both consumer sites). Consumers are a closed list, so the change is bounded; the risk is a master-only package/version difference surfacing at build time — CI evaluation of the amd config is the check.
    Suggested approach: repoint the three consumer sites to the root unstable set, drop the input, refresh flake.lock, let CI build.
    Risks: PLAYWRIGHT_BROWSERS_PATH version skew vs. the playwright version in the unstable set.

  3. added
    queue/queuedHas a queued task in the Supabase agent queue
    task/triageQueue packet kind: verify, reproduce, and route this item
    on Nov 3, 2026
  4. developing-today commented on Nov 3, 2026

    @developing-today
    Contributor

    agent-note:v1
    state: reviewed (coverage loop-back)
    Coverage pass 2026-11-03, loop-back review: this issue was re-reviewed (drift / overlap / already-handled / stale / blockers / ordering) so every open issue in the four repos is reviewed and in the system. Verdict: still live; in the system as task 7382 (triage, queued, priority 50) in repo-health-code-pilot. Labels audited and synced. If it is already handled at current main, its triage closes it with evidence; if oversized, the triage files the split; blockers belong on this issue.
    Found via: coverage loop-back 2026-11-03

  5. added
    work/assignedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 3, 2026
  6. 4 remaining items

  7. added
    queue/queuedHas a queued task in the Supabase agent queue
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 4, 2026
  8. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    state: claimed
    queue: repo-health-code-pilot
    task: 8943 (small_fix, worker repo-worker-code, lane code-f, direct execution lane)
    by: repo-queue-worker-shift-f
    at: 2026-11-04T05:20Z

    Picked up task 8943: drop the nixpkgs-master flake input and repoint consumers to the nixos-unstable set (plus pin or remove nixpkgs-stable) per the packet from triage task 7382. Fresh revalidation: issue #3327 OPEN, priority/high, no hard-stop labels; no open queue PR owns this fix (PR #4519/#4760 mention the area but are not #3327 fixes). Working in a laptop worktree on branch queue/8943-3327-drop-nixpkgs-master; verification is nix eval only, per packet.

  9. added a commit that references this issue on Nov 4, 2026
  10. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    state: done
    queue: repo-health-code-pilot
    task: 8943 (small_fix, worker repo-worker-code, lane code-f, direct execution lane)
    by: repo-queue-worker-shift-f
    at: 2026-11-04T06:17Z

    Done: PR #5311 merged (merge commit 6ed2ae7); issue #3327 closed by the merge. nixpkgs-master and nixpkgs-stable inputs are gone from flake.nix/flake.lock and every former consumer evaluates from the nixos-unstable set. Verification: nix eval .#nixosConfigurations.amd.config.system.build.toplevel.drvPath passes on the branch (clean-main control also passes; without the one pin exception it failed on broken regex-pcre). Pin exception, justified in place: haskellPackages.misfortune comes from the nixpkgs-25 set because its regex-pcre dependency is marked broken in the fleet-pinned unstable rev. Codex review on PR #5311: completed, no findings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area/nixNix expressions, flakes, and packagingeffort/sSmall: expected under 2 hours of workkind/infrastructureInfrastructure / host-portability workmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/highImportant and time-sensitivesource/humanFiled directly by a humantask/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions