-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Using version: mandrel-latest
with java-version: 17
results in 404 error
#64
Comments
How would this work? Would you fetch all releases, order them by date, and then find the first release that contains a JDK 17 build? I wouldn't want to hard code latest version because that adds maintenance work, but I also think we should keep the number of requests to a minimum. Maybe integrating the Foojay API or something similar is an alternative? |
I was thinking about doing something similar to: Lines 62 to 86 in 6c7d417
That's why I am suggesting introducing new tags that will include the java version in our releases.
Sure, that could work as well. But it would only make sense if we were to use it for GraalVM releases as well. I don't think it's worth having such an alternative just for Mandrel. WDYT? |
Caused by graalvm/setup-graalvm#64 Signed-off-by: Niklas <[email protected]>
I didn't know about that, makes sense!
Agreed, we could consider using Disco API instead, which will avoid users hitting rate limits. On the other hand, there's a new external dependency that is not directly controlled and updated by any of us. So if you plan to add new tags, maybe better if we do something similar to |
Unfortunately using the tags is not going to work since we often tag the source code a coupe of weeks before we actually build and publish the release. E.g. at the moment there is a tag To make matters worse, some times we might even bump the version before we actually release the previous tag (e.g. because of a last minute bugfix, we did this with mandrel-23.0.1.1-Final). So even if we get the list of tags we the need to find the latest one that has some assets attached to it, so we still need to perform a few extra requests, hopefully no more than a couple. In the light of this I had a quick look at the Foojay Disco API as well and it looks easier to use (at the cost of an additional dependency as you say). E.g. Getting the latest mandrel release working with JDK 17
Getting the latest mandrel release working with JDK 21
|
@fniephaus are you OK with me using the Foojay Disco API for this? |
Sure, I'm ok with that. Keep in mind that the additional dependency is also external, which means your users might not get latest the moment it is out, or even if Disco API is broken or ever decides to remove Mandrel for some reason. |
When using setup-graalvm with:
the action results in:
This happens because
setup-graalvm
gets the latest release from github without acounting for thejava-version
. So with the release of Mandrel 23.1 (which no longer includes java17 builds)setup-graalvm
tries to access https://github.com/graalvm/mandrel/releases/download/mandrel-23.1.0.0-Final/mandrel-java17-linux-amd64-23.1.0.0-Final.tar.gz which doesn't exist.In this scenario
setup-graalvm
needs a way to fetch the latest Mandrel release that includes java 17 builds, e.g.mandrel-23.0.1.2-Final
.I can work on implementing this. We will probably need to add additional tags to our releases, e.g. have
mandrel-java21-23.1.0.0-Final
along withmandrel-23.1.0.0-Final
,mandrel-java17-23.0.1.2-Final
andmandrel-java20-23.0.1.2-Final
along withmandrel-23.0.1.2-Final
etc.This way we will be able to filter tags based on the java version and then get the latest of them.
cc @jerboaa @Karm
The text was updated successfully, but these errors were encountered: