github ben-manes/gradle-versions-plugin v0.60.0

2 hours ago
  • Accept an untyped Kotlin DSL lambda in the component selection rules, which Gradle 9 binds to the rule source overload instead, leaving candidate, currentVersion and reject unresolved (#941, #1058)
  • Name the configuration a dependency was declared directly against, so a plugin that fills a classpath of its own when it is applied no longer reads as the build declaring the dependency (#1055, #1056)
  • Report the reason a dependency constraint was declared with, where only a dependency's reason reached the report before, and the version constraint a declaration stated as versionConstraint, so a component selection rule can hold the report to the bound the build declared rather than restating it (#1059)
  • Bound a module the build declares without a version of its own by the version constraints the platforms it consumes state for it, so a rule that respects declared bounds stops offering a version the platform does not allow (#402, #755, #1060)
  • Recover a plugin marker's declared bound from the version catalog when the alias states a range, which Gradle flattens to a bare required version on the buildscript classpath (#755, #1061)
  • Document a recommended configuration and group the task properties by what they control (#1062)
  • Test and document Gradle 9.7.0 as the current release (#1064)
  • Say what the configurations field of the JSON and XML reports holds, now that it also names a configuration the build declared against directly (#1055, #1063)
  • Regenerate the HTML report screenshot (#1054)
  • Accept Guava's -jre and -android releases in the documented isNonStable filter, which the pattern the README recommended treated as unstable (#1065)

Important

  • An entry can now carry an attribution line where it carried none, naming the configuration the dependency was declared against. A tool that parses the plain text report line by line has to skip it, as it already does for the other attribution lines. The JSON and XML reports carry the same names in configurations, which until now held only what a plugin contributed, so a tool reading that field has to read contributed alongside it to tell the two apart.
  • An entry for a dependency constraint declared with because now carries that reason, where only a dependency's reason appeared before. It prints on the same line as a dependency's reason does, so a tool that already handles one handles both.

See Migrating from prior versions.

Tip

  • A component selection rule can hold the report to what the build declared, with rejectVersionIf { !satisfiesDeclaredBound }. A module bounded by a strictly or by a platform the build consumes is then held to that bound, so the report offers only versions the build can actually take (see Respecting declared bounds).
  • A Kotlin DSL build script that worked around the Gradle 9 overload ambiguity by naming Action<ComponentSelectionWithCurrent> can go back to the untyped all { } and withModule(id) { } forms.
  • A build that copied the README's isNonStable filter has a pattern that treats Guava's -jre and -android releases as unstable and drops every Guava upgrade from the report. Widen the copy to ^[0-9,.v-]+(-r|-jre|-android)?$.

Don't miss a new gradle-versions-plugin release

NewReleases is sending notifications on new releases.