• Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Minor Minor
    • core
    • 2.428

      In CloudBees CI, we implemented a custom Lifecycle implementation in a plugin.

      The existing implementation of Lifecycle relied on UberClassloader however it was running before any plugin was loaded, so in practice setting a custom lifecycle coming from a plugin through the system property hudson.lifecycle was causing Jenkins startup to fail.

      This is proposing a way for plugins to contribute custom lifecycles that can be activated using the system property hudson.lifecycle.

          [JENKINS-72111] Pluggable Lifecycle

          Jesse Glick added a comment -

          Jesse Glick added a comment - Alternately: https://github.com/jenkinsci/jenkins/pull/8589

          Mark Waite added a comment -

          vlatombe since this was included in 2.427 and is not labeled as an lts-candidate, by default it will not be backported into the 2.426.1 release. It would first become visible in an LTS release in mid Feb 2024. Is that sufficient for you or should this be considered for backporting to 2.426.1?

          Mark Waite added a comment - vlatombe since this was included in 2.427 and is not labeled as an lts-candidate, by default it will not be backported into the 2.426.1 release. It would first become visible in an LTS release in mid Feb 2024. Is that sufficient for you or should this be considered for backporting to 2.426.1?

          Jesse Glick added a comment -

          While the ultimately merged PR took the form of a bug fix, and you could even make a somewhat contorted argument¹ for that, I would still consider this to be a (developer API) enhancement and thus not eligible for backporting to an LTS line.


          ¹That the code was using UberClassLoader with the apparent intent of being able to load an implementation from a plugin, since otherwise you would just use the Jenkins core class loader; yet this did not in fact work, if it ever did.

          Jesse Glick added a comment - While the ultimately merged PR took the form of a bug fix, and you could even make a somewhat contorted argument¹ for that, I would still consider this to be a (developer API) enhancement and thus not eligible for backporting to an LTS line. ¹That the code was using UberClassLoader with the apparent intent of being able to load an implementation from a plugin, since otherwise you would just use the Jenkins core class loader; yet this did not in fact work, if it ever did.

            jglick Jesse Glick
            vlatombe Vincent Latombe
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: