chore(auto): update flake inputs - #1742
Merged
Merged
Conversation
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.
Flake update repair report
Outcome: no repo changes. The update did not break anything, and it did not
surface any deprecation warning that originates in this repo. Every warning in
.ci-check.logis emitted by a flake input, and each one is present on theold lock too.
I would rather say that plainly than invent a repair. What follows is the
evidence, because "I changed nothing" is only worth reading if you can see what
was checked.
What changed, and why
Nothing. No file in this repo was modified.
What the update actually moved
14 inputs moved. Two of them own NixOS modules, so an option rename or removal
was genuinely possible and had to be ruled out rather than assumed:
nixpkgs(.nodes.root.inputs.nixpkgs→nixpkgs_10):3ed67ec→0968519home-manager:aa30877→693e8ceThe rest are package/leaf inputs:
claude-code,devenv,emacs-overlay,fenix,nixpkgs-stable,noctalia,nur,rust-analyzer-src,rust-overlay,wezterm.How "no host changed" was established
A green build does not prove a machine is unchanged, so I compared evaluated
option values between the old lock (
HEAD~1, same tree — the auto-updatecommit touches only
flake.lock) and the new one, for all 11nixosConfigurations: firewall (enable / TCP+UDP ports / port ranges / trustedinterfaces / reverse-path / per-interface rules), nftables, nameservers, NAT,
openssh (enable / ports / openFirewall / settings / host keys), resolved, boot
loader, kernel params and modules, initrd (incl.
network.sshand LUKSdevices),
fileSystems(device/fsType/options),swapDevices, sysctls, sudo,PAM services,
users.mutableUsers,stateVersion,nix.settings, systemdservice/timer/socket/mount names, user and group names,
environment.etcentries,
environment.systemPackagesby name, kernel version, and the 9embedded home-manager configs.
That diff came to 1145 changed lines. Every one is accounted for:
intune-portalPAM.sostore path (version unchanged, 1.2607.4)howdyPAM.sostore path (version unchanged, 3.0.0)7.2.2→7.2.36.18.48→6.18.49nix.settings.experimental-featuresnewly present,[]Nothing else moved. No firewall rule, no ssh setting, no systemd unit, no
account, no filesystem, no boot setting.
Separately: the 2
darwinConfigurationsand the 2 standalonehomeConfigurations— whichcheckskips or only shallowly covers — diffedempty across launchd daemons/agents, users, nix settings, package names,
home.file/xdg.configFileentries, session variables and program lists.The one finding worth your attention (resolved, no change needed)
nixpkgs
0968519newly declaresnix.settings.experimental-features(
listOf str, default[ ]) innixos/modules/config/nix.nix. This repo doesnot set that option — it enables flakes through free-text
nix.extraOptions(
profiles/defaults.nix:16,profiles/kubevirt.nix:103,configurations/nixos/x86_64-linux/installer.nix:32).The new default therefore injects a bare, empty line into the generated
nix.confabove theextraOptionsblock:This is exactly the "silently changed a machine" failure mode worth fearing:
every auto-upgrading host rebuilds itself with
nixos-rebuild --flake github:johnae/world(system.autoUpgrade.flake, set onalnitak,vega,sagittarius,icarus,jupiter). If that empty line won,flakes would be off and every host would fail its next automatic rebuild.
It does not win. I checked with the real
nixbinary against theactually-generated
erisnix.confrather than reasoning about it — theeffective value is
fetch-tree flakes nix-command. Later plain assignmentsoverride earlier ones in
nix.conf, which is precisely whyextraOptionsworksas an override at all.
vegacomposes twoextraOptionsblocks (lines 8, 19,25) and resolves the same way.
So behaviour is preserved and I made no change. Setting
nix.settings.experimental-featuresexplicitly would be adopting a new optionto fix a non-problem; leaving
extraOptionsas the single source of truth isthe boring choice. Flagging it only because it is now stated twice in the
generated file, and a future person may want to consolidate — that is a
decision, not a repair.
Verification run
nix run .#world -- check— pass, exit 0, 53✅. Reproduced the supplied.ci-check.logexactly, including a byte-identical warning multiset, whichalso confirms that log is genuine and current.
nix run .#world -- lint— pass, exit 0.github-actions-package-matrix-x86-64-linux, one invocation, as.cryo/ci.yamldoes) — BUILD_RESULT_PLACEHOLDER
nurmoved, and its Firefox add-ons live in home-manager, so no CI gatebuilds them. Built all six explicitly (
tridactyl,adsum-notabs,ublock-origin,react-devtools,duckduckgo-privacy-essentials,privacy-badger) — all succeed.nixos/modules/rename.nixis byte-identical across the two revs,and home-manager's
modules/default.nixlikewise. Combined with a clean eval(
mkRenamedOptionModulewarns,mkRemovedOptionModulethrows — neither canpass silently), no option used by this repo was renamed or removed.
Needs a human
Nothing here was introduced by this update. Each is listed because I
deliberately left it alone, not because it is new.
1.
misc/gh-release-update.nu— nushellfilterdeprecation (off-limits).ci-update.logreportsfilter was deprecated in 0.105.0 and will be removed in a future release, pointing at line 10. The parser reports only the firstoccurrence: there are three — lines 10, 26 and 36. Lines 26 and 36 are the
release-selection logic itself:
This is the update tooling — it decides which versions get pinned. A wrong
edit here still evaluates, still builds, still merges, and pins the wrong
version on every host, so a passing build proves nothing. I did not touch it.
What I would have changed, for whoever picks this up:
filter→whereisthe usual mechanical swap, but
wherewith a closure has different bindingsemantics than
filter, and at lines 26/36 the result feedsfirst | get name.Getting that subtly wrong reorders or misselects a release. It needs someone who
can run the script against the real GitHub API and eyeball the chosen versions.
Note also that the pinned nushell tracks top-level nixpkgs, so this warning
reappears on every update until it is fixed.
2. Perennial input-owned warnings in
.ci-check.logNone originate in repo-owned code; none are fixable with a small local diff.
Counts are unchanged from the old lock.
stdenv.isDarwin(×2) /stdenv.isLinux(×1) deprecated — zerooccurrences of the bare form anywhere in this repo (grepped); comes from
inputs.
rocksdbnested list inbuildInputs(×1) — inside thetuwunelinput. Therepo's only
buildInputsuse (flake/packages.nix:69) is a flat++.devenv-up/devenv-testdeprecated (×1 each) — emitted by thedevenvinput's own flake module.
rekey.hostPubkeyunset fortestandinstaller(×2) — intentional;agenix-rekey's own message says so. These are not real deployed hosts.
options.json"without a proper context" (×9) — nixpkgs-internal; only theembedded store path differs old vs new.
3. Latent, pre-existing, invisible to CI
world checkreportsomitted these incompatible systems: aarch64-darwin, aarch64-linux, x86_64-darwin, so these never fail the gate:flake/packages.nix:54—noctalia = inputs.noctalia.packages.${system}.defaulthas no platform guard, but noctalia ships linux-only outputs. Its neighbours
zwift/persway/wezterm(lines 56-70) do carrystdenv.hostPlatform.isLinuxguards with apkgs.hellofallback; noctalia wassimply never given one. Adding a guard is plausible but it is a decision about
what darwin should get, not a repair the update forced.
flake.nix:137still listsx86_64-darwininsystems, which nixpkgs 26.11dropped. No real host is affected — both darwin hosts are
aarch64-darwin—so removing it is a deliberate platform-support change, not a mechanical fix.