Skip to content

graalvm*: add CE JDK 17 and fix CE JDK 21 checkver#592

Merged
niheaven merged 2 commits intoScoopInstaller:masterfrom
B67687:graalvm-ce-17jdk
Apr 27, 2026
Merged

graalvm*: add CE JDK 17 and fix CE JDK 21 checkver#592
niheaven merged 2 commits intoScoopInstaller:masterfrom
B67687:graalvm-ce-17jdk

Conversation

@B67687
Copy link
Copy Markdown
Contributor

@B67687 B67687 commented Apr 23, 2026

This handles the still-useful Community Edition part of #508 without reusing its stale manifest shape directly.

Changes:

Design decisions:

  • graalvm-ce-17jdk uses the same extract_to plus installer move pattern as the existing newer GraalVM manifests, so it does not depend on the internal extracted directory name.
  • graalvm21-jdk21 already covers the Community JDK 21 package requested in graalvm-ce-jdk: add version 17.0.9 and 21.0.2 #508, so this PR fixes its version detection rather than adding a duplicate manifest under another name.
  • The version source is the official graalvm/graalvm-ce-builds GitHub releases API, not a third-party source.

Validation:

  • checkver.ps1 graalvm-ce-17jdk -> 17.0.9

  • checkver.ps1 graalvm21-jdk21 -> 21.0.2

  • checkurls.ps1 graalvm-ce-17jdk -> [1][1][0]

  • checkurls.ps1 graalvm21-jdk21 -> [1][1][0]

  • I have read the Contributing Guide.

Summary by CodeRabbit

  • New Features

    • Added GraalVM Community Edition JDK 17 for Windows x64 with packaged installer and automatic environment setup (PATH, JAVA_HOME, GRAALVM_HOME).
  • Improvements

    • Improved version checking for GraalVM JDK 21 to provide more reliable and timely update detection.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 23, 2026

Walkthrough

Adds a new GraalVM Community Edition JDK 17 Windows x64 package manifest and updates the GraalVM 21 JDK 21 manifest's checkver to use the GitHub Releases API with JSON path extraction and stricter version regex.

Changes

Cohort / File(s) Summary
GraalVM CE JDK 17 Package
bucket/graalvm-ce-17jdk.json
New manifest added: GitHub release download URL and SHA-256, extraction to temp, PowerShell installer moves files to target and removes temp, sets JAVA_HOME/GRAALVM_HOME and adds bin to PATH, checkver/autoupdate configured with jdk-(17[\d.]+) regex.
GraalVM 21 JDK 21 Checkver Update
bucket/graalvm21-jdk21.json
checkver changed to query GitHub Releases API (list of releases), uses jsonpath to extract tag_name values and applies stricter jdk-(21\.[\d.]+) regex for version matching.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Scoop
    participant GitHub as GitHub Releases API
    participant Installer as PowerShell Installer
    participant FS as Filesystem/Env

    User->>Scoop: request install graalvm-ce-17jdk
    Scoop->>GitHub: fetch release list (checkver / autoupdate)
    GitHub-->>Scoop: return JSON with tag_name and asset URLs
    Scoop->>Scoop: resolve version & download URL
    Scoop->>Installer: run installer script with downloaded archive
    Installer->>FS: extract to temp, move files to install dir
    Installer->>FS: set `JAVA_HOME`/`GRAALVM_HOME`, add `bin` to PATH
    Installer->>FS: remove temp files
    Installer-->>Scoop: install complete
    Scoop-->>User: installation finished
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested labels

review-needed

Suggested reviewers

  • se35710
  • chawyehsu

Poem

🐰 I hopped to fetch a shiny JDK,
Downloaded, moved, and hopped away.
Tags and checks from GitHub's shore,
Binaries placed, environment set—hooray! 🥕

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and concisely summarizes the two main changes: adding GraalVM CE JDK 17 and fixing the checkver for CE JDK 21.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed The pull request description comprehensively covers all required sections: issue references, changes made, design decisions, validation results, and confirmation of adherence to contributing guidelines.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 23, 2026

✅ Actions performed

Full review triggered.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 23, 2026

✅ Actions performed

Reviews resumed.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 24, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Copy Markdown

@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.

🧹 Nitpick comments (2)
bucket/graalvm-ce-17jdk.json (1)

20-24: checkver config LGTM; optional regex tightening.

Mirrors the pattern now used in graalvm21-jdk21.json; jsonpath: $[*].tag_name against releases?per_page=100 correctly yields tag strings for the regex filter.

Optional nit (same as the sibling manifest): jdk-(17[\d.]+) would match a tag like jdk-170.x if one ever appeared. Using jdk-(17\.[\d.]+) is a touch stricter. Purely defensive — safe to ignore.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@bucket/graalvm-ce-17jdk.json` around lines 20 - 24, The checkver block's
regex "jdk-(17[\\d.]+)" is permissive and could match unintended tags; update
the regex in the checkver section to the stricter pattern "jdk-(17\\.[\\d.]+)"
(i.e., modify the regex value in the checkver object) so it requires a dot after
"17" and avoids matching things like "jdk-170.x".
bucket/graalvm21-jdk21.json (1)

21-23: checkver switch to Releases API LGTM.

Querying /releases?per_page=100 and extracting tag names via jsonpath correctly avoids the /releases/latest HTML endpoint that was pinned to the 25.x train, so the existing jdk-(21[\d.]+) regex can now pick up the latest jdk-21.x tag among the paged results. Current release cadence on graalvm/graalvm-ce-builds keeps the relevant 21.x tags well within the first 100 entries.

Optional nit: the regex could be tightened to jdk-(21\.[\d.]+) so it doesn't match a hypothetical jdk-21X... tag (e.g. jdk-210.0.0). Not a real-world risk today, purely defensive.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@bucket/graalvm21-jdk21.json` around lines 21 - 23, Tighten the release-tag
regex used for checkver: replace the current "regex" value jdk-(21[\d.]+) with a
more defensive pattern that requires a dot after 21 (e.g. jdk-(21\.[\d.]+));
update the "regex" field in the JSON (the entry with keys "url", "jsonpath",
"regex") so it only matches tags like jdk-21.x and not hypothetical jdk-210...
tags.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@bucket/graalvm-ce-17jdk.json`:
- Around line 20-24: The checkver block's regex "jdk-(17[\\d.]+)" is permissive
and could match unintended tags; update the regex in the checkver section to the
stricter pattern "jdk-(17\\.[\\d.]+)" (i.e., modify the regex value in the
checkver object) so it requires a dot after "17" and avoids matching things like
"jdk-170.x".

In `@bucket/graalvm21-jdk21.json`:
- Around line 21-23: Tighten the release-tag regex used for checkver: replace
the current "regex" value jdk-(21[\d.]+) with a more defensive pattern that
requires a dot after 21 (e.g. jdk-(21\.[\d.]+)); update the "regex" field in the
JSON (the entry with keys "url", "jsonpath", "regex") so it only matches tags
like jdk-21.x and not hypothetical jdk-210... tags.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 28b087af-1347-4a0b-ae88-be1e829ff9c8

📥 Commits

Reviewing files that changed from the base of the PR and between aded4b6 and 5878ad9.

📒 Files selected for processing (2)
  • bucket/graalvm-ce-17jdk.json
  • bucket/graalvm21-jdk21.json

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 24, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@B67687
Copy link
Copy Markdown
Contributor Author

B67687 commented Apr 25, 2026

This is the CE side of the long-running GraalVM request in #472.

It adds graalvm-ce-17jdk using the naming discussed there, and fixes graalvm21-jdk21 checkver so it can still resolve the 21 line from the official GraalVM CE releases source.

CI and CodeRabbit are clean now, so I thought I’d flag it in case it helps with review.

@niheaven
Copy link
Copy Markdown
Member

/verify

@github-actions
Copy link
Copy Markdown
Contributor

All changes look good.

Wait for review from human collaborators.

graalvm-ce-17jdk

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

graalvm21-jdk21

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

Check the full log for details.

@niheaven niheaven merged commit d332f5c into ScoopInstaller:master Apr 27, 2026
3 checks passed
@B67687 B67687 deleted the graalvm-ce-17jdk branch April 27, 2026 14:23
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] New Oracle GraalVM and GraalVM Community for JDK 17.0.7 and JDK 20.0.1

2 participants