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

Join plugin should be able to handle transitive downstream builds

    • Icon: Improvement Improvement
    • Resolution: Unresolved
    • Icon: Major Major
    • join-plugin
    • None

      consider the following trigger setup:
      base -> test
      test -> testA
      test -> testB

      When I specify a join job in "base", it will show up in the dependencies view as dependent on "testA" and "testB".
      The join job, however, will be started on successul completion of "test", concurrent with "testA" and "testB"

          [JENKINS-8659] Join plugin should be able to handle transitive downstream builds

          mdonohue added a comment -

          At what point do we stop doing the transitive closure of downstream jobs? What you are proposing would mean any time a downstream job's configuration is changed to start triggering a job of its own, the upstream join trigger's behavior would change. I think this would be surprising to users.

          The current mechanism waits for the direct downstream jobs only, before triggering the join task. This is easy to understand, and is composable in a larger build graph.

          mdonohue added a comment - At what point do we stop doing the transitive closure of downstream jobs? What you are proposing would mean any time a downstream job's configuration is changed to start triggering a job of its own, the upstream join trigger's behavior would change. I think this would be surprising to users. The current mechanism waits for the direct downstream jobs only, before triggering the join task. This is easy to understand, and is composable in a larger build graph.

          voorth added a comment -

          OK, that is a valid point. Still, I took "downstream" to mean "all the way downstream", and I'm not alone in this - the dependency graph plugin interprets it the same way. Perhaps this could be clarified in the documentation ?

          Getting back to my particular use case; it would be nice to have a "transitive" checkbox in the configuration pane - turned off by default, of course...

          voorth added a comment - OK, that is a valid point. Still, I took "downstream" to mean "all the way downstream", and I'm not alone in this - the dependency graph plugin interprets it the same way. Perhaps this could be clarified in the documentation ? Getting back to my particular use case; it would be nice to have a "transitive" checkbox in the configuration pane - turned off by default, of course...

          EJ Campbell added a comment - - edited

          @mdonohue, do you think this issue will be something you'll want to tackle? Also, if a patch was submitted that worked as voorth is describing, would you integrate it?

          For what it's worth, I too thought transitive dependencies would be honored by default.

          Thanks!

          EJ Campbell added a comment - - edited @mdonohue, do you think this issue will be something you'll want to tackle? Also, if a patch was submitted that worked as voorth is describing, would you integrate it? For what it's worth, I too thought transitive dependencies would be honored by default. Thanks!

          mdonohue added a comment -

          I am probably not going to work on it myself, but I'd certainly integrate any reasonable patches.

          mdonohue added a comment - I am probably not going to work on it myself, but I'd certainly integrate any reasonable patches.

            mdonohue mdonohue
            voorth voorth
            Votes:
            2 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: