Re: Third party dependencies, APIs, and Jenkins: Proposals

2019-04-11 Thread Jesse Glick
On Wed, Apr 10, 2019 at 6:44 PM Stephen Connolly wrote: > If the “classboxed” dependencies have scope=provided then they shouldn’t be > transitive and you could leave them unshaded. True. `war/pom.xml` would need to be massaged to bundle them. > The JenkinsRule would just need to setup the

Re: Third party dependencies, APIs, and Jenkins: Proposals

2019-04-11 Thread Jesse Glick
On Thu, Apr 11, 2019 at 4:10 AM Ullrich Hafner wrote: > [shading does not] prevent developers to use the shaded classes, they are > still there, just with another package name True, but the Jenkins plugin class loader can refuse to serve such classes, so any such mistake would immediately fail

Re: Third party dependencies, APIs, and Jenkins: Proposals

2019-04-10 Thread Stephen Connolly
On Wed 10 Apr 2019 at 21:55, Jesse Glick wrote: > On Wed, Apr 10, 2019 at 10:48 AM Matt Sicker > wrote: > > 1. Shade in third party dependencies of Jenkins core into Jenkins with > > a package rename. This will allow core to use the dependencies, but > > plugins will still need to include the

Re: Third party dependencies, APIs, and Jenkins: Proposals

2019-04-10 Thread Daniel Beck
> On 10. Apr 2019, at 22:55, Jesse Glick wrote: > > You do not necessarily need to rename packages. It suffices for the > plugin class loader defined in Jenkins core to decline to forward > class loading requests for these libraries to the parent.

Third party dependencies, APIs, and Jenkins: Proposals

2019-04-10 Thread Matt Sicker
I've been struggling for a while now on how to best approach dependency management in Jenkins. One of our key pain points has been in shared libraries like Jackson, HttpComponents, AsyncHTTPClient, and various other commonly used libraries. As we've already found, simply including these common