Ruby 4.0.1と3.2.10をdevcontainerに追加

rails/devcontainer

rails/devcontainerがRuby 4.0.1および3.2.10をサポートするようになりました。デフォルトバージョンが4.0.1に更新され、devcontainer機能のバージョンも2.1.3に引き上げられています。

背景

Ruby 4.0.1のリリースに伴い、#108でdevcontainerへの対応が要求されました。rails/devcontainerは複数のRubyバージョンを .github/ruby-versions.json で管理しており、新しいRubyリリースごとにこのリストと各種設定ファイルを更新する必要があります。

本PRはこの要求に対応し、Ruby 4.0.1を追加すると同時に、3.2系の最新版である3.2.10も追加しています。

技術的な変更

.github/ruby-versions.json に2つのバージョンが追加されました。

[
    "4.0.1",
    "4.0.0",
    "3.4.8",
    // ...
    "3.3.0",
    "3.2.10",
    "3.2.9",
    // ...
]

バージョン配列は降順でソートされており、4.0.1が先頭に配置されています。3.2.10は3.3.0の直後、3.2.9の直前に挿入されています。

デフォルトバージョンの更新に伴い、features/src/ruby/devcontainer-feature.jsonversion フィールドが2.1.2から2.1.3にバンプされました。

{
    "id": "ruby",
    "version": "2.1.3",
    "options": {
        "version": {
            "type": "string",
            "default": "4.0.1",
            "description": "The ruby version to be installed"
        }
    }
}

options.version.default が4.0.0から4.0.1に変更され、新規ユーザーはデフォルトで最新の4.0.1を使用することになります。

テストコードも新しいデフォルトバージョンを反映するよう更新されました。features/test/ruby/test.shfeatures/test/ruby/with_rbenv.sh で、バージョン確認の期待値が4.0.0から4.0.1に変更されています。

check "Ruby version is set to 4.0.1" bash -c "mise use -g ruby | grep 4.0.1"

設計判断

JSONのインデントスタイルを4スペースに統一する変更 が含まれています。

lib/add_ruby_version.rbwrite_json メソッドが修正され、JSON.pretty_generateindent: " " オプションが追加されました。

def write_json(relative_path, data)
  json = JSON.pretty_generate(data, indent: "    ")
  File.write(path_for(relative_path), json + "\n")
end

これまでRubyのデフォルト2スペースインデントで生成されていたJSONファイルが、4スペースで統一されるようになります。test/add_ruby_version_test.rb にインデント検証のテストケースが追加されており、この変更が意図的なものであることを示しています。

content = File.read(File.join(@temp_dir, ".github/ruby-versions.json"))
assert_match(/^    "3\.4\.0"/, content, "Should use 4-space indentation")

まとめ

本PRは新しいRubyバージョンの追加に加え、JSONファイルのフォーマット規則を明確化しています。バージョン管理、デフォルト値の更新、テストケースの修正を一貫して行い、devcontainer機能のバージョンバンプによって変更の影響範囲を明示しています。

記事メタデータ

Generated by:
Claude Sonnet 4.5 for DiffDaily

この記事はAIによって自動生成されています。内容の正確性については、必ずソースコードやPRを確認してください。

品質レビュー結果

Review Status:
リトライ後承認
Review Count:
2回 (改善を経て承認)
Reviewed by:
Gemini 2.5 Pro for DiffDaily

Review Criteria:

記事構成 ✓ PASS

Title, Context, Technical Detailの存在と明確さ

リード文(総論)、各論(背景、技術的変更、設計判断)、まとめ(結論)の3部構成が明確に適用されており、読者が変更の全体像を把握しやすい構成になっています。

カスタムMarkdown構文 ✓ PASS

シンタックスハイライト・GitHubリンク記法の正確性

ファイル名付きシンタックスハイライトやIssueリンクの記法が正しく使用されており、技術記事としての体裁が整っています。

対象読者への適合性 ✓ PASS

エンジニア向けの適切な技術レベルと表現

devcontainerやRubyのバージョン管理に知見のあるエンジニアを対象としており、冗長な説明がなく専門的な内容に集中できる記事になっています。

パラグラフ・ライティング ✓ PASS

トピックセンテンス・1段落1トピック・段落長

各セクション・各パラグラフが「総論→各論」の構造で書かれ、トピックセンテンスが明確なため、非常に高い可読性を実現しています。

Diff内容との照合 ✓ PASS

コードブロックとDiff内容の一致

記事内のすべてのコードスニペットは、提供されたDiffの内容を正確に反映しており、信頼性が高いです。

技術用語の正確性 ✓ PASS

技術用語の正確な使用

`devcontainer-feature`、`mise`、`JSON.pretty_generate`などの技術用語が文脈に応じて正しく使用されています。

説明の技術的正確性 ✓ PASS

技術的主張の正確性と論理性

バージョンアップ、デフォルト値の変更、インデント統一といった各変更点の技術的な説明が論理的かつ正確です。

事実の突合 ✓ PASS

PR情報による主張の裏付け(ハルシネーション検出)

PRのDescriptionやDiffで裏付けられない主張はなく、すべての記述が提供された情報源の範囲内に収まっています。

数値・固有名詞の確認 ✓ PASS

PR番号・コミットID・バージョン等の正確性

Rubyのバージョン番号(4.0.1, 3.2.10)、Issue番号(#108)、devcontainer-featureのバージョン番号(2.1.3)など、すべての数値・固有名詞が正確です。

タイトル・説明との一致 ✓ PASS

記事タイトル・説明とPR内容の一致

PRのシンプルなタイトル「Add new Rubies」を、「Ruby 4.0.1と3.2.10をdevcontainerに追加」と具体化しており、記事の内容を的確に要約しています。

外部知識の正確性 ✓ PASS

PRに記載のない外部知識(LTS、サポート状況など)の不使用

PRの情報源の範囲を超えた外部知識(サポート状況など)の記述はなく、事実に基づいた記事となっています。

時間表現の正確性 ✓ PASS

時間表現がPR情報と一致しているか

時間軸を歪めるような表現はなく、PRで実施された変更を客観的に記述しています。