Repository navigation
fix: update maven boms and skip the artifacts they version - #477
Merged
Merged
Conversation
dhalperi
force-pushed
the
fix-maven-bom-updates
branch
from
July 27, 2026 10:33
9db77dc to
ecf71eb
Compare
krakeusz
reviewed
Aug 13, 2026
krakeusz
left a comment
Collaborator
There was a problem hiding this comment.
Just one comment. Other than that, thank you for the contrubution!
| } | ||
|
|
||
| @Test | ||
| fun `should keep the classifier out of the version`() { |
Collaborator
There was a problem hiding this comment.
The format seems to be group:artifact:version, so it seems you have provided no classifier in the test.
Could you rename the test? Or did you intend to test a group:artifact:packaging:classifier:version case?
Contributor
Author
There was a problem hiding this comment.
You're right, no classifier there. coursier.bzl writes outdated.artifacts as group:artifact:version and strips the classifier first, so no 5-part case reaches this code.
I deleted the test instead of renaming it -- without the classifier its input was the same as should parse coordinates above it.
rules_jvm_external writes three files for @maven//:outdated --
outdated.repositories, outdated.artifacts and outdated.boms -- but
MavenDataExtractor only read the first two, so no bom was ever a
candidate for a bump.
Worse, declaring a bom is what strips versions off the artifacts it
manages, and those still appear in outdated.artifacts as
"group:artifact:" with an empty version. Those parsed into a
SimpleVersion(""), which toSemVer rejects, so UpdateLogic silently
dropped them. A repository that moves a family of artifacts under a bom
therefore stops getting updates for the bom and for every artifact the
bom versions.
Read outdated.boms as well, treating it as optional since it is absent
before rules_jvm_external 6.x, and filter versionless artifacts out
explicitly at parse time rather than relying on a null from toSemVer
several layers down. Bumping the bom is what moves the artifacts it
manages; they have no version text of their own to rewrite.
The e2e fixture pins rules_jvm_external 6.10 for boms support; the
existing 5.2 fixtures cover the absent-outdated.boms path.
dhalperi
force-pushed
the
fix-maven-bom-updates
branch
from
August 18, 2026 06:08
ecf71eb to
49262b9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
rules_jvm_external writes three files for @maven//:outdated --
outdated.repositories, outdated.artifacts and outdated.boms -- but
MavenDataExtractor only read the first two, so no bom was ever a
candidate for a bump.
Worse, declaring a bom is what strips versions off the artifacts it
manages, and those still appear in outdated.artifacts as
"group:artifact:" with an empty version. Those parsed into a
SimpleVersion(""), which toSemVer rejects, so UpdateLogic silently
dropped them. A repository that moves a family of artifacts under a bom
therefore stops getting updates for the bom and for every artifact the
bom versions.
Read outdated.boms as well, treating it as optional since it is absent
before rules_jvm_external 6.x, and filter versionless artifacts out
explicitly at parse time rather than relying on a null from toSemVer
several layers down. Bumping the bom is what moves the artifacts it
manages; they have no version text of their own to rewrite.
The e2e fixture pins rules_jvm_external 6.10 for boms support; the
existing 5.2 fixtures cover the absent-outdated.boms path.