Use ecosystem-aware version comparison for latest version detection#5993
Conversation
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 5 |
| Duplication | 0 |
🟢 Coverage 70.59% diff coverage · -0.05% coverage variation
Metric Results Coverage variation ✅ -0.05% coverage variation (-1.00%) Diff coverage ✅ 70.59% diff coverage (70.00%) Coverage variation details
Coverable lines Covered lines Coverage Common ancestor commit (d3ff4c1) 24774 20111 81.18% Head commit (d89365f) 24793 (+19) 20115 (+4) 81.13% (-0.05%) Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch:
<coverage of head commit> - <coverage of common ancestor commit>Diff coverage details
Coverable lines Covered lines Diff coverage Pull request (#5993) 51 36 70.59% Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified:
<covered lines added or modified>/<coverable lines added or modified> * 100%
TIP This summary will be updated as you push new changes. Give us feedback
There was a problem hiding this comment.
Pull request overview
Updates repository meta analyzers to use ecosystem-aware version parsing/comparison (via Versatile) instead of Maven’s ComparableVersion, improving correctness for NuGet and Composer latest-version detection.
Changes:
- Replace
ComparableVersionwith VersatileVersionFactoryusingSCHEME_NUGETandSCHEME_COMPOSER. - Use Versatile stability detection (
isStable()) to filter pre-release/dev versions during latest-version selection. - Minor formatting/Javadoc touch-ups in the analyzers.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 7 comments.
| File | Description |
|---|---|
| src/main/java/org/dependencytrack/tasks/repositories/NugetMetaAnalyzer.java | Switch NuGet page/leaf version comparisons to Versatile; adjust pre-release detection; minor Javadoc tweaks. |
| src/main/java/org/dependencytrack/tasks/repositories/ComposerMetaAnalyzer.java | Switch Composer version comparisons to Versatile; filter to stable versions; minor formatting tweaks. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
src/main/java/org/dependencytrack/tasks/repositories/ComposerMetaAnalyzer.java
Show resolved
Hide resolved
src/main/java/org/dependencytrack/tasks/repositories/ComposerMetaAnalyzer.java
Outdated
Show resolved
Hide resolved
src/main/java/org/dependencytrack/tasks/repositories/NugetMetaAnalyzer.java
Outdated
Show resolved
Hide resolved
src/main/java/org/dependencytrack/tasks/repositories/NugetMetaAnalyzer.java
Show resolved
Hide resolved
src/main/java/org/dependencytrack/tasks/repositories/NugetMetaAnalyzer.java
Show resolved
Hide resolved
src/main/java/org/dependencytrack/tasks/repositories/NugetMetaAnalyzer.java
Show resolved
Hide resolved
src/main/java/org/dependencytrack/tasks/repositories/NugetMetaAnalyzer.java
Show resolved
Hide resolved
a65fb4e to
ea1e672
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
src/main/java/org/dependencytrack/tasks/repositories/ComposerMetaAnalyzer.java
Outdated
Show resolved
Hide resolved
src/main/java/org/dependencytrack/tasks/repositories/ComposerMetaAnalyzer.java
Show resolved
Hide resolved
src/main/java/org/dependencytrack/tasks/repositories/NugetMetaAnalyzer.java
Outdated
Show resolved
Hide resolved
ea1e672 to
93adf34
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
src/main/java/org/dependencytrack/tasks/repositories/NugetMetaAnalyzer.java
Outdated
Show resolved
Hide resolved
src/main/java/org/dependencytrack/tasks/repositories/ComposerMetaAnalyzer.java
Show resolved
Hide resolved
src/main/java/org/dependencytrack/tasks/repositories/NugetMetaAnalyzer.java
Show resolved
Hide resolved
src/main/java/org/dependencytrack/tasks/repositories/ComposerMetaAnalyzer.java
Show resolved
Hide resolved
This was missed when originally introducing versatile. Both the Composer and NuGet meta analyzer rely on manual version comparison to determine the latest component version. Both used ComparableVersion before, which is a class from Maven, and thus can only apply Maven-specific semantics. Signed-off-by: nscuro <[email protected]>
93adf34 to
d89365f
Compare
Description
Uses ecosystem-aware version comparison for latest version detection.
This was missed when originally introducing versatile. Both the Composer and NuGet meta analyzer rely on manual version comparison to determine the latest component version. Both used ComparableVersion before, which is a class from Maven, and thus can only apply Maven-specific semantics.
Addressed Issue
N/A
Additional Details
N/A
Checklist
This PR implements an enhancement, and I have provided tests to verify that it works as intendedThis PR introduces changes to the database model, and I have added corresponding update logicThis PR introduces new or alters existing behavior, and I have updated the documentation accordingly