Repository navigation
Move Ruby to 3.4 and the flake to today's nixpkgs-unstable - #935
Conversation
nixpkgs-unstable has removed ruby_3_3 ("ruby_3_3 has been removed, as it
will reach end-of-life upstream during Nixpkgs 26.11's support cycle"),
so the dev shell no longer evaluates on a current lock; that is why #932
left flake.lock on 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, and
the dev shell in flake.nix all move to 3.4, along with the requirement
line in CONTRIBUTING.md.
flake.lock moves nixpkgs from c27cdad4 (2026-08-27) to 5adc5083
(2026-10-20), taking the Nix build from Go 1.26.7 to 1.26.9. vendorHash
is unchanged. go.mod's toolchain line asks for 1.26.10, which nixpkgs
master has and unstable doesn't yet; buildGoModule builds with the Go it
is given, so a later flake.lock bump takes Nix to 1.26.10 once unstable
has it.
Sensitive Change Detection (shadow mode)This PR modifies control-plane files:
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
🔵 Needs a closer look
Nix builds remain on Go 1.26.9, identified in #932 as affected by GO-2026-6809, so the remaining security risk needs human acceptance.
No open issues 🎉
What changed in this PR
Updates Ruby to 3.4 across development and CI, allowing the nixpkgs-unstable refresh following #932.
Changes:
- Aligns Ruby pins and contributor requirements.
- Refreshes nixpkgs, moving Nix builds to Go 1.26.9; the Go 1.26.10 security update remains pending.
[!TIP]
If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or rungh pr ready --undo.
Click "Ready for review" or rungh pr readyto reengage.
| File | Description |
|---|---|
| flake.nix | Uses Ruby 3.4 in the development shell. |
| flake.lock | Updates the pinned nixpkgs revision. |
| CONTRIBUTING.md | Documents the Ruby 3.4 requirement. |
| .mise.toml | Pins local Ruby to 3.4. |
| .github/workflows/test.yml | Updates both CI Ruby pins to 3.4. |
Review effort: Balanced
|
@codex review |
|
Codex Review: Didn't find any major issues. Keep them coming! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Flagged for human review — the remaining Go 1.26.9 exposure in Nix builds is a security trade-off for the author to accept or not, so it stays open. What I checked on 5292e49:
Options:
|
|
Review threads: none on 5292e49. |
Follow-up to #932. Today's nixpkgs-unstable has removed
ruby_3_3, which the dev shell pins, soflake.lockstayed on August's nixpkgs for v0.15.1. This moves Ruby to 3.4 everywhere it's pinned, and moves the lock.make checkcompiles the skill-eval patterns under Ruby's own regex engine:.mise.toml, bothruby/setup-rubyruby-versioninputs intest.yml(Integration Tests and Skill Evals), andruby_3_4inflake.nix's dev shell.CONTRIBUTING.md's requirement line follows.flake.lock: nixpkgsc27cdad4(2026-08-27) →5adc5083(2026-10-20), the currentnixpkgs-unstablehead. Nix's Go goes from 1.26.7 to 1.26.9.vendorHashdoesn'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.buildGoModulebuilds with the Go nixpkgs gives it, so the flake builds with 1.26.9 until a laterflake.lockbump takes Nix to Go 1.26.10 once unstable has it.Verified on Linux x86_64, in the
nixos/niximagescripts/update-nix-flake.shpins:nix eval --raw .#devShells.x86_64-linux.default.drvPathresolves. Withruby_3_3put 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 existingvendorHash; the binary printsbasecamp version 0.16.0, andgo versionon it readsgo1.26.9.make checkpasses under Ruby 3.4.10,check-eval-patterns(199 patterns across 34 case files) andcheck-eval-harnessincluded. The dev shell'sruby_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 whyflake.lockwas still pinned to August's nixpkgs.The Ruby pins have to agree because
make checkcompiles the skill-eval patterns under Ruby's own regex engine:.mise.toml, bothruby/setup-rubyinputs intest.yml, the dev shell'sruby_3_4inflake.nix, and the requirement line inCONTRIBUTING.mdall move to 3.4.Notes
go.mod's toolchain asks for 1.26.10, which nixpkgs master has but unstable doesn't yet, so a laterflake.lockbump will pick it up.vendorHashis unchanged; the existing Nix build check passes with the new lock.Written for commit 5292e49. Summary will update on new commits.