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

Determine Dependencies between PluginManager.java on Jenkins Core

    Details

    • Sprint:
      GSoC 2019. Coding Phase 1
    • Similar Issues:

      Description

      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.  

        Attachments

          Issue Links

            Activity

            Hide
            stopalopa 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. 

            Show
            stopalopa 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. 
            Hide
            stopalopa 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

             

            Kristin Whetstone, Arnab Banerjee Baptiste Mathus, Oleg Nenashev, Jon Brohauge

            Show
            stopalopa 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   Kristin Whetstone , Arnab Banerjee Baptiste Mathus , Oleg Nenashev , Jon Brohauge
            Hide
            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.

            Show
            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.
            Hide
            stopalopa Natasha Stopa added a comment -

            Jon Brohauge, 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. 

            Show
            stopalopa Natasha Stopa added a comment - Jon Brohauge , 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. 
            Hide
            batmat 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. 

            Show
            batmat 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. 
            Hide
            stopalopa 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. 

            Show
            stopalopa 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. 

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: