fix(renovate): lockstep flake.nix nixpkgs rev on devenv-nixpkgs bump (RIG-3099) - #814
Open
rigel-mintaka wants to merge 3 commits into
Open
fix(renovate): lockstep flake.nix nixpkgs rev on devenv-nixpkgs bump (RIG-3099)#814rigel-mintaka wants to merge 3 commits into
rigel-mintaka wants to merge 3 commits into
Conversation
|
Compass engineering docs preview: https://dependencies-rig-3099-flake.compass-eng-docs.pages.dev Deployed from |
This was referenced Aug 31, 2026
… robustness (RIG-3099 review)
…unchanged bump (RIG-3099 review R2) Round-2 review lows: - config.json5: restore the comment clause an earlier edit dropped (the single branch-mode task slot Renovate builds per branch / Rule-level). - refresh-devenv-nixpkgs.test.ts: the 'biome did not move' test now asserts step 6 STILL fired (flake.nix URL rev + flake.lock locked rev both track the bumped channel), pinning that the flake lockstep is decoupled from the biome-pin rewrite -- its whole reason to be a separate step.
rigel-mintaka
force-pushed
the
dependencies/rig-3099-flake-parity-lockstep
branch
from
August 31, 2026 23:00
3fb6795 to
62e6b0c
Compare
rigel-mintaka
marked this pull request as ready for review
August 31, 2026 23:10
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 free
to 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.
RIG-3099: lockstep flake.nix nixpkgs rev on a devenv-nixpkgs bump
Problem
A Renovate bump of the
cachix/devenv-nixpkgsdigest fails CI on theflake-gate:flake-paritygate, so the PR can never go green on its own(observed on #580):
Root cause
The
devenv-nixpkgscustomManager rewrites the channel rev indevenv.lock,and its
postUpgradeTask(refresh-devenv-nixpkgs.ts) re-locksdevenv.lock+bun.lockand rewrites the biome catalog pin — but never touchesflake.nix(which hard-codes the rev in
inputs.nixpkgs.url) orflake.lock. The rootflake landed 2026-08-27..29 (RIG-2819/2888/2889), after this refresh script
was written, so the automation never learned to keep it in lockstep. The
flake-paritygate (tools/toolchain/flake-parity.ts) then reds on the skew.Fix
Extend
refresh-devenv-nixpkgs.tswith a step 6: after the devenv.lock re-lock,rewrite
flake.nix'sinputs.nixpkgs.urlto the new channel rev andnix flake update nixpkgsto re-lockflake.lock. This is exactly theremediation the gate's own error message prescribes ("align flake.nix's
inputs.nixpkgs.url + nix flake update nixpkgs"), mechanized.
channelNixpkgsRev(devenvLockText)— reads devenv.lock's OUTERnixpkgsnode(the channel rev flake.nix pins + the parity gate compares), distinct from the
existing
innerNixpkgsRev(the transitivenixpkgs-src).rewriteFlakeNixpkgsUrl(flakeNixText, newRev)— pure, fail-loud rewrite of theURL rev, mirroring
rewriteCatalogPin.flake.nixPIN DISCIPLINE comment (no longer names a literal revthat goes stale on each bump) and the config.json5 "no root flake" comment
(flake now exists; nix manager stays off deliberately — an independent
flake.lock bump would fight the devenv.lock lockstep the parity gate enforces).
Verification
moon renovate:typecheck renovate:test— green (102 pass, 0 fail).channelNixpkgsRev(outer-not-inner, fail-loud shape drift),rewriteFlakeNixpkgsUrl(rewrite, one-line change, idempotent, fail-loud).rev +
nix flake updateran, offline against stubs.nix flake update nixpkgs(nix 2.34.7) → flake.lock re-locked c946ff36→256551eexactly as designed.
Sibling gap RIG-3100 (Go bump can outrun the pinned go-overlay) is a separate PR
with a fix-approach fork for Matt.