Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-6873

Inconsistent library versions notice

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.8.2, 4.0.0, 4.0.0-alpha-1
    • Component/s: None
    • Labels:
      None

      Description

       
      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.

        Attachments

          Activity

            People

            • Assignee:
              slachiewicz Sylwester Lachiewicz
              Reporter:
              calvinhkf Kaifeng Huang

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 10m
                10m

                  Issue deployment