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

Provide an engine for plugin bundling in the Jenkins2 core

    • Icon: New Feature New Feature
    • Resolution: Unresolved
    • Icon: Critical Critical
    • core

      In Jenkins 2 the legacy plugin bundling engine has been removed. It complicates the code, because no we cannot bundle Jenkins plugins anymore and then support their updates. It means that now it's impossible to safely unbundle Core functionality anymore.

      My proposal is to implement a new engine which...

      • Would allow bundling of Jenkins plugins into Jenkins WAR file
      • Install the plugin if it's not installed during the startup (if it's not disabled)
      • Allow updating the version above the bundled one

      For such cases I propose to partially restore the bundling engine, but without pinning feature.

          [JENKINS-36441] Provide an engine for plugin bundling in the Jenkins2 core

          Oleg Nenashev created issue -
          Oleg Nenashev made changes -
          Priority Original: Minor [ 4 ] New: Critical [ 2 ]
          Oleg Nenashev made changes -
          Assignee New: Oleg Nenashev [ oleg_nenashev ]
          Oleg Nenashev made changes -
          Remote Link New: This issue links to "jenkins/pull/2436 (Web Link)" [ 14580 ]
          Oleg Nenashev made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]

          Daniel Beck added a comment -

          we cannot bundle Jenkins plugins anymore and then support their updates

          This appears to be wrong: Unbundling can still be implemented, and these plugins can be updated by the user.

          What no longer is possible is updating to a version newer than what's already there, or telling the user that a newer version than the installed one is bundled (AFAIK).

          The use case is not clear to me.

          Daniel Beck added a comment - we cannot bundle Jenkins plugins anymore and then support their updates This appears to be wrong: Unbundling can still be implemented, and these plugins can be updated by the user. What no longer is possible is updating to a version newer than what's already there, or telling the user that a newer version than the installed one is bundled (AFAIK). The use case is not clear to me.
          Oleg Nenashev made changes -
          Link New: This issue is related to JENKINS-36583 [ JENKINS-36583 ]

          Oleg Nenashev added a comment -

          danielbeck
          Agreed, unbundling still can be implemented. I should have googled for the implementation a bit. On the other hand, there are still some cases, where plugin bundling may be useful. As teilo mentions in JENKINS-36583, plugin bundling is something we still mention in documentation. Such bundling engine may be still useful for particular Jenkins users, who package their own distributions to whatever reason.

          The proposed PR in https://github.com/jenkinsci/jenkins/pull/2436 offers an engine, which allows specifying plugin dependencies in WAR files with deployment process being managed by system properties (required plugin and enforced plugin versions). It brings in some extensibility for various Jenkins configurations, which can be deployed from the same WAR.

          Would be such engine useful?

          Oleg Nenashev added a comment - danielbeck Agreed, unbundling still can be implemented. I should have googled for the implementation a bit. On the other hand, there are still some cases, where plugin bundling may be useful. As teilo mentions in JENKINS-36583 , plugin bundling is something we still mention in documentation. Such bundling engine may be still useful for particular Jenkins users, who package their own distributions to whatever reason. The proposed PR in https://github.com/jenkinsci/jenkins/pull/2436 offers an engine, which allows specifying plugin dependencies in WAR files with deployment process being managed by system properties (required plugin and enforced plugin versions). It brings in some extensibility for various Jenkins configurations, which can be deployed from the same WAR. Would be such engine useful?
          Oleg Nenashev made changes -
          Summary Original: Provide an engine for safe unbundling of plugins from the Jenkins core New: Provide an engine for plugin bundling in the Jenkins2 core

          Daniel Beck added a comment -

          Right, the Jenkins wiki still mentions custom wars etc., but I'm wondering what's missing, besides restoring e.g. pinning, to enable that well.

          Daniel Beck added a comment - Right, the Jenkins wiki still mentions custom wars etc., but I'm wondering what's missing, besides restoring e.g. pinning, to enable that well.

            Unassigned Unassigned
            oleg_nenashev Oleg Nenashev
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: