ScoopInstaller / Java

📦 A bucket for Scoop, for Oracle Java, OpenJDK, Eclipse Temurin, IBM Semeru, Zulu, ojdkbuild, Amazon Corretto, BellSoft Liberica, SapMachine and Microsoft JDK.
https://scoop.sh
The Unlicense
262 stars 90 forks source link

[Request] Update `graalvm-nightly`, `graalvm-nightly-jdk11`, `graalvm-nightly-jdk17` #485

Open salty-flower opened 1 year ago

salty-flower commented 1 year ago

Information

Name: graalvm-nightly, graalvm-nightly-jdk11, graalvm-nightly-jdk17

Description: The three are already inside java bucket. However they are outdated and point to dangling 404 URLs.

Download link(s): Their repository link remains the old one.

I have some ideas on it but not sure how to integrate the changes.

Attempt

I've looked at the newer builds. It seems to me that JDK 21 builds require a file name change, from graalvm-ce-java$matchJava-windows-amd64-dev.zip to graalvm-community-java$matchJava-windows-amd64-dev.zip. JDK 11 and 17 builds, however, seem discontinued from 23.1.0-dev-20230812_0125 (see the number of artifacts).

So combining them all I get below for graalvm-nightly:

{
  "description": "High-performance, embeddable, polyglot Virtual Machine for JVM-langs (Java, Scala, Kotlin), JavaScript/NodeJS, Python, Ruby, R, and LLVM-langs (C, C++, Rust)",
  "version": "24.0.0-dev-20230914_1326",
  "homepage": "https://www.graalvm.org/",
  "license": "GPL-2.0",
  "url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/24.0.0-dev-20230914_1326/graalvm-ce-java20-windows-amd64-dev.zip",
  "hash": "f4b38f6040e649148624f23eb7323f1614807d92535d030d33f7a5f79e5dac5c",
  "extract_dir": "graalvm-ce-java20-23.1.0-dev",
  "env_add_path": "bin",
  "env_set": {
    "JAVA_HOME": "$dir",
    "GRAALVM_HOME": "$dir"
  },
  "checkver": {
    "github": "https://github.com/graalvm/graalvm-ce-dev-builds",
    "regex": "/(?<release>[\\d\\w.-]+)-dev-(?<build>[\\d\\w.-]+)/graalvm-community-java(?<java>\\d[\\d]+)-windows-amd64-dev",
    "replace": "${release}-dev-${build}",
    "reverse": true
  },
  "autoupdate": {
    "url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/$version/graalvm-community-java$matchJava-windows-amd64-dev.zip",
    "extract_dir": "graalvm-community-openjdk-$matchJava+$matchRelease"
  }
}

Problem I faced

One problem I have is how do I set extract_dir in autoupdate part. The inner folder name is graalvm-community-openjdk-21+35.1 for recent builds. Initially I have no idea of deducing the 35.1 part from build numbers, but later I found it in a metadata file from main Graal repository.

So, I guess it would be great if someone can integrate parsing logic, to dynamically generate folder name from build number there.

Thanks Scoop community 😊

salty-flower commented 1 year ago

I believe #472 is not related to nightly builds, hence a new issue here.

se35710 commented 11 months ago

If it is impossible to use extract_dir, use "extract_to": "tmp" and the following installer script: https://github.com/ScoopInstaller/Java/blob/d2212702c653024cf92a10638c69be8048cfa950/bucket/microsoft17-jdk.json#L17-L22