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

Determine Dependencies between PluginManager.java on Jenkins Core

    • GSoC 2019. Coding Phase 1

      The goal of this task is to identify dependencies between the PluginManager class and Jenkins core to understand the effects of pulling plugin management out of the core into its own module.  

          [JENKINS-57672] Determine Dependencies between PluginManager.java on Jenkins Core

          Natasha Stopa added a comment -

          I started looking into splitting a separate module out from Jenkins core that would contain the plugin management class and its dependencies, but it appears that the number of dependencies will be quite large https://github.com/stopalopa/jenkins/tree/plugin-manager-dependencies.  Next I will look into mapping out and documenting the more direct dependencies of the plugin management to see if these can more easily be cut out from the core. 

          Natasha Stopa added a comment - I started looking into splitting a separate module out from Jenkins core that would contain the plugin management class and its dependencies, but it appears that the number of dependencies will be quite large  https://github.com/stopalopa/jenkins/tree/plugin-manager-dependencies .  Next I will look into mapping out and documenting the more direct dependencies of the plugin management to see if these can more easily be cut out from the core. 

          Natasha Stopa added a comment -

          I created a diagram showing some of the dependencies between the Plugin Manager and Jenkins Core. Black arrows represent a superclass/subclass or interface relationship; green arrows represent some other kind of relationship/dependency, and next to the methods in red are dependencies on Jenkins Core. Because of the intricacy of the dependencies on Jenkins core, on the mentor call today we talked about instead either trying to only pull out the part of Plugin Manager that does plugin installations or having the library be completely separate, but input from mentors to confirm this decision would be appreciated.  

          https://www.lucidchart.com/invitations/accept/f35d3b14-0d41-4dd8-a787-e765f4582de8

           

          kwhetstone, arnabcse28 batmat, oleg_nenashev, jnz_topdanmark

          Natasha Stopa added a comment - I created a diagram showing some of the dependencies between the Plugin Manager and Jenkins Core. Black arrows represent a superclass/subclass or interface relationship; green arrows represent some other kind of relationship/dependency, and next to the methods in red are dependencies on Jenkins Core. Because of the intricacy of the dependencies on Jenkins core, on the mentor call today we talked about instead either trying to only pull out the part of Plugin Manager that does plugin installations or having the library be completely separate, but input from mentors to confirm this decision would be appreciated.   https://www.lucidchart.com/invitations/accept/f35d3b14-0d41-4dd8-a787-e765f4582de8   kwhetstone , arnabcse28 batmat , oleg_nenashev , jnz_topdanmark

          Jon Brohauge added a comment -

          In the essence of loosely coupled components playing nicely together, I personally would like it to be a separate component, but I fear that might be too big at task within the given timeframe.

          Jon Brohauge added a comment - In the essence of loosely coupled components playing nicely together, I personally would like it to be a separate component, but I fear that might be too big at task within the given timeframe.

          Natasha Stopa added a comment -

          jnz_topdanmark, I'd definitely like to do something that would be most beneficial to the Jenkins community, but I get kind of overwhelmed when I look at this and I'm not even really sure how to start.  I'd still be open to going that route, but I'd probably need a lot of active help. 

          Natasha Stopa added a comment - jnz_topdanmark , I'd definitely like to do something that would be most beneficial to the Jenkins community, but I get kind of overwhelmed when I look at this and I'm not even really sure how to start.  I'd still be open to going that route, but I'd probably need a lot of active help. 

          Yeah, I was the one advising to try and see to split this. But it might be a starting point that is too rough. I still believe that would be desirable in the long term, but that an intermediate move can indeed be to introduce a brand new component that will offer that high level API to the "outside" world.

          I think starting small by introducing this and use it from install-plugins.sh might be a smaller scope and achievable task.

          Really sorry for the wrong advice that might have turned more stressful than anticipated. 

          Baptiste Mathus added a comment - Yeah, I was the one advising to try and see to split this. But it might be a starting point that is too rough. I still believe that would be desirable in the long term, but that an intermediate move can indeed be to introduce a brand new component that will offer that high level API to the "outside" world. I think starting small by introducing this and use it from install-plugins.sh might be a smaller scope and achievable task. Really sorry for the wrong advice that might have turned more stressful than anticipated. 

          Natasha Stopa added a comment -

          So I'm going to close this Jira task since I think it was more or less completed and we've since decided to go a different direction to start.  Perhaps a little later in the summer we can circle back to incorporating the high level API and Jenkins core. 

          Natasha Stopa added a comment - So I'm going to close this Jira task since I think it was more or less completed and we've since decided to go a different direction to start.  Perhaps a little later in the summer we can circle back to incorporating the high level API and Jenkins core. 

            stopalopa Natasha Stopa
            stopalopa Natasha Stopa
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: