Skip to content

Improve missing metadata reporting for newer repository releases#948

Merged
jormundur00 merged 1 commit into
graalvm:masterfrom
jormundur00:jormundur00/avoid-issues-for-newer-metadata
Jul 2, 2026
Merged

Improve missing metadata reporting for newer repository releases#948
jormundur00 merged 1 commit into
graalvm:masterfrom
jormundur00:jormundur00/avoid-issues-for-newer-metadata

Conversation

@jormundur00

@jormundur00 jormundur00 commented Jul 2, 2026

Copy link
Copy Markdown
Member

Closes #947

Summary

This PR improves listLibrariesMissingMetadata reporting so Native Build Tools distinguishes between:

  • dependencies that are genuinely missing from the reachability metadata repository
  • dependencies that are already covered by a newer official metadata repository release than the one currently configured or bundled

Instead of treating both cases as "missing" and offering or creating support requests for all of them, the command now performs a second lookup against the latest official reachability metadata release when the configured repository does not cover a dependency.

If the dependency is found there, the report:

  • classifies it separately as supported_in_newer_metadata_repository
  • does not create or suggest a GitHub issue for that dependency
  • tells the user to upgrade the metadata repository version or Native Build Tools

What Changed

  • added a second-pass lookup in MissingMetadataCommandSupport against the latest official GraalVM reachability metadata release
  • introduced a dedicated supported_in_newer_metadata_repository result status in the JSON report
  • updated console rendering to show dependencies covered by a newer release in a separate section
  • kept issue creation limited to dependencies that remain uncovered after both checks
  • added focused tests covering the newer-release path and the no-issue-creation behavior
  • updated the functional spec for missing metadata reporting and repository coverage semantics
  • replaced the list-libraries-missing-metadata schema v1.0.0 with v1.1.0
  • updated Gradle and Maven docs to reference the v1.1.0 schema

Why

Today, users running an older Native Build Tools build or an older metadata repository can end up opening issues against oracle/graalvm-reachability-metadata for libraries that are already covered on the repository, just not in the version they are currently consuming.

This change keeps the output actionable for those users while avoiding false-positive support requests.

Example Output

Example console output showing the new section in context when a dependency is not covered by the configured metadata repository but is covered by a newer release:

[INFO] Dependencies needing attention: 6 of 18 scanned (1 covered in a newer metadata repository release).

Covered in a newer metadata repository release (update metadata repository or Native Build Tools):
  - org.springframework.boot:spring-boot-starter-webmvc:4.1.0 -> supported in 1.0.3
      update metadata repository to 1.0.3 or upgrade Native Build Tools

To request support for the remaining 5 libraries automatically, re-run with createIssues=true:

    ./mvnw native:list-libraries-missing-metadata -DcreateIssues=true -DgithubToken=<token>

  Token sources tried in order:
    -DgithubToken=...  ->  $GITHUB_TOKEN  ->  $GH_TOKEN  ->  `gh auth token`

Or request support manually, one library at a time:
  - org.springframework.boot:spring-boot-starter-cache:3.5.6      -> request support [1]
  - org.springframework.boot:spring-boot-starter-thymeleaf:3.5.6  -> request support [2]
  - org.webjars.npm:bootstrap:5.3.8                               -> request support [3]

In that case, the dependency is surfaced to the user, but it is excluded from issue creation and from the manual support-request list.

Validation

  • grund check
  • ./gradlew --no-daemon --console=plain :graalvm-reachability-metadata:test --tests org.graalvm.reachability.MissingMetadataCommandSupportTest

@oracle-contributor-agreement oracle-contributor-agreement Bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Jul 2, 2026
@jormundur00 jormundur00 added enhancement New feature or request and removed OCA Verified All contributors have signed the Oracle Contributor Agreement. labels Jul 2, 2026
@jormundur00 jormundur00 self-assigned this Jul 2, 2026
@oracle-contributor-agreement oracle-contributor-agreement Bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Jul 2, 2026
@jormundur00
jormundur00 force-pushed the jormundur00/avoid-issues-for-newer-metadata branch from 992fd1d to 4318257 Compare July 2, 2026 06:56
@jormundur00
jormundur00 requested a review from vjovanov July 2, 2026 08:10
@jormundur00
jormundur00 merged commit fa30972 into graalvm:master Jul 2, 2026
49 checks passed
mergify Bot added a commit to robfrank/linklift that referenced this pull request Jul 17, 2026
….2 to 1.1.4 [skip ci]

Bumps [org.graalvm.buildtools:native-maven-plugin](https://github.com/graalvm/native-build-tools) from 1.1.2 to 1.1.4.
Release notes

*Sourced from [org.graalvm.buildtools:native-maven-plugin's releases](https://github.com/graalvm/native-build-tools/releases).*

> 1.1.4
> -----
>
> What's Changed
> --------------
>
> * Release 1.1.3 by [`@​graalvmbot`](https://github.com/graalvmbot) in [graalvm/native-build-tools#944](https://redirect.github.com/graalvm/native-build-tools/pull/944)
> * Bump version to 1.1.4-SNAPSHOT by [`@​graalvmbot`](https://github.com/graalvmbot) in [graalvm/native-build-tools#946](https://redirect.github.com/graalvm/native-build-tools/pull/946)
> * Re-enable layered application functional test by [`@​jormundur00`](https://github.com/jormundur00) in [graalvm/native-build-tools#904](https://redirect.github.com/graalvm/native-build-tools/pull/904)
> * Fix Gradle system property quoting by [`@​jormundur00`](https://github.com/jormundur00) in [graalvm/native-build-tools#907](https://redirect.github.com/graalvm/native-build-tools/pull/907)
> * Avoid disabled agent instrumentation by [`@​jormundur00`](https://github.com/jormundur00) in [graalvm/native-build-tools#905](https://redirect.github.com/graalvm/native-build-tools/pull/905)
> * Use systemPropertyVariables for Maven test plugin injection by [`@​jormundur00`](https://github.com/jormundur00) in [graalvm/native-build-tools#902](https://redirect.github.com/graalvm/native-build-tools/pull/902)
> * Improve missing metadata reporting for newer repository releases by [`@​jormundur00`](https://github.com/jormundur00) in [graalvm/native-build-tools#948](https://redirect.github.com/graalvm/native-build-tools/pull/948)
> * Fix invalid Gradle tracing-agent grund citation by [`@​jormundur00`](https://github.com/jormundur00) in [graalvm/native-build-tools#950](https://redirect.github.com/graalvm/native-build-tools/pull/950)
> * Use explicit Gradle project dependency notation and test on Gradle 9.6.1 by [`@​jormundur00`](https://github.com/jormundur00) in [graalvm/native-build-tools#903](https://redirect.github.com/graalvm/native-build-tools/pull/903)
> * Migrate functional CI to GraalVM for JDK 25 by [`@​jormundur00`](https://github.com/jormundur00) in [graalvm/native-build-tools#953](https://redirect.github.com/graalvm/native-build-tools/pull/953)
> * Add Maven plugin inspections to CI by [`@​jormundur00`](https://github.com/jormundur00) in [graalvm/native-build-tools#911](https://redirect.github.com/graalvm/native-build-tools/pull/911)
> * Add common utils CI gate by [`@​jormundur00`](https://github.com/jormundur00) in [graalvm/native-build-tools#912](https://redirect.github.com/graalvm/native-build-tools/pull/912)
> * Fix Maven metadata repository fallback mutation by [`@​jormundur00`](https://github.com/jormundur00) in [graalvm/native-build-tools#914](https://redirect.github.com/graalvm/native-build-tools/pull/914)
> * Add regression tests for Windows args-file paths by [`@​jormundur00`](https://github.com/jormundur00) in [graalvm/native-build-tools#915](https://redirect.github.com/graalvm/native-build-tools/pull/915)
> * Update reachability metadata to 1.0.5 by [`@​graalvmbot`](https://github.com/graalvmbot) in [graalvm/native-build-tools#962](https://redirect.github.com/graalvm/native-build-tools/pull/962)
>
> **Full Changelog**: <graalvm/native-build-tools@1.1.3...1.1.4>
>
> 1.1.3
> -----
>
> What's Changed
> --------------
>
> * Release 1.1.2 by [`@​graalvmbot`](https://github.com/graalvmbot) in [graalvm/native-build-tools#923](https://redirect.github.com/graalvm/native-build-tools/pull/923)
> * Bump version to 1.1.3-SNAPSHOT by [`@​graalvmbot`](https://github.com/graalvmbot) in [graalvm/native-build-tools#924](https://redirect.github.com/graalvm/native-build-tools/pull/924)
> * Bump io.netty:netty-codec-http from 4.1.132.Final to 4.1.135.Final in /samples/metadata-repo-integration by [`@​dependabot`](https://github.com/dependabot)[bot] in [graalvm/native-build-tools#932](https://redirect.github.com/graalvm/native-build-tools/pull/932)
> * Refine grund specification by [`@​jormundur00`](https://github.com/jormundur00) in [graalvm/native-build-tools#917](https://redirect.github.com/graalvm/native-build-tools/pull/917)
>
> **Full Changelog**: <graalvm/native-build-tools@1.1.2...1.1.3>


Commits

* [`68c8e9f`](graalvm/native-build-tools@68c8e9f) Release 1.1.4
* [`a38531d`](graalvm/native-build-tools@a38531d) Merge pull request [#962](https://redirect.github.com/graalvm/native-build-tools/issues/962) from graalvm/update-metadata-to-1.0.5
* [`3073b19`](graalvm/native-build-tools@3073b19) Update reachability metadata to 1.0.5
* [`6a4139f`](graalvm/native-build-tools@6a4139f) Add regression tests for Windows args-file paths ([#915](https://redirect.github.com/graalvm/native-build-tools/issues/915))
* [`128dd2c`](graalvm/native-build-tools@128dd2c) Fix Maven metadata repository fallback mutation ([#914](https://redirect.github.com/graalvm/native-build-tools/issues/914))
* [`12ebca4`](graalvm/native-build-tools@12ebca4) Add common utils CI gate ([#912](https://redirect.github.com/graalvm/native-build-tools/issues/912))
* [`609bc14`](graalvm/native-build-tools@609bc14) Add Maven plugin inspections to CI ([#911](https://redirect.github.com/graalvm/native-build-tools/issues/911))
* [`52a30b1`](graalvm/native-build-tools@52a30b1) Migrate functional CI to GraalVM for JDK 25 ([#953](https://redirect.github.com/graalvm/native-build-tools/issues/953))
* [`4bdb360`](graalvm/native-build-tools@4bdb360) Use explicit Gradle project dependency notation and test on Gradle 9.6.1 ([#903](https://redirect.github.com/graalvm/native-build-tools/issues/903))
* [`fb710bb`](graalvm/native-build-tools@fb710bb) Fix invalid Gradle tracing-agent grund citation ([#950](https://redirect.github.com/graalvm/native-build-tools/issues/950))
* Additional commits viewable in [compare view](graalvm/native-build-tools@1.1.2...1.1.4)
  
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility\_score?dependency-name=org.graalvm.buildtools:native-maven-plugin&package-manager=maven&previous-version=1.1.2&new-version=1.1.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
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 this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request OCA Verified All contributors have signed the Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Avoid opening metadata-repo issues for libraries already covered by newer reachability metadata releases

2 participants