Skip to content

ci: Ask setup-ruby for the Ruby 3.4 series, not .ruby-version's exact patch - #181

Merged
joelmoss merged 4 commits into
masterfrom
ci/ruby-3.4-series
Oct 23, 2026
Merged

joelmoss merged 4 commits into
masterfrom
ci/ruby-3.4-series

Conversation

@joelmoss

Copy link
Copy Markdown
Owner
{
  "schema_version": 1,
  "head": "33dd668a2ee512930905e1a714234377a7f4a022",
  "base": "master",
  "gate": {
    "test-all": {
      "pass": 812,
      "fail": 0,
      "skip": 7
    }
  },
  "session_kind": "interactive",
  "pregate": "pass @38b58e2e23d3 (6 checks, current for 33dd668a2ee5)",
  "issues": {
    "fixes": [],
    "refs": [],
    "flakes": []
  }
}

Summary

Last night's canary failed on both Ubuntu legs before any test ran, in ruby/setup-ruby:

Error: Unavailable version 3.4.8 for ruby on ubuntu-26.04
  Only the latest patch release of each series is built for newer runner images.

ubuntu-latest started moving to Ubuntu 26.04 on October 19 (actions/runner-images#14748). setup-ruby only builds the newest patch of each series there. Every setup-ruby step that gave no ruby-version read .ruby-version, which pinned 3.4.8.

  • CI asks for the series. Every ruby/setup-ruby step in canary.yml, main.yml and release.yml now asks for ruby-version: '3.4'. In main.yml's package-manager matrix, the default legs now map to '3.4'; the '4.0' legs are unchanged, and the if: matrix.ruby == 'default' conditions still match. release.yml's verify jobs already asked for '3.4', but six jobs (platforms, build-darwin, build-linux, build-windows, build-plain, publish) did not.
  • release.yml matters on Windows too. setup-ruby's Windows builds stop at 3.4.11, so an exact 3.4.12 cannot install there. With only the .ruby-version bump, build-windows would have failed on the next release.
  • .ruby-version is 3.4.12, and AGENTS.md says so too.
  • Gemfile.lock gains the arm64-darwin-27 platform, which Bundler added on a macOS 27 host.

Test Coverage

Application code paths: 0. The changes are CI workflow config, .ruby-version, one lockfile platform and one doc line. No test reads any of them, so the CI runs are their test.
Coverage gate: could not determine percentage (no application code paths), so it was skipped.
Tests ran: test-all count unavailable (runner summary not recognised; the suites printed 812 Ruby runs, Go ok, 9 Bun tests)

Pre-Landing Review

One finding, fixed with approval: release.yml's six setup-ruby steps read .ruby-version (build-windows cannot install 3.4.12 from setup-ruby's Windows table). A second pass found nothing.

Gate edits: none detected (12 listed, 1 read; patterns: RH-1,RH-3,RH-4,RH-12,RH-13,RH-14,RH-15,RH-16; unlisted idioms: none)

Adversarial review: the Claude pass completed and found no defect in the diff. It noted the bundled-with gap below for the PR run to settle.

Outside review (Codex): missing coverage. Its verdict was unverified: it reported no findings but without severity tags.

Exploratory QA

Functional surface: CI jobs, smoke budget, 4 probes. Every probe was a read of GitHub state.

  • Pass: canary run 39931392704 on 716f25c succeeded on 6/6 jobs.
  • Pass: on Ubuntu 26.04, setup-ruby resolved '3.4' to 3.4.12.
  • Pass: on macOS 26, setup-ruby resolved '3.4' to 3.4.12.
  • Pass: on Windows 2025, setup-ruby resolved '3.4' to 3.4.11.
  • Failed, then fixed: setup-ruby v1's Windows table has no 3.4.12, which release.yml's build-windows would have asked for. The release.yml commit fixes it.
  • Not run: main.yml (this PR runs it) and release.yml, which a dry_run dispatch would check.

Design Review

No frontend files changed, so design review was skipped.

Eval Results

No prompt-related files changed, so evals were skipped.

Scope Drift

Scope Check: CLEAN. The one incidental change is the Gemfile.lock platform line, committed on its own.

Plan Completion

Plan completion audit: not run (no plan is bound to this branch and no docs/designs/ file matches). Fix: add "Plan: " to the PR body, or run /autoplan.

Verification Results

No plan-specific verification items.

Watch in this PR's run:

  • ruby-test: the appraisal gemfiles say BUNDLED WITH 2.6.8, and they now run on a new image and patch.
  • The package-manager '4.0' legs: they now resolve to 4.0.9, published today.
  • first-run, bun-test and rubocop: the canary covers none of these.

TODOS

No TODO items completed in this PR.

Documentation

Status: current. No documentation edits were needed.

Scope: the branch diff against base 1001765 (three workflow files pinning ruby/setup-ruby to the '3.4' series) plus the unstaged .ruby-version (3.4.8 to 3.4.12), AGENTS.md (the matching Ruby version line) and Gemfile.lock (an added arm64-darwin-27 platform). I inventoried every authored doc and read AGENTS.md, README.md and the consumer guide's CI snippet against these changes.

Documentation health:

  • AGENTS.md: current, and its 3.4.12 line matches .ruby-version.
  • README.md: current, since it says Ruby 3.4 or newer and the Docker examples use the 3.4 series.
  • docs/guides/rubygem_npm_dependencies.md: current, as its setup-ruby snippet is for consumer apps.
  • docs/AUDIT.md and docs/plans/*: historical records, left untouched.
  • CLAUDE.md, CODING_STANDARDS.md and docs/agents/*: reviewed, no change needed.

Coverage debt: AGENTS.md's CI section does not note that every setup-ruby step pins '3.4' (optional, not added). Diagram drift: none.

Test plan

  • bin/test-all under Ruby 3.4.12 (compile, Go, Ruby with STAGE_A=1, Bun): all ok; 812 runs, 0 failures, 0 errors, 7 skips
  • gh workflow run canary.yml --ref ci/ruby-3.4-series: 6/6 jobs green, with Ubuntu on 26.04 / Ruby 3.4.12
  • jactionlint on the three workflows: no new findings (release.yml's 7 cache-poisoning errors are on master too)
  • main.yml on this PR
  • gh workflow run release.yml --ref ci/ruby-3.4-series -f dry_run=true

🤖 Generated with Claude Code

joelmoss and others added 4 commits October 23, 2026 10:22
Ubuntu 26.04 runners only carry each series' newest patch, so 3.4.8 is a 404
there and the canary's Linux legs failed in setup-ruby.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Six release jobs read .ruby-version. On Ubuntu 26.04 only each series'
newest patch exists, and setup-ruby's Windows builds trail it: they stop
at 3.4.11, so an exact 3.4.12 cannot install in build-windows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bundler adds the host platform on macOS 27.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-23T09:46:46.604824Z 33dd668 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@joelmoss
joelmoss merged commit d3c748e into master Oct 23, 2026
30 checks passed
@joelmoss
joelmoss deleted the ci/ruby-3.4-series branch October 23, 2026 10:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant