Make the Adoptopenjdk package type look at the Temurin repo first for latest assets#522
Conversation
|
I'm wondering whether we could add an annotation the pipeline to alert users to the fact that they should switch to temurin as their distro if the version they have requested is matched in temurin. |
|
@ IvanZosimov can I get your thoughts on this PR please. |
|
Hi, @johnoliver and @gdams 👋 Actually, we have a piece of documentation about this problem: https://github.com/actions/setup-java#supported-distributions. Frankly speaking, we'd better wait for the official announcement of the full deprecation of the AdoptOpenJDK; after that, we could make an announcement for our customers. Given that many customers are aware of the deprecation but continue to use the outdated versions, the warning option also doesn't seem to be the best as it could create a lot of noise. |
@IvanZosimov If you're looking for an official deprecation you can consider this blog post exactly that: https://blog.adoptopenjdk.net/2021/08/goodbye-adoptopenjdk-hello-adoptium/. The challenge here is that there are several Java versions that we released at AdoptOpenJDK that we don't release at Adoptium (e.g JDK 12-15 and 9-10). The idea of this change is that it will preserve functionality for those specific users but get the majority of users onto the newer API. As a side note, we should have a discussion with the dependabot team at some point to work out a plan for updating people's workflows. |
|
@IvanZosimov what are your thoughts here? We'd love to find a solution to take some of the requests off our old API |
|
@johnoliver looks like you need to run prettier and generate the |
|
ping @IvanZosimov it would be good to make some progress here |
|
Hi, @gdams and @johnoliver 👋 I apologize for taking so long to respond, we are overwhelmed at the moment! We discussed the idea of PR, and it seems acceptable to us. I think you can convert this PR to the real one, and we will take a look at it as we have time. |
|
I have just noticed that the tests need fixing, will get on updating this |
|
Tests are fixed |
|
@IvanZosimov this is good for review now |
|
@aparnajyothi-y any update here please? |
5321a4d to
bf12c83
Compare
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
This PR updates the AdoptOpenJDK installer to preferentially resolve Hotspot downloads via Eclipse Temurin (with notices guiding users to switch), while keeping an internal fallback to the legacy AdoptOpenJDK flow.
Changes:
- Exposes Temurin’s package-resolution method so it can be used by other distributions.
- Adds Temurin-backed resolution for Adopt/Hotspot with user notices and a fallback to the old AdoptOpenJDK lookup.
- Refactors the prior Adopt lookup into a separate private method.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
| src/distributions/temurin/installer.ts | Makes Temurin package lookup callable from outside the class (visibility change). |
| src/distributions/adopt/installer.ts | Adds Temurin fallback for Adopt Hotspot; retains old Adopt lookup behind a private method. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Use strict equality (===, !==) instead of loose equality (==, !=) for all comparisons
- Properly handle caught errors with instanceof type narrowing before accessing properties
- Only fall back to legacy AdoptOpenJDK for specific version-not-found errors
- Rethrow unexpected errors to avoid masking real issues (network failures, rate limits, etc.)
- Fix error message check to match actual error text ('No matching version found')
- Remove unnecessary undefined check since method return type is never undefined
- Add @internal JSDoc annotation to TemurinDistribution.findPackageForDownload()
- Update tests to properly mock Temurin lookup failures for fallback behavior testing
- Rebuild dist files
- Change error handling to gracefully fall back for all errors, not just version-not-found - Log version-not-found errors as notices with migration guidance - Log other Temurin failures as debug messages for troubleshooting - Improves resilience: users always get a result even if Temurin API has issues - Maintains visibility: failures are still logged for debugging
Bumps the github-actions group with 4 updates: [actions/setup-java](https://github.com/actions/setup-java), [graalvm/setup-graalvm](https://github.com/graalvm/setup-graalvm), [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action) and [ruby/setup-ruby](https://github.com/ruby/setup-ruby). Updates `actions/setup-java` from 5.2.0 to 5.3.0 Release notes *Sourced from [actions/setup-java's releases](https://github.com/actions/setup-java/releases).* > v5.3.0 > ------ > > What's Changed > -------------- > > * chore: update Java version to 25 in setup examples by [`@alaahong`](https://github.com/alaahong) in [actions/setup-java#969](https://redirect.github.com/actions/setup-java/pull/969) > * Bump minimatch from 3.1.2 to 3.1.5 by [`@dependabot`](https://github.com/dependabot)[bot] in [actions/setup-java#984](https://redirect.github.com/actions/setup-java/pull/984) > * Refactor error handling and improve test logging for installers by [`@chiranjib-swain`](https://github.com/chiranjib-swain) in [actions/setup-java#989](https://redirect.github.com/actions/setup-java/pull/989) > * chore: upgrade dependencies (`@actions/core`, cache, glob, http-client, tool-cache, xmlbuilder2) by [`@Copilot`](https://github.com/Copilot) in [actions/setup-java#999](https://redirect.github.com/actions/setup-java/pull/999) > * Add Oracle JDK 17 licensing limitation note by [`@mahabaleshwars`](https://github.com/mahabaleshwars) in [actions/setup-java#1001](https://redirect.github.com/actions/setup-java/pull/1001) > * Update readme for ubuntu sudo java\_home behavior by [`@mahabaleshwars`](https://github.com/mahabaleshwars) in [actions/setup-java#1013](https://redirect.github.com/actions/setup-java/pull/1013) > * temurin: add support for Alpine Linux by [`@gdams`](https://github.com/gdams) in [actions/setup-java#674](https://redirect.github.com/actions/setup-java/pull/674) > * fix: resolve npm audit vulnerabilities in fast-xml-builder and fast-xml-parser by [`@gdams`](https://github.com/gdams) in [actions/setup-java#1015](https://redirect.github.com/actions/setup-java/pull/1015) > * Bump `@typescript-eslint/eslint-plugin` from 8.35.1 to 8.48.0 by [`@dependabot`](https://github.com/dependabot)[bot] in [actions/setup-java#952](https://redirect.github.com/actions/setup-java/pull/952) > * Bump eslint-config-prettier from 8.10.0 to 10.1.8 by [`@dependabot`](https://github.com/dependabot)[bot] in [actions/setup-java#881](https://redirect.github.com/actions/setup-java/pull/881) > * Bump picomatch, `@types/jest`, jest, jest-circus and ts-jest by [`@dependabot`](https://github.com/dependabot)[bot] in [actions/setup-java#1016](https://redirect.github.com/actions/setup-java/pull/1016) > * Bump `@types/node` from 24.1.0 to 25.9.3 by [`@dependabot`](https://github.com/dependabot)[bot] in [actions/setup-java#950](https://redirect.github.com/actions/setup-java/pull/950) > * Implement pagination with link headers for Adoptium based apis by [`@johnoliver`](https://github.com/johnoliver) in [actions/setup-java#1014](https://redirect.github.com/actions/setup-java/pull/1014) > * Make the Adoptopenjdk package type look at the Temurin repo first for latest assets by [`@johnoliver`](https://github.com/johnoliver) in [actions/setup-java#522](https://redirect.github.com/actions/setup-java/pull/522) > * Bump `@vercel/ncc` from 0.38.1 to 0.44.0 by [`@dependabot`](https://github.com/dependabot)[bot] in [actions/setup-java#1018](https://redirect.github.com/actions/setup-java/pull/1018) > > New Contributors > ---------------- > > * [`@alaahong`](https://github.com/alaahong) made their first contribution in [actions/setup-java#969](https://redirect.github.com/actions/setup-java/pull/969) > * [`@Copilot`](https://github.com/Copilot) made their first contribution in [actions/setup-java#999](https://redirect.github.com/actions/setup-java/pull/999) > * [`@johnoliver`](https://github.com/johnoliver) made their first contribution in [actions/setup-java#1014](https://redirect.github.com/actions/setup-java/pull/1014) > > **Full Changelog**: <actions/setup-java@v5...v5.3.0> Commits * [`ad2b381`](actions/setup-java@ad2b381) Bump `@vercel/ncc` from 0.38.1 to 0.44.0 ([#1018](https://redirect.github.com/actions/setup-java/issues/1018)) * [`b24df5b`](actions/setup-java@b24df5b) Make the Adoptopenjdk package type look at the Temurin repo first for latest ... * [`43120bc`](actions/setup-java@43120bc) Implement pagination with link headers for Adoptium based apis ([#1014](https://redirect.github.com/actions/setup-java/issues/1014)) * [`ad9d6a6`](actions/setup-java@ad9d6a6) Bump `@types/node` from 24.1.0 to 25.9.3 ([#950](https://redirect.github.com/actions/setup-java/issues/950)) * [`039af37`](actions/setup-java@039af37) Bump picomatch, `@types/jest`, jest, jest-circus and ts-jest ([#1016](https://redirect.github.com/actions/setup-java/issues/1016)) * [`1756ab6`](actions/setup-java@1756ab6) Bump eslint-config-prettier from 8.10.0 to 10.1.8 ([#881](https://redirect.github.com/actions/setup-java/issues/881)) * [`662bb59`](actions/setup-java@662bb59) Bump `@typescript-eslint/eslint-plugin` from 8.35.1 to 8.46.2 ([#952](https://redirect.github.com/actions/setup-java/issues/952)) * [`1071fc1`](actions/setup-java@1071fc1) fix: resolve npm audit vulnerabilities in fast-xml-builder and fast-xml-parse... * [`576b821`](actions/setup-java@576b821) Merge pull request [#674](https://redirect.github.com/actions/setup-java/issues/674) from gdams/alpine * [`307d3a2`](actions/setup-java@307d3a2) update readme for ubuntu sudo java\_home behavior ([#1013](https://redirect.github.com/actions/setup-java/issues/1013)) * Additional commits viewable in [compare view](actions/setup-java@be666c2...ad2b381) Updates `graalvm/setup-graalvm` from 1.5.4 to 1.5.6 Release notes *Sourced from [graalvm/setup-graalvm's releases](https://github.com/graalvm/setup-graalvm/releases).* > v1.5.6 > ------ > > What's Changed > -------------- > > * Always set up MSVC environment on Windows by [`@gastaldi`](https://github.com/gastaldi) in [graalvm/setup-graalvm#221](https://redirect.github.com/graalvm/setup-graalvm/pull/221) > > **Full Changelog**: <graalvm/setup-graalvm@v1.5.5...v1.5.6> > > v1.5.5 > ------ > > What's Changed > -------------- > > * Add Visual Studio 2026 to known installations by [`@gastaldi`](https://github.com/gastaldi) in [graalvm/setup-graalvm#219](https://redirect.github.com/graalvm/setup-graalvm/pull/219) > > New Contributors > ---------------- > > * [`@gastaldi`](https://github.com/gastaldi) made their first contribution in [graalvm/setup-graalvm#219](https://redirect.github.com/graalvm/setup-graalvm/pull/219) > > **Full Changelog**: <graalvm/setup-graalvm@v1.5.4...v1.5.5> Commits * [`6f3fa03`](graalvm/setup-graalvm@6f3fa03) Bump version to `1.5.6`. * [`74ee89f`](graalvm/setup-graalvm@74ee89f) Run `npm audit fix`. * [`0ad466a`](graalvm/setup-graalvm@0ad466a) Always set up MSVC environment on Windows * [`809afe6`](graalvm/setup-graalvm@809afe6) Bump version to `1.5.5`. * [`44ffb1c`](graalvm/setup-graalvm@44ffb1c) Fix VS 2026 installation path to use internal version number * [`e1d3380`](graalvm/setup-graalvm@e1d3380) Add Visual Studio 2026 to known installations * See full diff in [compare view](graalvm/setup-graalvm@329c42c...6f3fa03) Updates `anthropics/claude-code-action` from 1.0.144 to 1.0.151 Release notes *Sourced from [anthropics/claude-code-action's releases](https://github.com/anthropics/claude-code-action/releases).* > v1.0.151 > -------- > > What's Changed > -------------- > > * fix: skip workflow validation token exchange failures by [`@Ryanoonan`](https://github.com/Ryanoonan) in [anthropics/claude-code-action#1417](https://redirect.github.com/anthropics/claude-code-action/pull/1417) > > New Contributors > ---------------- > > * [`@Ryanoonan`](https://github.com/Ryanoonan) made their first contribution in [anthropics/claude-code-action#1417](https://redirect.github.com/anthropics/claude-code-action/pull/1417) > > **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.151> > > v1.0.150 > -------- > > **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.150> > > v1.0.149 > -------- > > What's Changed > -------------- > > * fix(parse-sdk-options): prevent shell-quote from collapsing unquoted Bash(X:\*) rules to bare Bash by [`@alexglynn`](https://github.com/alexglynn) in [anthropics/claude-code-action#1350](https://redirect.github.com/anthropics/claude-code-action/pull/1350) > * fix(mcp): align allowed-tools parser with SDK option parser by [`@bymle`](https://github.com/bymle) in [anthropics/claude-code-action#1373](https://redirect.github.com/anthropics/claude-code-action/pull/1373) > > New Contributors > ---------------- > > * [`@alexglynn`](https://github.com/alexglynn) made their first contribution in [anthropics/claude-code-action#1350](https://redirect.github.com/anthropics/claude-code-action/pull/1350) > > **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.149> > > v1.0.148 > -------- > > **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.148> > > v1.0.147 > -------- > > What's Changed > -------------- > > * Add pr-stamp-sweep review workflow by [`@ashwin-ant`](https://github.com/ashwin-ant) in [anthropics/claude-code-action#1409](https://redirect.github.com/anthropics/claude-code-action/pull/1409) > > **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.147> > > v1.0.146 > -------- > > What's Changed > -------------- > > * test: add unit tests for parseGitHubContext and context type guards by [`@mateuscmtropical`](https://github.com/mateuscmtropical) in [anthropics/claude-code-action#1404](https://redirect.github.com/anthropics/claude-code-action/pull/1404) > * docs(faq): correct rebase FAQ to match actual behavior by [`@bymle`](https://github.com/bymle) in [anthropics/claude-code-action#1370](https://redirect.github.com/anthropics/claude-code-action/pull/1370) > * fix: fall back to inherited env for auth when inputs are empty by [`@kirsanium`](https://github.com/kirsanium) in [anthropics/claude-code-action#1342](https://redirect.github.com/anthropics/claude-code-action/pull/1342) > * fix: break SDK iterator after result message to prevent hang in pull\_request runs by [`@scobbe`](https://github.com/scobbe) in [anthropics/claude-code-action#1339](https://redirect.github.com/anthropics/claude-code-action/pull/1339) > * Pin setup-bun binary for post-steps by [`@kiwigitops`](https://github.com/kiwigitops) in [anthropics/claude-code-action#1365](https://redirect.github.com/anthropics/claude-code-action/pull/1365) > * fix: clear stale claude-prompts dir before each write by [`@kyungilpark`](https://github.com/kyungilpark) in [anthropics/claude-code-action#1288](https://redirect.github.com/anthropics/claude-code-action/pull/1288) > * Include labels in formatContext() output for issues and PRs by [`@joshpayne-joby`](https://github.com/joshpayne-joby) in [anthropics/claude-code-action#1298](https://redirect.github.com/anthropics/claude-code-action/pull/1298) > * fix(sanitizer): match attribute quotes by type to avoid mangling content by [`@bymle`](https://github.com/bymle) in [anthropics/claude-code-action#1371](https://redirect.github.com/anthropics/claude-code-action/pull/1371) > * docs: fix execution file parsing example by [`@looooown2006`](https://github.com/looooown2006) in [anthropics/claude-code-action#1297](https://redirect.github.com/anthropics/claude-code-action/pull/1297) > * fix(image-downloader): detect image type from magic bytes, not URL extension by [`@pmespresso`](https://github.com/pmespresso) in [anthropics/claude-code-action#1396](https://redirect.github.com/anthropics/claude-code-action/pull/1396) > > New Contributors > ---------------- > > * [`@mateuscmtropical`](https://github.com/mateuscmtropical) made their first contribution in [anthropics/claude-code-action#1404](https://redirect.github.com/anthropics/claude-code-action/pull/1404) > * [`@bymle`](https://github.com/bymle) made their first contribution in [anthropics/claude-code-action#1370](https://redirect.github.com/anthropics/claude-code-action/pull/1370) > * [`@kirsanium`](https://github.com/kirsanium) made their first contribution in [anthropics/claude-code-action#1342](https://redirect.github.com/anthropics/claude-code-action/pull/1342) > * [`@scobbe`](https://github.com/scobbe) made their first contribution in [anthropics/claude-code-action#1339](https://redirect.github.com/anthropics/claude-code-action/pull/1339) ... (truncated) Commits * [`806af32`](anthropics/claude-code-action@806af32) chore: bump Claude Code to 2.1.181 and Agent SDK to 0.3.181 * [`0a08a86`](anthropics/claude-code-action@0a08a86) fix: skip workflow validation token exchange failures ([#1417](https://redirect.github.com/anthropics/claude-code-action/issues/1417)) * [`9dd8b95`](anthropics/claude-code-action@9dd8b95) chore: bump Claude Code to 2.1.179 and Agent SDK to 0.3.179 * [`4d7e1f0`](anthropics/claude-code-action@4d7e1f0) chore: bump Claude Code to 2.1.178 and Agent SDK to 0.3.178 * [`3d9f0dc`](anthropics/claude-code-action@3d9f0dc) fix(mcp): align allowed-tools parser with SDK option parser ([#1373](https://redirect.github.com/anthropics/claude-code-action/issues/1373)) * [`a5e5d3b`](anthropics/claude-code-action@a5e5d3b) fix(parse-sdk-options): prevent shell-quote from collapsing unquoted Bash(X:\*... * [`d5726de`](anthropics/claude-code-action@d5726de) chore: bump Claude Code to 2.1.177 and Agent SDK to 0.3.177 * [`56fa348`](anthropics/claude-code-action@56fa348) chore: bump Claude Code to 2.1.176 and Agent SDK to 0.3.176 * [`82d95d4`](anthropics/claude-code-action@82d95d4) Add pr-stamp-sweep review workflow ([#1409](https://redirect.github.com/anthropics/claude-code-action/issues/1409)) * [`0cb4f3e`](anthropics/claude-code-action@0cb4f3e) chore: bump Claude Code to 2.1.175 and Agent SDK to 0.3.175 * Additional commits viewable in [compare view](anthropics/claude-code-action@0f97b95...806af32) Updates `ruby/setup-ruby` from 1.312.0 to 1.313.0 Release notes *Sourced from [ruby/setup-ruby's releases](https://github.com/ruby/setup-ruby/releases).* > v1.313.0 > -------- > > What's Changed > -------------- > > * Add jruby-10.0.6.0 by [`@ruby-builder-bot`](https://github.com/ruby-builder-bot) in [ruby/setup-ruby#921](https://redirect.github.com/ruby/setup-ruby/pull/921) > > **Full Changelog**: <ruby/setup-ruby@v1.312.0...v1.313.0> Commits * [`89f9052`](ruby/setup-ruby@89f9052) Add jruby-10.0.6.0 * See full diff in [compare view](ruby/setup-ruby@12fd324...89f9052) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- Dependabot commands and options You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
We are looking to move people off of the old deprecated Adoptopenjdk API to the Temurin API for Hotspot builds.
For the vast majority of binaries, the Temurin API will contain the one you want, the outlier cases are:
In both cases it means that they are using very old builds.
In order to move to the new API, this PR is proposing that requests to AdoptDistribution, are requested against TemurinDistribution first, if they cannot be satisfied by Temurin, then continue the existing unchanged AdoptOpenJDK logic. For the VAST majority of requests, they will be satisfied by Temurin, for the few remaining outliers described above, they will make a second request to the old AdoptOpenJDK API.
I am submitting this as a draft to ask if this approach is acceptable in principle.