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

No upstream or downstream resolution with Maven version ranges

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • maven-plugin
    • None

      This is essentially reopening JENKINS-2787 (https://issues.jenkins-ci.org/browse/JENKINS-2787). We are in an environment where we do have version ranges and ignoring the arguments for or against version ranges, we like to resolve this issue. I have looked at the patch provided in JENKINS-2787 and have integrated this into the latest 1.450 of jenkins and running this in our CI environment.

      What would be required to submit this latest patch to Jenkins and have this promoted?

          [JENKINS-12735] No upstream or downstream resolution with Maven version ranges

          Alex Koon created issue -

          Sergei Ivanov added a comment -

          Please add support for automatic resolution of version ranges in Maven dependencies into upstream and downstream relationships between the correcponding Jenkins jobs.
          We started using version ranges in our project, because we have a very fluid development environment. We manage almost a hundred of modules, which have dependencies between themselves, and which are assembled into applications often with a very short release cycle. Our key requirement is to always keep all module dependencies in sync, essentially by always depending on the latest available version. Without version ranges it becomes a royal pain, because after the release of each module, a newly released module version has to be propagated into all dependencies. If we were to do that, we'd have spent half of our time updating dependencies in the projects.
          If the changes in the patch have a potential to destabilise Jenkins for the existing users, let's make this option configurable from either Jenkins configuration, or individual job configuration.

          Sergei Ivanov added a comment - Please add support for automatic resolution of version ranges in Maven dependencies into upstream and downstream relationships between the correcponding Jenkins jobs. We started using version ranges in our project, because we have a very fluid development environment. We manage almost a hundred of modules, which have dependencies between themselves, and which are assembled into applications often with a very short release cycle. Our key requirement is to always keep all module dependencies in sync, essentially by always depending on the latest available version. Without version ranges it becomes a royal pain, because after the release of each module, a newly released module version has to be propagated into all dependencies. If we were to do that, we'd have spent half of our time updating dependencies in the projects. If the changes in the patch have a potential to destabilise Jenkins for the existing users, let's make this option configurable from either Jenkins configuration, or individual job configuration.

          kutzi added a comment -

          Alex, as said in the previous to last comment on JENKINS-2787: to get this integrated you should convert the patch into a Github pull request and tackle the mentioned problems (performance and missing unit test)

          kutzi added a comment - Alex, as said in the previous to last comment on JENKINS-2787 : to get this integrated you should convert the patch into a Github pull request and tackle the mentioned problems (performance and missing unit test)
          kutzi made changes -
          Link New: This issue duplicates JENKINS-2787 [ JENKINS-2787 ]

          Alex Koon added a comment -

          I have submitted a pull request for this now - #374.

          Alex Koon added a comment - I have submitted a pull request for this now - #374.

          Code changed in jenkins
          User: alexkoon
          Path:
          maven-plugin/src/main/java/hudson/maven/MavenModule.java
          maven-plugin/src/main/java/hudson/maven/ModuleDependency.java
          maven-plugin/src/test/java/hudson/maven/MavenModuleTest.java
          http://jenkins-ci.org/commit/jenkins/65cd6555301535af4f8796a694c4d52664205778
          Log:
          JENKINS-12735 - Maven version range resolution.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: alexkoon Path: maven-plugin/src/main/java/hudson/maven/MavenModule.java maven-plugin/src/main/java/hudson/maven/ModuleDependency.java maven-plugin/src/test/java/hudson/maven/MavenModuleTest.java http://jenkins-ci.org/commit/jenkins/65cd6555301535af4f8796a694c4d52664205778 Log: JENKINS-12735 - Maven version range resolution.

          Code changed in jenkins
          User: Kohsuke Kawaguchi
          Path:
          changelog.html
          maven-plugin/src/main/java/hudson/maven/MavenModule.java
          maven-plugin/src/main/java/hudson/maven/ModuleDependency.java
          maven-plugin/src/main/java/hudson/maven/ModuleName.java
          maven-plugin/src/test/java/hudson/maven/MavenModuleTest.java
          http://jenkins-ci.org/commit/jenkins/a0c02400313cee84e06a960be29b8f43389ab274
          Log:
          [FIXED JENKINS-12735] Merge branch 'pull-542'

          Compare: https://github.com/jenkinsci/jenkins/compare/7fead6ff7f00...a0c02400313c

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Kohsuke Kawaguchi Path: changelog.html maven-plugin/src/main/java/hudson/maven/MavenModule.java maven-plugin/src/main/java/hudson/maven/ModuleDependency.java maven-plugin/src/main/java/hudson/maven/ModuleName.java maven-plugin/src/test/java/hudson/maven/MavenModuleTest.java http://jenkins-ci.org/commit/jenkins/a0c02400313cee84e06a960be29b8f43389ab274 Log: [FIXED JENKINS-12735] Merge branch 'pull-542' Compare: https://github.com/jenkinsci/jenkins/compare/7fead6ff7f00...a0c02400313c
          SCM/JIRA link daemon made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: Open [ 1 ] New: Resolved [ 5 ]

          Jay Meyer added a comment - - edited

          in Jenkins 1.482, this is causing Jenkins to kick off downstream builds of un-related versions.

          Example: mygrp-projCore-3.4 is kicking off mygrp-projWeb-3.4 (which is correct) and also the old mygrp-projWeb-3.3. The old projWeb artifact id matches, but the version does not match. So when Jenkins is configured to build both versions in different jobs, Jenkins is kicking off all versions of old downstream jobs.

          Jay Meyer added a comment - - edited in Jenkins 1.482, this is causing Jenkins to kick off downstream builds of un-related versions. Example: mygrp-projCore-3.4 is kicking off mygrp-projWeb-3.4 (which is correct) and also the old mygrp-projWeb-3.3. The old projWeb artifact id matches, but the version does not match. So when Jenkins is configured to build both versions in different jobs, Jenkins is kicking off all versions of old downstream jobs.
          Jay Meyer made changes -
          Link New: This issue is related to JENKINS-15367 [ JENKINS-15367 ]

            Unassigned Unassigned
            alexkoon Alex Koon
            Votes:
            1 Vote for this issue
            Watchers:
            12 Start watching this issue

              Created:
              Updated:
              Resolved: