-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use new implementation of Maven version standard #10558
Merged
Merged
Conversation
This file contains 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
amazimbe
commented
Sep 6, 2024
amazimbe
commented
Sep 6, 2024
@abdulapopoola Regarding use of a feature flag, I find the changes I've had to make quite minimal and not complex. Personally, I'd prefer to just do some additional manual testing. I fear a FF will make the code unnecessarily complex. Let me know your thoughts. |
amazimbe
force-pushed
the
maven-version-spec
branch
2 times, most recently
from
September 9, 2024 08:28
8feac20
to
9d39e03
Compare
amazimbe
force-pushed
the
amazimbe/use-new-maven-version
branch
from
September 10, 2024 11:20
7b3f0a9
to
78647b3
Compare
This is ready to review. The failing test needs to be updated in the smoke tests repo and I'll open a PR in that repo. |
amazimbe
force-pushed
the
amazimbe/use-new-maven-version
branch
from
September 11, 2024 14:41
78647b3
to
c42746b
Compare
kbukum1
reviewed
Sep 11, 2024
kbukum1
reviewed
Sep 11, 2024
kbukum1
reviewed
Sep 11, 2024
amazimbe
commented
Sep 12, 2024
amazimbe
commented
Sep 12, 2024
amazimbe
commented
Sep 12, 2024
amazimbe
commented
Sep 12, 2024
amazimbe
commented
Sep 12, 2024
amazimbe
commented
Sep 12, 2024
amazimbe
commented
Sep 12, 2024
amazimbe
commented
Sep 12, 2024
amazimbe
commented
Sep 12, 2024
amazimbe
force-pushed
the
amazimbe/use-new-maven-version
branch
from
September 12, 2024 11:47
c42746b
to
0cd9a26
Compare
abdulapopoola
approved these changes
Sep 13, 2024
amazimbe
force-pushed
the
amazimbe/use-new-maven-version
branch
from
September 18, 2024 08:24
de18fd0
to
85b1508
Compare
1 task
amazimbe
added a commit
that referenced
this pull request
Sep 20, 2024
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.
What are you trying to accomplish?
Update Maven to use the newly implemented maven version standard: #10524
I added a new implementation of the maven version standard in PR #10524. However, to reduce the size of that PR I decided to create a separate PR where I can integrate the new version implementation.
Fixes incorrect version precedence and adds extra tests for version comparisons.
Anything you want to highlight for special attention from reviewers?
The maven spec: https://maven.apache.org/pom.html#version-order-specification is not 100% compatible with the implementation we had before. For example, in the previous implementation, any versions with qualifiers like 'pr', 'pre' or 'dev' were considered prereleases. The maven spec only mentions "alpha", "beta", "milestone", "rc", "cr" and "snapshot" as having lower precedence than ("" | final | ga) i.e. as potential prereleases.
In my view, it's better to strictly follow the spec since standardising is one of our goals. Therefore, I have removed the other tokens from the previous implementation that were being treated as prereleases. However, this could be a breaking change for some users who might expect versions like 1.2.dev to have lower precedence than 1.2.dev, for example.
I've also had to remove some code and update tests to do with dynamic versioning e.g 2.+. This is a gradle feature that the maven specification doesn't support.
Finally, in order to test the new implementation thoroughly, I've grouped similar test inputs together and I loop through these lists to avoid having to manually type in the test cases individually. Inevitably, that's coming up as a huge diff in the test files.
How will you know you've accomplished your goal?
Checklist