Kaifeng Huang created MNG-6873:
----------------------------------
Summary: Inconsistent library versions notice.
Key: MNG-6873
URL: https://issues.apache.org/jira/browse/MNG-6873
Project: Maven
Issue Type: Improvement
Reporter: Kaifeng Huang
Attachments: apache maven.pdf
Hi. I have implemented a tool to detect library version inconsistencies. Your
project have 1 inconsistent library and 12 false consistent libraries.
Take junit:junit for example, this library is declared as version 3.8.1 in
maven-core/src/test/resources-project-builder/dependency-inheritance, 4.4 in
maven-core/src/test/resources-project-builder/dependency-inheritance/sub and
etc... Such version inconsistencies may cause unnecessary maintenance effort in
the long run. For example, if two modules become inter-dependent, library
version conflict may happen. It has already become a common issue and hinders
development progress. Thus a version harmonization is necessary.
Provided we applied a version harmonization, I calculated the cost it may have
to harmonize to all upper versions including an up-to-date one. The cost refers
to POM config changes and API invocation changes. Take junit:junit for example,
if we harmonize all the library versions into 4.4. The concern is, how much
should the project code adapt to the newer library version. We list an effort
table to quantify the harmonization cost.
The effort table shows the overall harmonization cost on APIs. It seems your
project have no API invokes on this library, which could be safely upgrade to
4.4
||Index||Module||NA(NAC)||NDA(NDAC)||NMA(NMAC)||
|1|maven-core/src/test/resources-project-builder/dependency-inheritance|0(0)|0(0)|0(0)|
|2|maven-core/src/test/resources-project-builder/dependency-inheritance/sub|0(0)|0(0)|0(0)|
Also we provided another table to show the potential files that may be affected
due to library API change, which could help to spot the concerned API usage and
rerun the test cases.
As for false consistency, take junit junit jar for example. The library is
declared in version 4.13 in all modules. However they are declared differently.
As components are developed in parallel, if one single library version is
updated, which could become inconsistent as mentioned above, may cause
above-mentioned inconsistency issues
If you are interested, you can have a more complete and detailed report in the
attached PDF file.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)