[ 
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)

Reply via email to