Skip to content

Conversation

@dbrant
Copy link
Contributor

@dbrant dbrant commented Jul 13, 2024

What are you trying to accomplish?

Certain projects release packages with pre-release versions that have a suffix of -preN, which doesn't seem to get caught by dependabot as a prerelease, and gets submitted in a pull request as a stable package.

example prerelease:
https://github.com/maplibre/maplibre-native/releases/tag/android-v11.0.2-pre0

example erroneous pull request:
wikimedia/apps-android-wikipedia#4806

@dbrant dbrant requested a review from a team as a code owner July 13, 2024 15:08
@github-actions github-actions bot added the L: java:maven Maven packages via Maven label Jul 13, 2024
@abdulapopoola
Copy link
Contributor

Thanks a lot @dbrant , could you please add a test and we can get this over the line :)

@github-actions github-actions bot added the L: java:gradle Maven packages via Gradle label Jul 13, 2024
@dbrant
Copy link
Contributor Author

dbrant commented Jul 13, 2024

Thanks a lot @dbrant , could you please add a test and we can get this over the line :)

whoops, of course -- how about now?

@abdulapopoola abdulapopoola merged commit 3147bb1 into dependabot:main Jul 15, 2024
@abdulapopoola
Copy link
Contributor

Merged and deployed! Thanks @dbrant !!

@deivid-rodriguez
Copy link
Contributor

For what it's worth, we discussed this in the past at #6747 and decided not to deviate from what maven documents at https://maven.apache.org/pom.html#Version_Order_Specification. And -pre is not mentioned at all in there.

Funny enough, when we rejected adding "-preview", I actually mentioned "-pre" explicitly:

That said, I also feel package authors should stick to what their package manager supports, and not use their own versioning. Because now if another package author decides to name their prerelease versions as "pre", then we'll need to support that and when that stops?

@deivid-rodriguez
Copy link
Contributor

Well, it was not really a clear decision, I totally understand taking the pragmatic approach over the correct, consistent one. Just saying that if we decide to do this, we may also want to reopen #6747.

@jonjanego
Copy link
Member

Hi @dbrant - I wanted to give you heads up that we have decided to revisit this decision. See #10626

@dbrant
Copy link
Contributor Author

dbrant commented Sep 17, 2024

@jonjanego Thanks for the note, and no worries -- it looks like we'll need to convince the MapLibre developers to adopt more standard prerelease versions instead.

@sultan
Copy link

sultan commented Dec 13, 2025

The Dependabot team has decided to align strictly with Maven qualifiers:

This alignment makes sense for consistency across tools. Yet recurring issues show that Maven’s current handling of qualifiers is incomplete, impacting multiple companies and users:

These issues need to be addressed upstream in Maven Resolver. I am working to encourage Maven to adopt a fix through this PR:

The voice of users and teams such as Dependabot can strongly influence Maven’s willingness to integrate this into Maven 4.

Proposed ordering:

  • alpha < beta < milestone < pr = pre = preview < rc = cr < dev < snapshot < final = ga = release < sp

I edited the documentation to discourage the use of certain qualifiers:

  • The use of pr, pre, preview is discouraged
  • The use of cr is discouraged (use rc instead)
  • The use of dev is discouraged
  • The use of final, ga, release is discouraged (use no qualifier instead)
  • The use of sp is discouraged (increment patch version instead)

As long as discouraged qualifiers continue to be used in practice, tools will still need to support them. Once they are phased out, however, support can be safely dropped.

Optional inclusions:

  • ea (early access), edr, pfd (drafts), mr

Target PR to support:

Supporting this upstream effort helps turn recurring patches into a durable solution for the ecosystem. You can help by adding your voice on the Maven Resolver PR — for example, by sharing which qualifiers affect your projects, or by confirming that consistent ordering would reduce the need for local workarounds. Demonstrating real impact from tools like Dependabot makes it harder for Maven to ignore these changes.

Thanks for your input.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

L: java:gradle Maven packages via Gradle L: java:maven Maven packages via Maven

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants