Repository navigation
Keep Guava on -jre and drop redundant Renovate groups - #553
tonygermano wants to merge 2 commits into
Conversation
Renovate's Gradle manager records each version catalog entry's version.ref as its sharedVariableName and uses that as the group name when no groupName is configured, so every [versions] entry in gradle/libs.versions.toml already updates as one PR. The jetty, bouncycastle, jackson and log4j groups add nothing beyond their catalog refs, and netty only adds the netty-reactive-streams ref, which is being removed. Drop all five. The pdfbox group's *pdfbox* pattern also matched com.openhtmltopdf:openhtmltopdf-pdfbox, which shares the openhtmltopdf ref with openhtmltopdf-core. That split one version line across two branches, which would produce conflicting PRs. Match only org.apache.pdfbox and de.rototor.pdfbox instead. The remaining groups each span more than one ref or artifacts on literal versions: aws-sdk (eventstream), jersey (hk2, osgi-resource-locator), sun-xml, apache-commons and test-tooling. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Tony Germano <tony@germano.name>
Guava publishes each release in -jre and -android flavors. With Maven versioning, Renovate treats the suffix as an ordinary qualifier and proposed 32.0.1-jre -> 33.7.2-android in the vulnerability PR. Use the regex versioning recommended in Renovate's docs, which puts the suffix in the compatibility group; Renovate only offers versions whose compatibility matches the current one. See: https://docs.renovatebot.com/modules/versioning/regex/ See: OpenIntegrationEngine#522 Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Tony Germano <tony@germano.name>
pacmano1
left a comment
There was a problem hiding this comment.
Ran Renovate locally (--platform=local, which still runs the OSV alerts this config turns on) on this branch and its base, with 44.188.2 (the version that opened #522) and 44.199.0.
The Guava rule doesn't change #522. On 44.188.2 this branch offers 33.7.2-android, same as the base. On 44.199.0 both offer 33.7.2-jre because of Renovate's built-in workarounds:guavaVariants (renovatebot/renovate#47554, first in 44.195.0), which config:recommended pulls in. With that preset ignored, both are back to -android. I'd drop the Guava commit.
Dropping the groups splits jars with advisories off from the rest. Without the jetty, jackson, netty and log4j groups, those jars go to renovate/*-monorepo branches, except jars with an OSV advisory, which fall back to the catalog ref name. Jetty does it today: jetty-http goes to renovate/jetty and the other 12 with a 9.4.58 update to renovate/jetty-monorepo, both bumping the same jetty line. Renovate warns "Found sourceUrl with multiple branches that should probably be combined into a group". With OSV alerts off, all of Jetty stays in jetty-monorepo. With older Jackson, Netty and Log4j in a scratch copy (2.12.0, 4.1.42.Final, 2.14.1), each splits the same way on this branch and not on the base, where the groups are named like the refs. Keep those four groups.
pdfbox and Bouncy Castle came out as described.
Co-authored with Claude Code.
Summary
Renovate's vulnerability PR #522 proposes
com.google.guava:guava32.0.1-jre→33.7.2-android. Guava publishes every release in a-jreand an-androidflavor, and Renovate's Maven versioning treats the suffix as an ordinary qualifier, so it can move us to the wrong flavor. This PR applies the regex versioning that Renovate's docs recommend for this case (https://docs.renovatebot.com/modules/versioning/regex/). The suffix goes into thecompatibilitygroup, and Renovate only offers versions whose compatibility matches the current one. Once this is merged, #522 should offer33.7.2-jreinstead.While looking at
renovate.json, I also removed the groups that the version catalog makes redundant. Renovate's Gradle manager records each catalog entry'sversion.refas itssharedVariableName, and uses that as the group name when nogroupNameis configured. Every[versions]entry ingradle/libs.versions.tomltherefore already updates as a single PR.jetty,bouncycastle,jacksonandlog4j. Each one only matches artifacts on a single catalog ref (jetty-schemasis the exception, but it has its own version and doesn't need to move with Jetty).netty. Its only addition beyond thenettyref isnetty-reactive-streams, which Drop the unused netty-reactive-streams jars #507 removes.pdfboxtoorg.apache.pdfbox:*andde.rototor.pdfbox:*. The old*pdfbox*pattern also matchedcom.openhtmltopdf:openhtmltopdf-pdfbox, which shares theopenhtmltopdfref withopenhtmltopdf-core. That would have split one version line across two branches and produced conflicting PRs.aws-sdk,jersey,sun-xml,apache-commonsandtest-tooling. Each spans more than one ref or includes artifacts on literal versions that should move together.The two changes are in separate commits.
#507 also edits the
nettygroup inrenovate.json(it removescom.typesafe.netty*). Whichever PR merges second will need a trivial rebase. Resolving it means deleting the group.Testing
Claude checked:
renovate-config-validator --strict --no-global renovate.json(Renovate 44.199.0, official Docker image): the config validates as repo config.32.0.1-jre,33.7.2-jreand33.7.2-androidinto the expected major, minor, patch and compatibility parts.lib/workers/repository/updates/branch-name.tsusessharedVariableNameasgroupNamewhen no group is set, and the Gradle catalog extractor setssharedVariableNamefromversion.ref../gradlew clean build -PdisableSigning=truepasses (the build doesn't readrenovate.json).Not tested: an actual Renovate run against this branch.
🤖 Drafted with Claude Code