Skip to content

Update language versions across Dockerfiles, TOML, docs and CI (Java 24.0.2, Rust 1.89.0, et al.)#79

Merged
toshi0806 merged 5 commits into
mainfrom
issue-78-update-java-rust-versions
May 11, 2026
Merged

Update language versions across Dockerfiles, TOML, docs and CI (Java 24.0.2, Rust 1.89.0, et al.)#79
toshi0806 merged 5 commits into
mainfrom
issue-78-update-java-rust-versions

Conversation

@toshi0806
Copy link
Copy Markdown
Member

@toshi0806 toshi0806 commented May 11, 2026

resolve #78

Summary

Dockerfile, Dockerfile.lite, toml/*.toml および関連ドキュメント・ワークフローの言語バージョン表記を、実際に利用するバージョンに揃えました。

主目標は Issue #78 が指摘した Java / Rust 不整合の解消ですが、レビュー過程で他言語にも同じ種類のドリフトが見つかったため、本 PR で一括同期しています。

主要な変更 (Issue #78 直接対応)

Tool Before After
Java OpenJDK 23.0.1 OpenJDK 24.0.2
Rust 1.87.0 1.89.0

追従して同期したバージョン

ドキュメント (README.md / IMAGE_SIZE_ANALYSIS.md / pr-test.yml) で Dockerfile の実態と食い違っていた他の言語バージョンも、Dockerfile の値に揃えました。

Tool Before (docs) After (Dockerfile に同期)
Python 3.13.5 3.13.7
Node.js 22.16.0 22.19.0
Ruby 3.4.4 (with GC patch) 3.4.5
Erlang 28.0 28.0.2
GCC 12.3.0 13

Changes

Build configuration

  • Dockerfile: RUST_VERSION (L181), JDK download URLs (L422 / L426 を curl -fL に強化), container-info.txt (L472)
  • Dockerfile.lite: 同上 (L137 / L302 / L306 / L352)

TOML (single source of truth)

  • toml/installscript.toml: Java display 表記と JDK 24.0.2 ダウンロード URL。curl -fLtar --strip-components 1 に修正
  • toml/install-script.toml: Rust display, license URL, インストールスクリプト中の rust_version / rust_channel
    • L58-L60 のバージョン履歴コメントは「リリース済み」表記に整理 (1.87.0 / 1.88.0 / 1.89.0)
    • L55 の display 例も Java24 (OpenJDK 24.0.2) に同期

Documentation

  • README.md / CLAUDE.md / IMAGE_SIZE_ANALYSIS.md: 上記の通り、Dockerfile 実態に全バージョンを同期。IMAGE_SIZE_ANALYSIS.md では誤って残っていた「Rust 除外」記述も削除
  • CLAUDE.md: 「toml/*.toml を single source of truth、Dockerfile はその同期先」と明確化

CI

  • .github/workflows/pr-test.yml: PR build verification の "Verified Components" を Dockerfile に同期

Verification

JDK 24.0.2 ダウンロード URL は jdk.java.net/archive で取得・到達確認済み:

  • x64: https://download.java.net/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-x64_bin.tar.gz
  • aarch64: https://download.java.net/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-aarch64_bin.tar.gz

ローカル検証 (Lite)

```
$ docker run --rm atcoder-lite:2025 bash -c "java --version && rustc --version"
openjdk 24.0.2 2025-07-15
OpenJDK Runtime Environment (build 24.0.2+12-54)
OpenJDK 64-Bit Server VM (build 24.0.2+12-54, mixed mode, sharing)
rustc 1.89.0 (29483883e 2025-08-04)
```

CI 検証 (Full + Lite)

[build-all] 強制ビルド (run 25651883572) が 53 分 9 秒で success。Lite / Full ともに Java 24.0.2 / Rust 1.89.0 を組み込んだイメージのビルド確認済み。

なお CI の auto-skip 判定バグ (Dockerfile / toml / yaml 変更を docs only と誤判定) は別 Issue #80 として登録済みです。

Test plan

  • JDK 24.0.2 URL の到達性確認
  • ローカル Lite ビルドで Java / Rust バージョン確認
  • CI: `[build-all]` 強制ビルドで Lite + Full の linux/amd64 + linux/arm64 success 確認

- Dockerfile / Dockerfile.lite: bump RUST_VERSION, JDK download URLs,
  and container-info.txt
- toml/installscript.toml: Java display and download URL → 24.0.2
- toml/install-script.toml: Rust display, license URLs, and version
  references → 1.89.0; restore 1.87.0 entry in the version-history
  comment block
- README.md / CLAUDE.md / IMAGE_SIZE_ANALYSIS.md: align documented
  Java/Rust versions
- .github/workflows/pr-test.yml: update PR-build verification list

JDK 24.0.2 URLs verified against https://jdk.java.net/archive/.
Verified locally with atcoder-lite:2025 build:
  - openjdk 24.0.2 2025-07-15
  - rustc 1.89.0 (29483883e 2025-08-04)
Copilot AI review requested due to automatic review settings May 11, 2026 04:37
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aligns the Java and Rust version strings/URLs across the container build files, TOML “source of truth” configs, documentation, and CI messaging to match the intended runtime versions (Java 24.0.2, Rust 1.89.0).

Changes:

  • Update Rust version references to 1.89.0 (Dockerfiles, TOML, docs, CI message).
  • Update OpenJDK download URLs and display strings to 24.0.2 (Dockerfiles, TOML, docs, CI message).
  • Refresh container-info and related documentation version strings to reflect the new Java/Rust versions.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
toml/installscript.toml Updates Java display string and JDK 24.0.2 download URL for the Java install script.
toml/install-script.toml Updates Rust display/version variables and Rust license URLs to 1.89.0; adjusts version-history comments.
Dockerfile Bumps RUST_VERSION to 1.89.0 and updates OpenJDK URLs + container-info string.
Dockerfile.lite Same as Dockerfile for the lite image (Rust/Java versions + container-info).
README.md Updates listed Java/Rust versions in supported language list.
CLAUDE.md Updates the “Supported Languages and Versions” Java/Rust entries.
IMAGE_SIZE_ANALYSIS.md Updates Java version mention in the “new version” language list.
.github/workflows/pr-test.yml Updates the hardcoded “Verified Components” Java/Rust version strings in the PR comment template.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread toml/installscript.toml Outdated

install = '''
curl https://download.java.net/java/GA/jdk24.0.1/24a58e0e276943138bf3e963e6291ac2/9/GPL/openjdk-24.0.1_linux-x64_bin.tar.gz | sudo tar zx -C /usr/local --strip-component 1
curl https://download.java.net/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-x64_bin.tar.gz | sudo tar zx -C /usr/local --strip-component 1
Comment thread toml/install-script.toml Outdated
@@ -54,10 +54,10 @@ language = 'Rust'
# 'C++23 (Clang 18.1.8)'
# 'Java24 (OpenJDK 24.0.1)'
Comment thread CLAUDE.md
Comment on lines 107 to +114
## Supported Languages and Versions

The container includes the following languages (versions as of January 2025):

### Full Version (Dockerfile)
- **Python** 3.13.7 (with LTO and BOLT optimizations on x86_64)
- **Node.js** 22.19.0
- **Java** OpenJDK 23.0.1
- **Java** OpenJDK 24.0.2
Comment thread IMAGE_SIZE_ANALYSIS.md Outdated
Comment on lines 61 to 68
@@ -62,7 +62,7 @@ AtCoder コンテナの各バージョンにおける言語・コンポーネン
- **Python**: 3.13.5(LTO/BOLT最適化)
- **Node.js**: 22.16.0
- **Ruby**: 3.4.4(GCパッチ適用)
- **Java**: JDK 23.0.1
- **Java**: JDK 24.0.2
- **Erlang**: 28.0
- **Elixir**: 1.18.4
- **Rust**: ❌ 除外
Comment thread README.md Outdated
Comment on lines 30 to 32
- **Python3** (3.13.5 with LTO/BOLT optimizations)
- **JavaScript** (Node.js 22.16.0)
- **C++** (g++ 12.3.0, C++23 support)
Comment thread .github/workflows/pr-test.yml Outdated
Comment on lines 105 to 111
### 🔍 Verified Components
- ✅ Python 3.13.5
- ✅ Ruby 3.4.4
- ✅ Rust 1.87.0
- ✅ Rust 1.89.0
- ✅ Node.js 22.16.0
- ✅ Java 23.0.1
- ✅ Java 24.0.2
- ✅ GCC 13.3.0
toshi0806 added 2 commits May 11, 2026 14:00
- toml/installscript.toml: --strip-component → --strip-components
  (GNU tar's canonical long option)
- toml/install-script.toml: update Java display example to 24.0.2
- CLAUDE.md: drop the stale "as of January 2025" date; point readers
  to toml/*.toml and the Dockerfiles as the source of truth
- IMAGE_SIZE_ANALYSIS.md: Rust is no longer excluded; sync version
  list with the Dockerfiles (Python 3.13.7, Node.js 22.19.0, etc.);
  drop the obsolete "GCパッチ適用" note for Ruby
- README.md: sync remaining language versions (Ruby/Python/Node.js/
  C++/Erlang) with the actual image versions
- .github/workflows/pr-test.yml: sync the hardcoded "Verified
  Components" list with the Dockerfile versions
The auto-skip detection script misclassifies Dockerfile/toml/yaml
changes as documentation-only, so previous commits on this PR were
skipped without building. This empty commit forces a [build-all]
to verify the Java 24.0.2 / Rust 1.89.0 changes in CI.
@toshi0806
Copy link
Copy Markdown
Member Author

Copilot のレビュー指摘 6 件に対応しました。

対応内容 (commit 65498b7)

  1. toml/installscript.toml L18: --strip-component 1--strip-components 1 (GNU tar の正式オプション名)
  2. toml/install-script.toml L55: display 例の 'Java24 (OpenJDK 24.0.1)''Java24 (OpenJDK 24.0.2)'
  3. CLAUDE.md L109: 古い "as of January 2025" を削除し、toml/*.toml と Dockerfile を真の情報源とする旨に修正
  4. IMAGE_SIZE_ANALYSIS.md: Rust が「除外」となっていた表記を「(含む)」に変更し、「Rust の除外」セクションと「サイズ増加要因まとめ」表の該当行を削除。新バージョン一覧 (L62-68) を Dockerfile の実態 (Python 3.13.7 / Node.js 22.19.0 / Ruby 3.4.5 / Erlang 28.0.2 / Rust 1.89.0) に同期。Ruby の "GC パッチ適用" 注記も削除 (Dockerfile では既に no GC patch)
  5. README.md L25-34: 残りの言語バージョン (Ruby 3.4.4→3.4.5, Python 3.13.5→3.13.7, Node.js 22.16.0→22.19.0, GCC 12.3.0→13, Erlang 28.0→28.0.2) を Dockerfile に同期。Ruby の "with GC patch" も削除
  6. .github/workflows/pr-test.yml: Verified Components のハードコード値を同期 (Python 3.13.7, Ruby 3.4.5, Node.js 22.19.0, GCC 13)。動的取得への変更は本 PR スコープ外として見送り

CI 補足 (commit 2258713)

CI の auto-skip 検出ロジックが、本 PR の Dockerfile 変更を含むコミット (99f207a) ですらビルドをスキップ していました (Documentation-only change: true)。Dockerfile / toml / yaml の変更を「docs only」と誤分類しているようです。

これは本 PR 起因ではなく既存のスクリプトバグですが、このままでは Java 24.0.2 / Rust 1.89.0 が CI ビルドで検証されないため、[build-all] タグ付きの空コミットで強制ビルドさせました。auto-skip 検出ロジック自体の修正は別 Issue で扱うべき内容です。

ローカルでは Lite ビルドで Java 24.0.2 / Rust 1.89.0 の動作を確認済みです (PR description 参照)。

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.

Comment thread CLAUDE.md Outdated
## Supported Languages and Versions

The container includes the following languages (versions as of January 2025):
The container includes the following languages (see `toml/*.toml` and the Dockerfiles for authoritative versions):
Comment thread toml/installscript.toml Outdated

install = '''
curl https://download.java.net/java/GA/jdk24.0.1/24a58e0e276943138bf3e963e6291ac2/9/GPL/openjdk-24.0.1_linux-x64_bin.tar.gz | sudo tar zx -C /usr/local --strip-component 1
curl https://download.java.net/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-x64_bin.tar.gz | sudo tar zx -C /usr/local --strip-components 1
- CLAUDE.md: reword the Supported Languages intro so it matches the
  trailing Note that names toml/*.toml as the single source of truth
  (Dockerfiles are kept in sync, not co-authoritative)
- toml/installscript.toml: add curl -fL flags to the JDK download so
  HTTP errors fail loudly and redirects are followed (consistent with
  the Dockerfile's curl -L invocation)
@toshi0806
Copy link
Copy Markdown
Member Author

2 回目の Copilot 指摘 2 件に対応しました (commit 1dc7d15)。

対応内容

  1. CLAUDE.md L109: 直下の Note (「toml/*.toml が single source of truth」) との矛盾を解消

    • Before: (see toml/*.toml and the Dockerfiles for authoritative versions)
    • After: (toml/*.toml is the single source of truth; the Dockerfiles are kept in sync with it)
  2. toml/installscript.toml L18: curl-fL を付与

    • -f: HTTP エラー (4xx/5xx) で確実に失敗
    • -L: リダイレクト追従 (Dockerfile 側の curl -L と統一)
    • これにより、リダイレクト/エラーページが誤って tar に流れ込んで「分かりにくい失敗」になる事態を防止

CI 検証結果

[build-all] 強制ビルド (run 25651883572) が 53 分 9 秒で success しました。Lite / Full ともに Java 24.0.2 / Rust 1.89.0 を組み込んだイメージが正常にビルドされています。

なお、CI の auto-skip 判定バグ自体は別 Issue として登録済みです (#80)。

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.

Comment thread Dockerfile
Comment on lines 419 to 427
# Install Java (precompiled)
RUN case "$(uname -m)" in \
x86_64) \
curl -L https://download.java.net/java/GA/jdk23.0.1/c28985cbf10d4e648e4004050f8781aa/11/GPL/openjdk-23.0.1_linux-x64_bin.tar.gz | \
curl -L https://download.java.net/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-x64_bin.tar.gz | \
tar zx -C /usr/local --strip-components 1 \
;; \
aarch64) \
curl -L https://download.java.net/java/GA/jdk23.0.1/c28985cbf10d4e648e4004050f8781aa/11/GPL/openjdk-23.0.1_linux-aarch64_bin.tar.gz | \
curl -L https://download.java.net/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-aarch64_bin.tar.gz | \
tar zx -C /usr/local --strip-components 1 \
Comment thread Dockerfile.lite
Comment on lines 299 to 307
# Install Java (precompiled)
RUN case "$(uname -m)" in \
x86_64) \
curl -L https://download.java.net/java/GA/jdk23.0.1/c28985cbf10d4e648e4004050f8781aa/11/GPL/openjdk-23.0.1_linux-x64_bin.tar.gz | \
curl -L https://download.java.net/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-x64_bin.tar.gz | \
tar zx -C /usr/local --strip-components 1 \
;; \
aarch64) \
curl -L https://download.java.net/java/GA/jdk23.0.1/c28985cbf10d4e648e4004050f8781aa/11/GPL/openjdk-23.0.1_linux-aarch64_bin.tar.gz | \
curl -L https://download.java.net/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-aarch64_bin.tar.gz | \
tar zx -C /usr/local --strip-components 1 \
Comment thread README.md
Comment on lines 25 to +34
両イメージとも以下の言語に対応しています:

- **Java** (JDK 23.0.1)
- **Ruby** (3.4.4 with GC patch)
- **Java** (JDK 24.0.2)
- **Ruby** (3.4.5)
- **Elixir** (1.18.4)
- **Python3** (3.13.5 with LTO/BOLT optimizations)
- **JavaScript** (Node.js 22.16.0)
- **C++** (g++ 12.3.0, C++23 support)
- **Rust** (1.70.0)
- **Erlang** (28.0)
- **Python3** (3.13.7 with LTO/BOLT optimizations)
- **JavaScript** (Node.js 22.19.0)
- **C++** (g++ 13, C++23 support)
- **Rust** (1.89.0)
- **Erlang** (28.0.2)
@toshi0806 toshi0806 changed the title Update Java to 24.0.2 and Rust to 1.89.0 Update language versions across Dockerfiles, TOML, docs and CI (Java 24.0.2, Rust 1.89.0, et al.) May 11, 2026
Add -f to the JDK download in Dockerfile and Dockerfile.lite so
HTTP 4xx/5xx errors fail fast (curl exit non-zero) instead of
piping an error page into tar and surfacing as a confusing
extraction failure. Matches the Rust download's curl -fO earlier
in the same files.
@toshi0806
Copy link
Copy Markdown
Member Author

3 回目の Copilot 指摘 3 件に対応しました。

対応内容

Dockerfile / Dockerfile.lite (commit 885ae18)

JDK ダウンロードの curl -Lcurl -fL に変更。HTTP 4xx/5xx が返ったときに curl が non-zero で確実に失敗するようになり、エラーページを tar に流して分かりにくい extraction エラーになる事態を防止。同ファイル内の Rust ダウンロード (curl ... -fO) と整合します。

README.md スコープ指摘

PR タイトルと description を更新しました:

  • 新タイトル: Update language versions across Dockerfiles, TOML, docs and CI (Java 24.0.2, Rust 1.89.0, et al.)
  • description: Issue Update Java to 24.0.2 and Rust to 1.89.0 in Dockerfile #78 の主目標 (Java/Rust) と、レビュー過程で同期した他言語 (Python / Node.js / Ruby / Erlang / GCC) を分けて明示

CI ステータス

  • 最新コミット (1dc7d15) の CI run (25662083836) は 17s で auto-skip — 既知のバグ (build-staged.yml: auto-skip incorrectly classifies non-doc changes as docs-only #80) のため未検証ですが、過去の [build-all] 強制ビルド (run 25651883572) で Java 24.0.2 / Rust 1.89.0 の Lite + Full 両ビルドは既に success 確認済み
  • 885ae18 (-fL 修正のみ) は curl の挙動を厳密化する変更で、URL は変えていないので追加検証は不要と判断

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated no new comments.

@toshi0806 toshi0806 merged commit 0530bcf into main May 11, 2026
9 checks passed
@toshi0806 toshi0806 deleted the issue-78-update-java-rust-versions branch May 11, 2026 11:59
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.

Update Java to 24.0.2 and Rust to 1.89.0 in Dockerfile

2 participants