Skip to content

build: upgrade judge toolchains to Python 3.14, Java 25 and Kotlin 2.4 - #25

Merged
RyPope merged 2 commits into
mainfrom
chore/judge-versions
Oct 31, 2026
Merged

RyPope merged 2 commits into
mainfrom
chore/judge-versions

Conversation

@RyPope

@RyPope RyPope commented Oct 31, 2026 •

Copy link
Copy Markdown
Owner

Moves the judge onto current releases. Python 3.14 and Java 25 are also what most interview platforms now judge with, so solutions behave the same here as in a real interview.

Changes

From To
Runner Python 3.12.15 3.14.10
Runner JDK (Temurin) 21.0.5 25.0.5 (LTS)
Kotlin 2.0.21 2.4.21 (SHA-256 matches JetBrains' published .sha256)
App image, CI, make setup Python 3.12 3.14, so there is one Python line
C++ Clang 19 (Debian) unchanged; it already supports C++23
  • ruff: now targets py314. Its formatter switches multi-exception handlers to 3.14's unparenthesised except A, B: form (PEP 758), applied in 3 files.
  • Dependabot: the ignore rules from chore(deps): keep Python and Node on their current lines in Docker images #15 still apply, so patch releases within 3.14 and 25 keep arriving automatically.
  • Not 3.15: it's only weeks old and newer than what interview platforms judge with.

Verification

  • make test-runner: 61 passed on the new toolchains. The only warning is Python 3.14 deprecating fork() in a multi-threaded process, inside one test, not in the runner.
  • Backend: 189 passed on a Python 3.14 venv; ruff clean.
  • Live stack /api/status: Python 3.14.10, OpenJDK 25.0.5, Clang 19.1.7, kotlinc 2.4.21.
  • make validate-content (3 problems, 0 errors) and make smoke (Java, C++ and Kotlin references accepted 71/71; wrong answers detected).
  • No regressions in references: sample_refs -n 80 (seed 7) on a scratch instance, run on both this branch and main's toolchain. The verdicts are identical: Python 79/79, Java 74/79, C++ 76/78, Kotlin 2/2. The same 7 failures appear on both and come from upstream test cases that break their problems' constraints.

Runner: Python 3.14.10, Temurin JDK 25.0.5, Kotlin 2.4.21 (checksum matches
JetBrains' published .sha256). The app, CI and local tooling move to Python 3.14
too, so there is one Python line; ruff now targets py314.
@RyPope RyPope changed the title build: judge with LeetCode's versions: Python 3.14 and Java 25 build: upgrade judge toolchains to Python 3.14, Java 25 and Kotlin 2.4 Oct 31, 2026
@RyPope
RyPope merged commit 7996df0 into main Oct 31, 2026
5 checks passed
@RyPope
RyPope deleted the chore/judge-versions branch October 31, 2026 15:57
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