Move Ruby to 3.4 and the flake to today's nixpkgs-unstable

Merged
JE
2d ago
+8-8

Follow-up to #932. Today's nixpkgs-unstable has removed ruby_3_3, which the dev shell pins, so flake.lock stayed on August's nixpkgs for v0.15.1. This moves Ruby to 3.4 everywhere it's pinned, and moves the lock.

  • Ruby 3.3 → 3.4 in the three places that have to agree, since make check compiles the skill-eval patterns under Ruby's own regex engine: .mise.toml, both ruby/setup-ruby ruby-version inputs in test.yml (Integration Tests and Skill Evals), and ruby_3_4 in flake.nix's dev shell. CONTRIBUTING.md's requirement line follows.
  • flake.lock: nixpkgs c27cdad4 (2026-08-27) → 5adc5083 (2026-10-20), the current nixpkgs-unstable head. Nix's Go goes from 1.26.7 to 1.26.9. vendorHash doesn't change.

Nix is still a patch behind the release binaries. go.mod's toolchain line asks for 1.26.10 (GO-2026-6809), and nixpkgs master has it, but unstable doesn't yet. buildGoModule builds with the Go nixpkgs gives it, so the flake builds with 1.26.9 until a later flake.lock bump takes Nix to Go 1.26.10 once unstable has it.

Verified on Linux x86_64, in the nixos/nix image scripts/update-nix-flake.sh pins:

  • nix eval --raw .#devShells.x86_64-linux.default.drvPath resolves. With ruby_3_3 put back on the new lock, the same eval fails with nixpkgs' removal error, so the Ruby move is what makes the bump possible.
  • scripts/nix-build-check.sh, the "Build the flake" step, passes with the existing vendorHash; the binary prints basecamp version 0.16.0, and go version on it reads go1.26.9.
  • make check passes under Ruby 3.4.10, check-eval-patterns (199 patterns across 34 case files) and check-eval-harness included. The dev shell's ruby_3_4, 3.4.11 on this lock, compiles the same 199.

Summary by cubic

Moves the dev toolchain to Ruby 3.4 everywhere it's pinned and updates the flake to today's nixpkgs-unstable. nixpkgs-unstable removed ruby_3_3, which is why flake.lock was still pinned to August's nixpkgs.

The Ruby pins have to agree because make check compiles the skill-eval patterns under Ruby's own regex engine: .mise.toml, both ruby/setup-ruby inputs in test.yml, the dev shell's ruby_3_4 in flake.nix, and the requirement line in CONTRIBUTING.md all move to 3.4.

Notes

  • The flake now builds with Go 1.26.9; go.mod's toolchain asks for 1.26.10, which nixpkgs master has but unstable doesn't yet, so a later flake.lock bump will pick it up.
  • vendorHash is unchanged; the existing Nix build check passes with the new lock.