dist: Migrate from Zulu Discovery API to Azul Metadata API (#1010)

* Use Azul metadata API

* Document arm64 -> aarch64 mapping in README.md

* Paginate through all available versions

* Fix typo: win_aarhc4

* Only query for linux_glibc packages

* Add Zulu CRaC package support to metadata migration

Fold CRaC-related work into the Zulu metadata API migration by wiring crac_supported query handling, extending Zulu package docs, and updating installer tests for jdk+crac/jre+crac behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Harden Zulu metadata pagination with safety cap

- Stop paginating on a short page to avoid an extra empty request
- Guard against undefined results (not just null)
- Cap iterations at 100 pages and warn if the limit is hit to
  prevent a runaway loop if the API misbehaves

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Preserve JDK build number from Azul Metadata API

The Azul Metadata API returns java_version as a 3-element array
(e.g. [17,0,7]) and reports the build number separately in
openjdk_build_number. The migration mapped version directly from
java_version, dropping the build and breaking exact-version lookups
like 17.0.7+7 (e2e failure: "No matching version found for SemVer").

Add openjdk_build_number to IZuluVersions and append it to
java_version before converting to semver so resolved versions retain
the build (e.g. 17.0.7+7). Update the zulu test fixtures to mirror the
real API shape (3-element java_version plus openjdk_build_number) so
unit tests exercise the actual response format, and rebuild dist.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Bruno Borges <brborges@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
James Wald
2026-07-08 05:00:43 -04:00
committed by GitHub
parent 0f481fcb61
commit d3530c1eb4
12 changed files with 1991 additions and 579 deletions
+8 -5
View File
@@ -1,9 +1,12 @@
// Models from https://app.swaggerhub.com/apis-docs/azul/zulu-download-community/1.0
// Models from https://app.swaggerhub.com/apis/azul/metadata/1.0
export interface IZuluVersions {
id: number;
package_uuid: string;
name: string;
url: string;
jdk_version: Array<number>;
zulu_version: Array<number>;
download_url: string;
java_version: Array<number>;
distro_version: Array<number>;
openjdk_build_number: number;
latest: boolean;
availability_type: string;
}