[
https://issues.apache.org/jira/browse/MAHOUT-2095?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Trevor Grant resolved MAHOUT-2095.
----------------------------------
Resolution: Won't Fix
Jira Cleanup 1/31/24
> Inconsistent library versions notice.
> -------------------------------------
>
> Key: MAHOUT-2095
> URL: https://issues.apache.org/jira/browse/MAHOUT-2095
> Project: Mahout
> Issue Type: Improvement
> Reporter: Kaifeng Huang
> Priority: Major
> Attachments: apache mahout.pdf
>
>
> Hi. I have implemented a tool to detect library version inconsistencies. Your
> project have 2 inconsistent libraries.
> Take com.google.guava:guava for example, this library is declared as version
> 14.0.1 in core, 11.0.2 in community/mahout-mr/mr 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
> com.google.guava:guava for example, if we harmonize all the library versions
> into 28.1-android. 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 is listed below. It shows the overall harmonization effort
> by modules. The columns represents the number of library APIs and API
> calls(NA,NAC), deleted APIs and API calls(NDA,NDAC) as well as modified API
> and API calls(NMA,NMAC). Modified APIs refers to those APIs whose call graph
> is not the same as previous version. Take the first row for example, if
> upgrading the library into version 28.1-android. Given that 84 APIs is used
> in module community/mahout-mr/mr, 10 of them is deleted in a recommended
> version(which will throw a NoMethodFoundError unless re-compiling the
> project), 68 of them is regarded as modified which could break the former API
> contract.
> ||Index||Module||NA(NAC)||NDA(NDAC)||NMA(NMAC)||
> |1|community/mahout-mr/mr|84(163)|10(12)|68(139)|
> |2|core|19(37)|2(2)|17(35)|
> 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. The table is listed below.
> ||Module||File||Type||API||
> |core|core/src/test/java/org/apache/mahout/math/set/HashUtilsTest.java|modify|com.google.common.collect.Lists.newArrayList()|
> |core|core/src/test/java/org/apache/mahout/math/set/HashUtilsTest.java|modify|com.google.common.collect.HashMultiset.create()|
> |core|core/src/main/java/org/apache/mahout/math/als/AlternatingLeastSquaresSolver.java|modify|com.google.common.base.Preconditions.checkArgument(boolean)|
> |4|..|..|..|
>
> 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.20.10#820010)