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

Initial plugin setup needs to consider implied dependencies

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      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 Keith Zantow

        Attachments

          Issue Links

            Activity

            danielbeck Daniel Beck created issue -
            Hide
            kzantow Keith Zantow added a comment -

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

            Show
            kzantow Keith Zantow added a comment - Daniel Beck this may just be a display issue; are you referring to transitive dependences or something else?
            Hide
            kzantow 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).

            Show
            kzantow 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).
            Hide
            danielbeck Daniel Beck added a comment -

            Keith Zantow 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).

            Show
            danielbeck Daniel Beck added a comment - Keith Zantow 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).
            Hide
            danielbeck 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.

            Show
            danielbeck 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.
            Hide
            kzantow Keith Zantow added a comment -

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

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

            Keith Zantow 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).

            Show
            danielbeck Daniel Beck added a comment - Keith Zantow 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).
            kzantow Keith Zantow made changes -
            Field Original Value New Value
            Assignee Tom FENNELLY [ tfennelly ] Keith Zantow [ kzantow ]
            danielbeck Daniel Beck made changes -
            Link This issue is related to JENKINS-33308 [ JENKINS-33308 ]
            Hide
            scm_issue_link 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

            Show
            scm_issue_link 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
            kohsuke Kohsuke Kawaguchi made changes -
            Labels 2.0 2.0 2.0-planned
            kzantow Keith Zantow made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            kzantow Keith Zantow made changes -
            Description 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]
            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]

            PR: https://github.com/jenkinsci/jenkins/pull/2122
            kzantow Keith Zantow made changes -
            Description 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]

            PR: https://github.com/jenkinsci/jenkins/pull/2122
            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]
            kzantow Keith Zantow made changes -
            Remote Link This issue links to "PR 2122 (Web Link)" [ 14071 ]
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: kzantow
            Path:
            core/src/main/java/hudson/model/UpdateSite.java
            core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java
            core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/_entryForm.jelly
            war/src/main/js/api/plugins.js
            war/src/main/js/pluginSetupWizardGui.js
            http://jenkins-ci.org/commit/jenkins/3edb9fdcecedb4514e4b0396306cb0f115a0b321
            Log:
            JENKINS-33296 - plugin dependency issues during install

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: kzantow Path: core/src/main/java/hudson/model/UpdateSite.java core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/_entryForm.jelly war/src/main/js/api/plugins.js war/src/main/js/pluginSetupWizardGui.js http://jenkins-ci.org/commit/jenkins/3edb9fdcecedb4514e4b0396306cb0f115a0b321 Log: JENKINS-33296 - plugin dependency issues during install
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Daniel Beck
            Path:
            core/src/main/java/hudson/ClassicPluginStrategy.java
            core/src/main/java/hudson/PluginManager.java
            core/src/main/java/hudson/model/UpdateSite.java
            core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java
            core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/_entryForm.jelly
            war/src/main/js/api/plugins.js
            war/src/main/js/pluginSetupWizardGui.js
            http://jenkins-ci.org/commit/jenkins/449719ca8aaad1a177f81dbb6a35df76ca82d012
            Log:
            Merge pull request #2122 from kzantow/2.0

            JENKINS-33296 - plugin dependency issues during install

            Compare: https://github.com/jenkinsci/jenkins/compare/f4817411c403...449719ca8aaa

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Daniel Beck Path: core/src/main/java/hudson/ClassicPluginStrategy.java core/src/main/java/hudson/PluginManager.java core/src/main/java/hudson/model/UpdateSite.java core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/_entryForm.jelly war/src/main/js/api/plugins.js war/src/main/js/pluginSetupWizardGui.js http://jenkins-ci.org/commit/jenkins/449719ca8aaad1a177f81dbb6a35df76ca82d012 Log: Merge pull request #2122 from kzantow/2.0 JENKINS-33296 - plugin dependency issues during install Compare: https://github.com/jenkinsci/jenkins/compare/f4817411c403...449719ca8aaa
            danielbeck Daniel Beck made changes -
            Status In Progress [ 3 ] Resolved [ 5 ]
            Resolution Fixed [ 1 ]
            rtyler R. Tyler Croy made changes -
            Workflow JNJira [ 169195 ] JNJira + In-Review [ 198558 ]

              People

              • Assignee:
                kzantow Keith Zantow
                Reporter:
                danielbeck Daniel Beck
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: