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

Initial plugin setup needs to consider implied dependencies

      Implied dependencies are not considered at all on the setup dialog. If we think they're so important that we don't allow disabling the plugins when an implied dependent plugin is enabled, we should consider them important enough to install them when such a plugin is installed, no? Otherwise this could result in a giant mess of broken plugins.

      Assigning to Tom as he wrote the plugin wizard. CC kzantow

          [JENKINS-33296] Initial plugin setup needs to consider implied dependencies

          Daniel Beck created issue -

          Keith Zantow added a comment -

          danielbeck this may just be a display issue; are you referring to transitive dependences or something else?

          Keith Zantow added a comment - danielbeck this may just be a display issue; are you referring to transitive dependences or something else?

          Keith Zantow added a comment -

          ... transient dependencies should be installed along with the selected plugins (and they should be visible in the dependency list in the plugin wizard).

          Keith Zantow added a comment - ... transient dependencies should be installed along with the selected plugins (and they should be visible in the dependency list in the plugin wizard).

          Daniel Beck added a comment -

          kzantow Many plugins started out as part of core Jenkins and were later moved into plugins ("detached"). They're automatically added to the classpath of plugins depending on a version of Jenkins when these were still part of core as to not break those plugins.

          List of plugins: https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/ClassicPluginStrategy.java#L324
          Added to dependencies of plugins depending on old cores: https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/ClassicPluginStrategy.java#L313..L320

          They're not listed in the update site JSON as dependencies, as they're implied. It requires Jenkins core internals (i.e. that list in ClassicPluginStrategy) to determine whether they need to be considered implied dependencies.

          The plugin manager UI treats them as actual dependencies, and does not allow disabling e.g. Matrix Project Plugin while at least one plugin depending on core 1.560 or earlier is still enabled. The setup dialog should do the same (or we need to find another solution to this).

          Daniel Beck added a comment - kzantow Many plugins started out as part of core Jenkins and were later moved into plugins ("detached"). They're automatically added to the classpath of plugins depending on a version of Jenkins when these were still part of core as to not break those plugins. List of plugins: https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/ClassicPluginStrategy.java#L324 Added to dependencies of plugins depending on old cores: https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/ClassicPluginStrategy.java#L313..L320 They're not listed in the update site JSON as dependencies, as they're implied . It requires Jenkins core internals (i.e. that list in ClassicPluginStrategy) to determine whether they need to be considered implied dependencies. The plugin manager UI treats them as actual dependencies, and does not allow disabling e.g. Matrix Project Plugin while at least one plugin depending on core 1.560 or earlier is still enabled. The setup dialog should do the same (or we need to find another solution to this).

          Daniel Beck added a comment - - edited

          Based on this list, LDAP Plugin (core dependency 1.566) should have a dependency on JUnit Plugin (detached 1.577) in the setup dialog (which would be completely bogus, but whatever…), but it does not.

          Daniel Beck added a comment - - edited Based on this list, LDAP Plugin (core dependency 1.566) should have a dependency on JUnit Plugin (detached 1.577) in the setup dialog (which would be completely bogus, but whatever…), but it does not.

          Keith Zantow added a comment -

          danielbeck ah yes, this is a larger issue: these plugins also don't have the metadata available to the setup wizard (e.g. junit).

          Keith Zantow added a comment - danielbeck ah yes, this is a larger issue: these plugins also don't have the metadata available to the setup wizard (e.g. junit).

          Daniel Beck added a comment -

          kzantow Right, that probably needs to be fed from ClassicPluginStrategy (and may actually require some reworking there if it is currently only available for already installed plugins).

          Daniel Beck added a comment - kzantow Right, that probably needs to be fed from ClassicPluginStrategy (and may actually require some reworking there if it is currently only available for already installed plugins).
          Keith Zantow made changes -
          Assignee Original: Tom FENNELLY [ tfennelly ] New: Keith Zantow [ kzantow ]
          Daniel Beck made changes -
          Link New: This issue is related to JENKINS-33308 [ JENKINS-33308 ]

          Code changed in jenkins
          User: Daniel Beck
          Path:
          war/src/main/js/api/plugins.js
          http://jenkins-ci.org/commit/jenkins/7f87486c73b1c63cc595c0fc380d42ada45f6116
          Log:
          Temporarily remove plugins affected by JENKINS-33296

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Daniel Beck Path: war/src/main/js/api/plugins.js http://jenkins-ci.org/commit/jenkins/7f87486c73b1c63cc595c0fc380d42ada45f6116 Log: Temporarily remove plugins affected by JENKINS-33296

            kzantow Keith Zantow
            danielbeck Daniel Beck
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: