api.adoptium.net icon indicating copy to clipboard operation
api.adoptium.net copied to clipboard

release_versions endpoint - lts vs non-lts versions breaks jdk8u info https://release-monitoring.org/project/371025/

Open pnasrat opened this issue 1 year ago • 4 comments

Describe the bug

Unclear API expectations for lts=true vs lts=false - this might be an API issue or it might be an issue that needs to be fixed on the release-monitoring side.

I was looking at the release_versions endpoint as that seems used by release monitoring https://release-monitoring.org/project/371025/ and noticed it didn't contain the last 2 jdk8u updates https://wiki.openjdk.org/display/jdk8u/Main 8u422-b05 and 8u412-b08 (report 8u402+6)

To Reproduce Steps to reproduce the behavior:

  1. Compare the outputs of the following
curl 'https://api.adoptium.net/v3/info/release_versions?&page=0&page_size=100&project=jdk&release_type=ga' | jq ' .versions[] | select(.major == 8) ' 

The above results in empty output

curl 'https://api.adoptium.net/v3/info/release_versions?&page=0&page_size=100&project=jdk&release_type=ga&lts=true' | jq ' .versions[] | select(.major == 8) ' 
{
  "adopt_build_number": 1,
  "build": 5,
  "major": 8,
  "minor": 0,
  "openjdk_version": "1.8.0_422-b05",
  "security": 422,
  "semver": "8.0.422+5.1"
}
...

Expected behavior

It looks to me like the 8 LTS releases only appear with lts=true but I assume at some point in the past they were there without for the fedora release-monitoring service to pick up.

I assume jdk8u432 will appear under the lts releases once the adoptium version is tagged built (only got tagged on openjdkk/jdk8u half an hour ago). But I'm wondering if those releases being missing without lts=true is expected (as there probablyy needs to be a separate release-monitoring entry for adoptium-openjdk-lts setup

pnasrat avatar Oct 17 '24 14:10 pnasrat

FYI @johnoliver

sxa avatar Oct 17 '24 14:10 sxa

@pnasrat because the lts=false returns more than lts=true, and lts=false produces more than 100 results before the the 8 releases are shown, the 8 releases are pushed to the second page, setting page=1 should get you on to the 8 releases, i.e:

https://api.adoptium.net/v3/info/release_versions?&page=1&page_size=100&project=jdk&release_type=ga

johnoliver avatar Oct 22 '24 11:10 johnoliver

@johnoliver looking at it further page_size isn't being honored over 50

# 25
$  curl -s  'https://api.adoptium.net/v3/info/release_versions?&page=0&page_size=25&project=jdk&release_type=ga' | jq ' .versions | length'
25
# 100
$ curl -s 'https://api.adoptium.net/v3/info/release_versions?&page=0&page_size=100&project=jdk&release_type=ga' | jq ' .versions | length'
50

pnasrat avatar Oct 22 '24 13:10 pnasrat

https://github.com/adoptium/api.adoptium.net/blob/0c6c59511e9a281dc3ae6842833de8a1b9760167/adoptium-frontend-parent/adoptium-api-v3-frontend/src/main/kotlin/net/adoptium/api/v3/routes/info/ReleaseListResource.kt#L106

        @Parameter(name = "page_size", description = "Pagination page size", schema = Schema(defaultValue = Pagination.defaultPageSize, maximum = Pagination.maxPageSize, type = SchemaType.INTEGER), required = false)
        @QueryParam("page_size")
        pageSize: Int?,

Pagination larger page size is capped to 50

https://github.com/adoptium/api.adoptium.net/blob/0c6c59511e9a281dc3ae6842833de8a1b9760167/adoptium-frontend-parent/adoptium-api-v3-frontend/src/main/kotlin/net/adoptium/api/v3/Pagination.kt#L11

pnasrat avatar Oct 22 '24 13:10 pnasrat