Skip to content

Conversation

@stratozero
Copy link

@stratozero stratozero commented Sep 25, 2025

Added installer of graalvm 25 - jdk25

Added the installer for graalvm 25 with JDK 25 to the Java bucket

There is yet another PR which aims to add the installer for Temurin 25, I'm just adding the installer for GraalVM 25

Note: I edited the installer of GraalVM 21, where the regex under checkver/version permits only versions with at least a minor spec. In this one I loosen a bit the check to allow versions without minor on the github release page

Relates to #561
Closes #562

Summary by CodeRabbit

  • New Features
    • Added GraalVM Community Edition 25.0.0 as a new installable package.
    • Installer prepares the correct directory layout after extraction for immediate use.
    • Automatically sets JAVA_HOME and GRAALVM_HOME environment variables.
    • Adds relevant GraalVM binaries to the system PATH.
    • Supports automatic update checks for the 25.x release line via GitHub releases.

Added installer of graalvm 25 - jdk25
@coderabbitai
Copy link

coderabbitai bot commented Sep 25, 2025

Walkthrough

Adds a new Scoop manifest file for GraalVM Community Edition 25.0.0, including metadata, download URL and hash, extraction target, installer PowerShell script for directory layout, environment variable setup, version check via GitHub releases, and autoupdate configuration.

Changes

Cohort / File(s) Summary
New package manifest
bucket/graalvm25.json
Adds GraalVM CE 25.0.0 manifest with metadata, URL and sha256, extract_to, installer script to reorganize files, env_add_path and env_set (JAVA_HOME, GRAALVM_HOME), checkver (GitHub releases with 25.x regex), and autoupdate (URL template and hash).

Sequence Diagram(s)

sequenceDiagram
  participant U as User
  participant S as Scoop
  participant GH as GitHub Releases
  participant PS as Installer Script
  participant ENV as Env Vars

  U->>S: scoop install graalvm25
  S->>GH: Download graalvm-community-jdk-25.0.0_windows-x64_bin.zip
  GH-->>S: ZIP file
  S->>S: Extract to extract_to directory
  S->>PS: Run installer script
  rect rgba(200,230,255,0.25)
    note right of PS: Reorganize extracted directories
    PS->>ENV: Set JAVA_HOME and GRAALVM_HOME
    PS->>ENV: Add bin to PATH
  end
  U-->>S: scoop update graalvm25
  S->>GH: checkver (regex for 25.x)
  alt New 25.x available
    S->>S: autoupdate URL template and hash
  else No update
    S->>U: Already up to date
  end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested labels

review-needed

Suggested reviewers

  • se35710

Poem

I thump my paws—a zip arrives,
Graal 25, where speed survives.
Paths are set, the bins align,
JAVA_HOME is looking fine.
I hop, I build, I swiftly run—
New VM moon, release is done! 🐇✨

Pre-merge checks and finishing touches

✅ Passed checks (5 passed)
Check name Status Explanation
Title Check ✅ Passed The title clearly and concisely indicates the creation of the new graalvm25.json manifest file, directly reflecting the primary change introduced by this pull request.
Linked Issues Check ✅ Passed The manifest file fully satisfies all coding-related objectives from issue #562 by adding a standard GraalVM 25 package manifest with correct metadata, versioning, license, download URL, checksum, environment configuration, checkver, and autoupdate settings as required.
Out of Scope Changes Check ✅ Passed All changes are confined to the addition of the graalvm25.json manifest and directly relate to delivering GraalVM 25 support without any unrelated modifications.
Description Check ✅ Passed The pull request description provides a clear summary of added GraalVM 25 support, includes both related and closing issue references, and checks the required contributing guide acknowledgment, matching the repository’s template sections.
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

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
  pre_merge_checks:
    custom_checks:
      - name: "Undocumented Breaking Changes"
        mode: "warning"
        instructions: |
          Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions
Copy link
Contributor

All changes look good.

Wait for review from human collaborators.

graalvm25

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate
  • Autoupdate Hash Extraction

Check the full log for details.

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: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 586bcbf and 16d3465.

📒 Files selected for processing (1)
  • bucket/graalvm25.json (1 hunks)

Comment on lines +21 to +23
"url": "https://github.com/graalvm/graalvm-ce-builds/releases/latest",
"regex": "jdk-(25[\\d.]*)"
},
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Fix the checkver source for GraalVM 25 tags.

releases/latest only exposes the single most recent release (currently 25.0.0, but the next 21.x maintenance drop will replace it), so the current regex stops matching as soon as a 21.x build ships. That breaks Scoop’s automation for this manifest. Point checkver at the full release feed (via the github helper) and filter for 25.x tags instead.

-    "checkver": {
-        "url": "https://github.com/graalvm/graalvm-ce-builds/releases/latest",
-        "regex": "jdk-(25[\\d.]*)"
-    },
+    "checkver": {
+        "github": "graalvm/graalvm-ce-builds",
+        "regex": "jdk-(25[\\d.]+)"
+    },
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"url": "https://github.com/graalvm/graalvm-ce-builds/releases/latest",
"regex": "jdk-(25[\\d.]*)"
},
"checkver": {
"github": "graalvm/graalvm-ce-builds",
"regex": "jdk-(25[\\d.]+)"
},
🤖 Prompt for AI Agents
In bucket/graalvm25.json around lines 21 to 23, the checkver currently points at
releases/latest which only returns a single latest tag and will stop matching
25.x once an older maintenance tag becomes latest; change the checkver source to
use the full GitHub release/tag feed (use the github helper or the repo tags
API) and update the regex to explicitly match 25.x tags (e.g. starting with "25"
and allowing dots) so Scoop finds all 25.y.z releases rather than only the
single latest release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Request] Add GraalVM 25

1 participant