Skip to content

Add Ruby 3.2 and 4.0, bump all pinned versions to latest - #42

Open
tas50 wants to merge 2 commits into
chef:mainfrom
tas50:add-ruby-32-and-40
Open

Add Ruby 3.2 and 4.0, bump all pinned versions to latest#42
tas50 wants to merge 2 commits into
chef:mainfrom
tas50:add-ruby-32-and-40

Conversation

@tas50

@tas50 tas50 commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Adds Ruby 3.2 and Ruby 4.0 images and brings every existing pin up to the
newest patch release in its series.

New images

Version Targets
Ruby 3.2.11 ubuntu/24.04, windows/2019
Ruby 4.0.6 ubuntu/24.04, windows/2019

These follow the same layout 3.4 already uses. The older distros are
deliberately skipped for both: Ruby 3.2+ needs OpenSSL 1.1+, so CentOS 7
(OpenSSL 1.0.2), Fedora 22 and Ubuntu 18.04 cannot build them.

Version bumps

Every pinned version moves to the newest patch in its series, each with the
matching sha256 published by ruby-lang.org:

Series Before After
2.6 2.6.9 2.6.10
2.7 2.7.5 2.7.8
3.0 3.0.3 3.0.7
3.1 3.1.1 3.1.7
3.3 (Windows) 3.3.3 3.3.12
3.4 3.4.2 3.4.10

Windows images move to the matching RubyInstaller -1 releases, and the
MSYS2 devkit installer goes from 2024-05-07 / 2025-02-21 to 2026-06-11.

The 3.1.7 pinned image stays on 3.1.7, which is already the newest 3.1
patch, and picks up only the MSYS2 bump. That makes it byte-identical to
3.1/windows/2019 for now — kept separate because they publish different
tags.

The latest tag

latest had drifted and was inconsistent: Ruby 3.0 held it for most Linux
images, 3.4 for ubuntu-24.04, and dobi.yaml pointed it at 3.1 for Windows
while the Buildkite pipeline pointed it at 3.4. It now belongs to 4.0 alone,
in both places.

Drive-by fixes

  • Ruby 3.3 had a Dockerfile but no build wiring in either dobi.yaml or the
    Windows pipeline, so it never actually shipped. It now has a pipeline step.
  • 3.4/windows/2019 installed Ruby 3.4 into C:\ruby33, copy-pasted from the
    3.3 Dockerfile. It now installs into C:\ruby34.

Verification

  • Every sha256 checked against the checksum published by ruby-lang.org for
    that release's .tar.xz.

  • Every Ruby tarball, RubyInstaller and MSYS2 URL confirmed reachable.

  • Every dobi.yaml context and every pipeline -f path confirmed to point at
    a Dockerfile that exists, with exactly one latest owner on each side.

  • Both new Linux images built from source locally and smoke tested:

    Image RUBY_VERSION openssl/yaml/zlib gem bundler
    4.0/ubuntu/24.04 4.0.6 ok 4.0.16 4.0.16
    3.2/ubuntu/24.04 3.2.11 ok 3.4.19 2.4.19

    Those builds ran on arm64; the Windows images and the amd64 builds have not
    been built locally and will get their first real exercise in CI.

New images
----------
Ruby 3.2 (3.2.11) and Ruby 4.0 (4.0.6) on Ubuntu 24.04 and Windows
Server 2019, following the layout 3.4 already uses. Older distros are
deliberately skipped for these versions: Ruby 3.2+ requires OpenSSL
1.1+, so CentOS 7, Fedora 22 and Ubuntu 18.04 cannot build them.

Version bumps
-------------
Every pinned Ruby version moves to the newest patch release in its
series, with the matching sha256 from ruby-lang.org:

  2.6.9  -> 2.6.10      3.1.1 -> 3.1.7
  2.7.5  -> 2.7.8        3.3.3 -> 3.3.12 (Windows)
  3.0.3  -> 3.0.7        3.4.2 -> 3.4.10

Windows RubyInstaller builds move to the matching -1 releases, and the
MSYS2 devkit installer goes from 2024-05-07/2025-02-21 to 2026-06-11.
The 3.1.7 pinned image stays on 3.1.7 (already the newest 3.1 patch)
and picks up only the MSYS2 bump.

The `latest` tag
----------------
`latest` was stale and inconsistent: Ruby 3.0 held it for most Linux
images, 3.4 for ubuntu-24.04, and dobi.yaml pointed it at 3.1 for
Windows while the Buildkite pipeline pointed it at 3.4. It now belongs
to 4.0 alone, in both dobi.yaml and the Windows pipeline.

Fixes
-----
- Ruby 3.3 had a Dockerfile but no build wiring, so it never shipped.
  It now has a Windows pipeline step.
- 3.4/windows installed Ruby 3.4 into C:\ruby33, copied from the 3.3
  Dockerfile. It now installs into C:\ruby34.

Verified every Ruby tarball, RubyInstaller and MSYS2 URL resolves, and
every sha256 matches the checksum published by ruby-lang.org.

Signed-off-by: Tim Smith <tsmith84@proton.me>
@tas50
tas50 force-pushed the add-ruby-32-and-40 branch from 2756f9d to 71fb544 Compare August 24, 2026 05:47
@tas50

tas50 commented Aug 24, 2026

Copy link
Copy Markdown
Contributor Author

@tpowell-progress care to look at this please?

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.

2 participants