Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-58775

Dependencies of Lower Version Plugin May be Downloaded even though Not Needed

    Details

    • Sprint:
      GSoC 2019. Coding Phase 3
    • Similar Issues:

      Description

      Right now, if there's a requested plugin or a plugin that's a dependency that is lower than a required version of the same plugin, that lower version of the plugin is "replaced" by the higher version. However, one issue with this is that the lower version might have required dependencies that the higher one doesn't require, and these unneeded plugins are never cleaned up and will be downloaded even though they're not needed.

       

      Example: Suppose the user wants to download DotCi (version 2.3) and the latest version of DotCi-InstallPackages. 

      DotCi:2.3 depends on matrix project and github-oauth, github-oauth has an entire tree of dependencies

      DotCi-InstallPackages depends on DotCi:2.32.1, which no longer depends on github-oauth

      DotCi:2.3 will be replaced by DotCi:2.32.1, but all of its dependencies that are no longer needed will still be marked as being needed to be installed

      If a plugin is replaced by a higher version, the original plugin's children should probably be removed from the list of installed plugins (and also replaced with the higher version's dependencies) . But what if one of those children was replaces a lower version of another plugin? You would have to restore the original version of that other plugin.  

      This seems like it could get complicated somewhat quickly, so another way to do this could be to build the full dependency tree without any replacements first, then "optimize" the tree after. 

       

        Attachments

          Activity

          Hide
          stopalopa Natasha Stopa added a comment -

          https://github.com/jenkinsci/plugin-installation-manager-tool/pull/61

           

          This problem ended up being way more difficult than I anticipated. I'm actually not sure if there's an efficient way to do it. 

          Show
          stopalopa Natasha Stopa added a comment - https://github.com/jenkinsci/plugin-installation-manager-tool/pull/61   This problem ended up being way more difficult than I anticipated. I'm actually not sure if there's an efficient way to do it. 

            People

            • Assignee:
              stopalopa Natasha Stopa
              Reporter:
              stopalopa Natasha Stopa
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: