Thanks for the replies!

I have been proceeding along the second path as we discussed. I saw an
interesting problem in nodelabelparameter-plugin:

Require upper bound dependencies error for
javax.annotation:javax.annotation-api:1.2 [provided] paths to
dependency are:
+-org.jenkins-ci.plugins:nodelabelparameter:1.10.3-SNAPSHOT
  +-org.jenkins-ci.main:jenkins-core:2.289.1 [provided]
    +-org.kohsuke.stapler:stapler:1.263 [provided] (managed) <--
org.kohsuke.stapler:stapler:1.263 [provided]
      +-javax.annotation:javax.annotation-api:1.2 [provided]
and
+-org.jenkins-ci.plugins:nodelabelparameter:1.10.3-SNAPSHOT
  +-org.jenkins-ci.plugins:parameterized-trigger:2.36
    +-org.jenkins-ci.plugins:matrix-project:1.19 (managed) <--
org.jenkins-ci.plugins:matrix-project:1.6
      +-org.jenkins-ci.plugins:junit:1.53 (managed) <--
org.jenkins-ci.plugins:junit:1.47
        +-io.jenkins.plugins:plugin-util-api:2.5.1 (managed) <--
io.jenkins.plugins:plugin-util-api:2.4.0
          +-javax.annotation:javax.annotation-api:1.3.2 [provided]
and
+-org.jenkins-ci.plugins:nodelabelparameter:1.10.3-SNAPSHOT
  +-org.jenkins-ci.plugins:parameterized-trigger:2.36
    +-org.jenkins-ci.plugins:matrix-project:1.19 (managed) <--
org.jenkins-ci.plugins:matrix-project:1.6
      +-org.jenkins-ci.plugins:junit:1.53 (managed) <--
org.jenkins-ci.plugins:junit:1.47
        +-io.jenkins.plugins:plugin-util-api:2.5.1 (managed) <--
io.jenkins.plugins:plugin-util-api:2.4.0
          +-edu.hm.hafner:codingstyle:2.10.0 [provided]
            +-javax.annotation:javax.annotation-api:1.3.2 [provided]

Now core _does_ ship javax.annotation-api-1.3.2.jar in the WAR
(transitively via Stapler) but does not declare it in the core BOM.
plugin-util-api depends on it with scope=provided (good, because core
does indeed provide it) but with an explicit version (bad, because the
version plugin-util-api compiles against could be newer than the
version shipped by plugin-util-api's core baseline). To resolve this I
propose we explicitly add javax.annotation-api to the core BOM and
plugin POM as we already do for spotbugs-annotations,
jcip-annotations, and access-modifier-annotation. Then plugin-util-api
can drop its version, instead getting the version corresponding to its
core baseline via the core BOM provided by the plugin POM. Does that
seem reasonable?

A similar question applies to symbol-annotation. Now that we're
recommending that plugins get this from core rather than from structs,
it seems to me that we should give it the same treatment.

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/CAFwNDjo6nw0QO3i1cOPCeQgtUEm%3DK_Zm2CUaY0V3i2KGorncCw%40mail.gmail.com.

Reply via email to