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

Please backport requireUpperBounds fixes to Maven Plugin 2.x

    • Icon: Task Task
    • Resolution: Unresolved
    • Icon: Major Major
    • maven-plugin
    • None

      Depending on later Maven Plugin 2.x releases is a mess as they include all sorts of different dependencies that result in upper bounds errors with recent plugin POMs.

      It looks like it's fixed in 3.0-rc-1, but that's a big step just for some minor POM cleanup in dependent plugins.

      Please release a Maven Plugin 2.x with plugins parent POM 2.35 and all necessary fixes.

      CC oleg_nenashev who probably was the one to do it for 3.0-rc-1.

          [JENKINS-47244] Please backport requireUpperBounds fixes to Maven Plugin 2.x

          Daniel Beck added a comment -

          This mess started in 2.8, 2.7 is the last maven-plugin one can depend on without having to deal with this.

          Daniel Beck added a comment - This mess started in 2.8, 2.7 is the last maven-plugin one can depend on without having to deal with this.

          Oleg Nenashev added a comment -

          danielbeck it can be done for sure, but I am not sure it is really required. Could you please clarify "It looks like it's fixed in 3.0-rc-1, but that's a big step just for some minor POM cleanup in dependent plugins."? Do you mean that it's a too big step for plugin maintainers?

          Oleg Nenashev added a comment - danielbeck it can be done for sure, but I am not sure it is really required. Could you please clarify "It looks like it's fixed in 3.0-rc-1, but that's a big step just for some minor POM cleanup in dependent plugins."? Do you mean that it's a too big step for plugin maintainers?

          Daniel Beck added a comment -

          oleg_nenashev The context for this request is maintaining/modernizing plugins with a maven-plugin dependency. I encountered this when modernizing Join Plugin: https://github.com/jenkinsci/join-plugin/pull/13

          Going from an older plugins pom to ~2.35 will introduce requireUpperBounds checks, and the maven-plugin dependency alone will result in multiple failures between 2.7 (exclusive) and 3.0-rc-1 (exclusive).

          If it doesn't make a difference for the dependent plugin, just going with maven-plugin 2.7 or earlier is safe, but if a plugin needs to depend on a later 2.x for some reason, it'll have a giant mess to clean up. Forcing a dependency on 3.0-rc-1 (or some real 3.0 later) on users just to clean up POM errors isn't a great idea, neither is ignoring upper bounds issues.

          So I think there should be a 2.x (2.18?) that is consistent wrt upper bounds, that plugins can safely depend on.

          Daniel Beck added a comment - oleg_nenashev The context for this request is maintaining/modernizing plugins with a maven-plugin dependency. I encountered this when modernizing Join Plugin: https://github.com/jenkinsci/join-plugin/pull/13 Going from an older plugins pom to ~2.35 will introduce requireUpperBounds checks, and the maven-plugin dependency alone will result in multiple failures between 2.7 (exclusive) and 3.0-rc-1 (exclusive). If it doesn't make a difference for the dependent plugin, just going with maven-plugin 2.7 or earlier is safe, but if a plugin needs to depend on a later 2.x for some reason, it'll have a giant mess to clean up. Forcing a dependency on 3.0-rc-1 (or some real 3.0 later) on users just to clean up POM errors isn't a great idea, neither is ignoring upper bounds issues. So I think there should be a 2.x (2.18?) that is consistent wrt upper bounds, that plugins can safely depend on.

          Oleg Nenashev added a comment -

          No strong opinion regarding that.

          If we fix upper bounds, I strongly suggest doing it for a version which does not include Maven 3.5.0 support (not 2.17). Otherwise it becomes a bloodbath.

           

          Oleg Nenashev added a comment - No strong opinion regarding that. If we fix upper bounds, I strongly suggest doing it for a version which does not include Maven 3.5.0 support (not 2.17). Otherwise it becomes a bloodbath.  

          Hi danielbeck

          I'm not completely aware of the dependency mess here but 3.0 is just 2.17 + dependencies changes and thus it is why we bumped to 3.0. If you prefer we can call it 2.18

          What in https://wiki.jenkins.io/display/JENKINS/Maven+Project+Plugin#MavenProjectPlugin-Version3.0-rc1(September28th,2017) would you like to see backported in 2.x ? (and what you would like to keep in 3.x ?). 

          Arnaud Héritier added a comment - Hi danielbeck I'm not completely aware of the dependency mess here but 3.0 is just 2.17 + dependencies changes and thus it is why we bumped to 3.0. If you prefer we can call it 2.18 What in https://wiki.jenkins.io/display/JENKINS/Maven+Project+Plugin#MavenProjectPlugin-Version3.0-rc1(September28th,2017)  would you like to see backported in 2.x ? (and what you would like to keep in 3.x ?). 

          Daniel Beck added a comment -

          aheritier

          not completely aware of the dependency mess here

          Check out 2.17, bump the parent pom to 2.35, and try to build.

          The problem: Every plugin depending on maven-plugin 2.8–2.17 with a modern parent pom will inherit these problems.

          would you like to see backported in 2.x

          I don't know. Haven't looked at the failures in detail beyond noticing it's not interaction between dependencies, but all happening just within maven-plugin, when I had a maven-plugin dependency from another plugin.

          Daniel Beck added a comment - aheritier not completely aware of the dependency mess here Check out 2.17, bump the parent pom to 2.35, and try to build. The problem: Every plugin depending on maven-plugin 2.8–2.17 with a modern parent pom will inherit these problems. would you like to see backported in 2.x I don't know. Haven't looked at the failures in detail beyond noticing it's not interaction between dependencies, but all happening just within maven-plugin, when I had a maven-plugin dependency from another plugin.

          danielbeck I think we can release a 2.18 with just the parent bump and related dependencies

          But I'm not sure when I'll have time to do this. PRs are appreciated

          Arnaud Héritier added a comment - danielbeck I think we can release a 2.18 with just the parent bump and related dependencies But I'm not sure when I'll have time to do this. PRs are appreciated

          Oleg Nenashev added a comment -

          Same for me. Until we get clear evidence that 3.0 breaks something horribly, I vote for sticking to only one baseline. Even Germans do not have enough beer to convince me to support 2 baselines of this plugin

           

          Oleg Nenashev added a comment - Same for me. Until we get clear evidence that 3.0 breaks something horribly, I vote for sticking to only one baseline. Even Germans do not have enough beer to convince me to support 2 baselines of this plugin  

            Unassigned Unassigned
            danielbeck Daniel Beck
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: