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