Skip to content

Conversation

@mernst
Copy link
Member

@mernst mernst commented Sep 11, 2025

Summary by CodeRabbit

  • New Features
    • Added Java 25 typecheck jobs in CI.
  • Tests
    • Updated test matrix to run on Java 25 across Ubuntu and Rocky Linux.
  • Chores
    • Migrated canary and CI workflows to Java 25, replacing Java 24 variants.
    • Set canary version to Java 25 for all pipelines.
    • Cleaned up variables and removed outdated comments related to Java 25 readiness.

@mernst mernst closed this Sep 11, 2025
@mernst mernst reopened this Sep 11, 2025
@coderabbitai
Copy link

coderabbitai bot commented Sep 11, 2025

📝 Walkthrough

Walkthrough

The CI configurations migrate canary and test matrices from Java 24/21 to Java 25 across Azure Pipelines and CircleCI. New Java 25 typecheck jobs are added, dependencies are rewired to 25-based jobs, canary_version macros are updated to 25, a testingSuffix variable is set empty, and prior Java 25 blocker comments are removed.

Changes

Cohort / File(s) Summary of changes
Azure Pipelines config
.azure/azure-pipelines.yml
Migrates canary and per-JDK jobs to JDK25; adds typecheck_latest_ubuntu_jdk25 and typecheck_bundled_ubuntu_jdk25 using mdernst/daikon-ubuntu-jdk25-plus; updates canary_jobs.dependsOn to 25 variants; retargets Ubuntu and Rocky Linux quick/nonquick/nontxt/misc/kvasir jobs to 25; defines empty testingSuffix.
Azure m4 defs/jobs
.azure/defs.m4, .azure/jobs.m4
Updates canary_version from 24 to 25; enables Ubuntu typecheck-latest for 25 by adding typecheck_latest_job(ubuntu, 25) and removing 25-blocker comments.
CircleCI config
.circleci/config.yml
Adds typecheck-latest-ubuntu-jdk25; updates typecheck-bundled-ubuntu-jdk25 steps; shifts workflows and matrices to JDK25 (Ubuntu/Rocky Linux/kvasir/misc); updates canary dependencies to 25; removes Java 25 readiness comment.
CircleCI m4 defs/config
.circleci/defs.m4, .circleci/config.yml.m4
Sets canary_version from 21 to 25; enables job_dependences(ubuntu, 25, typecheck-latest) by uncommenting; removes prior Java 25 blocker comment.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Dev as Developer
  participant CI as CI Orchestrator
  participant J25 as JDK25 Jobs
  participant TC25 as Typecheck JDK25
  participant Legacy as Legacy JDK{8,11,17,21,24}

  Dev->>CI: Push/PR
  Note over CI: Resolve canary_version = 25
  CI->>J25: Trigger quick/nonquick/nontxt/misc/kvasir (Ubuntu/Rocky) on JDK25
  CI->>TC25: Trigger typecheck-latest-ubuntu-jdk25<br/>and typecheck-bundled-ubuntu-jdk25
  par JDK25 test matrix
    J25-->>CI: Status
    TC25-->>CI: Status
  end
  CI->>Legacy: Trigger legacy jobs (if configured) depending on JDK25 completion
  Legacy-->>CI: Status
  CI-->>Dev: canary_jobs completion status
  Note over CI: Canary dependsOn JDK25 variants and typecheck JDK25
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Pre-merge checks (3 passed)

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title is a concise, single-sentence summary that accurately captures the PR’s primary intent—switching the canary JDK to Java 25—which aligns with the changes that update canary_version macros and migrate CI jobs and typecheck jobs to JDK 25.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e1f6cf0 and 18dfdef.

📒 Files selected for processing (6)
  • .azure/azure-pipelines.yml (58 hunks)
  • .azure/defs.m4 (1 hunks)
  • .azure/jobs.m4 (1 hunks)
  • .circleci/config.yml (2 hunks)
  • .circleci/config.yml.m4 (1 hunks)
  • .circleci/defs.m4 (1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
.circleci/config.yml

[warning] 1517-1517: comment not indented like content

(comments-indentation)

.azure/azure-pipelines.yml

[error] 514-514: wrong indentation: expected 4 but found 2

(indentation)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: codespecs.daikon (typecheck_latest_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (quick_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (nonquick_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (typecheck_bundled_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (nontxt_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (misc_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (kvasir_ubuntu_jdk25)
🔇 Additional comments (10)
.azure/defs.m4 (1)

5-5: Update Azure canary version to Java 25.

The macro update correctly aligns with the CircleCI configuration and the overall PR objective to migrate to JDK 25 as the canary version.

.azure/azure-pipelines.yml (3)

15-17: Configure testingSuffix variable appropriately.

Setting testingSuffix to an empty value is correct for production usage. The commented lines show the testing configuration, which provides good documentation for future testing scenarios.


29-35: Update canary job dependencies to Java 25.

The migration from JDK 24 to JDK 25 dependencies is correctly implemented. All canary jobs now depend on their JDK 25 counterparts, establishing the new canary baseline.


91-94: Verify job dependency structure consistency.

The dependency chain where JDK 24 jobs depend on both canary_jobs and their JDK 25 counterparts creates an appropriate migration path. This ensures JDK 25 jobs run first as the new canary baseline.

.circleci/config.yml.m4 (1)

70-70: Enable Ubuntu 25 typecheck-latest dependency.

Uncommenting job_dependences(ubuntu, 25, typecheck-latest) correctly incorporates JDK 25 typecheck jobs into the workflow dependencies, completing the CircleCI migration to Java 25.

.circleci/config.yml (3)

740-760: Add typecheck-latest-ubuntu-jdk25 job.

The new job definition follows the established pattern with appropriate Docker image, resource allocation, and test script execution. The configuration is consistent with other typecheck jobs in the pipeline.


1379-1386: Update canary job requirements to JDK 25.

The migration from JDK 21 to JDK 25 requirements establishes the new canary baseline. This ensures all canary tests run on Java 25 before other jobs proceed.


1544-1544: Complete typecheck job integration.

Both typecheck-latest-ubuntu-jdk25 and typecheck-bundled-ubuntu-jdk25 are properly integrated into the workflow, with older JDK versions correctly depending on their JDK 25 counterparts.

Also applies to: 1550-1550

.azure/jobs.m4 (1)

44-44: Verify Azure YAML job wiring and agent JDK 25

rg returned "No files were searched" when scanning .azure; I couldn't confirm presence of typecheck_latest_ubuntu_jdk25 or any jdk25 selectors.

  • Confirm generated YAML includes "typecheck_latest_ubuntu_jdk25".
  • Ensure the agent/container has JDK 25 on PATH — add a pre-step that runs java -version to catch mismatches.

Run locally and paste output:

rg -n "typecheck_latest_ubuntu_jdk25|typecheck_bundled_ubuntu_jdk25" -g ".azure/**"
rg -nP "(jdk25|java[ _-]?25)" -C2 -g ".azure/**"
.circleci/defs.m4 (1)

5-5: Canary promoted to JDK 25 — verify CI images & remove stale jdk21/jdk24 refs.

defs.m4 defines canary_version = 25 and config templates reference ubuntu-jdk[]canary_version; confirm there are no explicit "jdk21" or "jdk24" image/tags left and update any CI image references to jdk25.

Locations: .circleci/defs.m4 (lines 4–6), .circleci/config.yml.m4 (lines 27–32).

@smillst
Copy link
Collaborator

smillst commented Sep 11, 2025

typecheck_latest_ubuntu_jdk25 is that the job that was failing before?

@mernst
Copy link
Member Author

mernst commented Sep 11, 2025

typecheck_latest_ubuntu_jdk25 is that the job that was failing before?

Yes. Everything else was passing.

@mernst mernst merged commit b29e1f6 into codespecs:master Sep 12, 2025
71 checks passed
@mernst mernst deleted the jdk25-canary branch September 12, 2025 21:15
@coderabbitai coderabbitai bot mentioned this pull request Sep 18, 2025
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