Skip to content

Add available_ea_releases to /v3/info/available_releases response#1932

Draft
Copilot wants to merge 2 commits into
mainfrom
copilot/api-make-return-ea-releases
Draft

Add available_ea_releases to /v3/info/available_releases response#1932
Copilot wants to merge 2 commits into
mainfrom
copilot/api-make-return-ea-releases

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 2, 2026

available_releases only lists versions with GA releases, leaving EA-only versions (e.g. in-development JDK tip version) undiscoverable via the API — even though EA release data is stored and queryable.

Changes

  • ReleaseInfo — New available_ea_releases: Array<Int> field listing all major versions with at least one EA release, with OpenAPI schema annotation. Defaults to emptyArray() for backward compatibility.
  • ReleaseVersionResolver — Computes available_ea_releases alongside existing fields. Refactored to materialize allReleases once as a List (avoiding single-use Sequence re-traversal) and removed redundant .asSequence() calls on already-list-backed collections.
  • APIDataStoreImplloadDataFromDb() now unions available_ea_releases into the version scan list, so EA-only versions are loaded on startup rather than relying solely on the +5 heuristic.
  • Tests — Updated ApiDataStoreStub and added availableEaReleasesIsCorrect to ReleaseVersionResolverTest.

Example response

{
  "available_releases": [8, 11, 17, 21, 23],
  "available_lts_releases": [8, 11, 17, 21],
  "available_ea_releases": [8, 11, 17, 21, 23, 25],
  "most_recent_lts": 21,
  "most_recent_feature_release": 23,
  "most_recent_feature_version": 25,
  "tip_version": 25
}

Clients can now discover EA-only versions and query them via /v3/assets/feature_releases/{version}/ea.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • fastdl.mongodb.org
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java -javaagent:/home/REDACTED/.m2/repository/org/jacoco/org.jacoco.agent/0.8.14/org.jacoco.agent-0.8.14-runtime.jar=destfile=/home/REDACTED/work/api.adoptium.net/api.adoptium.net/adoptium-updater-parent/adoptium-api-v3-updater/target/jacoco.exec --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-exports=java.base/jdk.internal.module=ALL-UNNAMED -Dquarkus-internal-test.serialized-app-model.path=/home/REDACTED/work/api.adoptium.net/api.adoptium.net/adoptium-updater-parent/adoptium-api-v3-updater/target/quarkus/bootstrap/test-app-model.dat -jar /home/REDACTED/work/api.adoptium.net/api.adoptium.net/adoptium-updater-parent/adoptium-api-v3-updater/target/surefire/surefirebooter-20260502015225480_3.jar /home/REDACTED/work/api.adoptium.net/api.adoptium.net/adoptium-updater-parent/adoptium-api-v3-updater/target/surefire 2026-05-02T01-52-25_326-jvmRun1 surefire-20260502015225480_1tmp surefire_0-20260502015225480_2tmp (dns block)
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java -javaagent:/home/REDACTED/.m2/repository/org/jacoco/org.jacoco.agent/0.8.14/org.jacoco.agent-0.8.14-runtime.jar=destfile=/home/REDACTED/work/api.adoptium.net/api.adoptium.net/adoptium-updater-parent/adoptium-api-v3-updater/target/jacoco.exec --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-exports=java.base/jdk.internal.module=ALL-UNNAMED -Dquarkus-internal-test.serialized-app-model.path=/home/REDACTED/work/api.adoptium.net/api.adoptium.net/adoptium-updater-parent/adoptium-api-v3-updater/target/quarkus/bootstrap/test-app-model.dat -jar /home/REDACTED/work/api.adoptium.net/api.adoptium.net/adoptium-updater-parent/adoptium-api-v3-updater/target/surefire/surefirebooter-20260502015320078_3.jar /home/REDACTED/work/api.adoptium.net/api.adoptium.net/adoptium-updater-parent/adoptium-api-v3-updater/target/surefire 2026-05-02T01-53-20_011-jvmRun1 surefire-20260502015320078_1tmp surefire_0-20260502015320078_2tmp (dns block)
  • repo.gradle.org
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-3.9.15/9925cc1d/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-3.9.15/9925cc1d/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-3.9.15/9925cc1d -Dlibrary.jansi.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-3.9.15/9925cc1d/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/api.adoptium.net/api.adoptium.net org.codehaus.plexus.classworlds.launcher.Launcher test -pl adoptium-updater-parent/adoptium-api-v3-updater -Dtest=ReleaseVersionResolverTest -q (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI linked an issue May 2, 2026 that may be closed by this pull request
Copilot AI changed the title [WIP] Add functionality to make the API return EA releases Add available_ea_releases to /v3/info/available_releases response May 2, 2026
Copilot AI requested a review from karianna May 2, 2026 01:54
@karianna
Copy link
Copy Markdown
Contributor

karianna commented May 3, 2026

@johnoliver Over to you for a human review, not sure if this is how you'd want to add the ability to list EA releases.

@johnoliver
Copy link
Copy Markdown
Contributor

@karianna not sure its a feature I care too much about, nobody has asked for it I dont think

@karianna
Copy link
Copy Markdown
Contributor

@johnoliver See request at #1931

@karianna karianna requested a review from johnoliver May 29, 2026 10:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[API] Make the API return EA releases

3 participants