Hi Carl, Interesting challenge. I don't think CC.NET has anything that can handle this at the moment. There is the force build publisher (http:// confluence.public.thoughtworks.org/display/CCNET/ForceBuildPublisher), but I'm not sure this would handle your scenario either
If B & C can build concurrently, then you could put them in their own queues and use the lockqueues element on the queues (http:// confluence.public.thoughtworks.org/display/CCNET/Queue+Configuration) to prevent A & D's queue from starting when either B or C is building. Unfortunately, you couldn't put B & C in the same queue and use this functionality, because it is not possible to guarantee which force build would trigger first. The other side effect, especially with a more complex scenario, is you would start to get a large number of queues :-( Craig On Jul 1, 2:06 pm, Carl Cerecke <[email protected]> wrote: > What is the best way to ensure project dependencies in the shape of a > diamond are built in the correct order? > > For example D depends on both B and C, and B and C both depend on A. > > Using the advice > onhttp://confluence.public.thoughtworks.org/display/CCNET/Integration+Q... > doesn't work: > > If A B C D all share a queue, and priorities are D > C = B > A (so D > is a higher priority; i.e. a lower priority number), then after A > builds, B and C will be put on the queue, but after B (say) finishes, > it forcebuilds D which jumps in front of C. > > What would be ideal is to simply specify dependencies between > <project>s and have ccnet automatically create integration queues for > sets of disjoint acyclic project-dependency digraphs, including > automatically handling forcebuilds, to ensure dependencies are > correctly applied. > > Having to handle it manually with priorities seems error-prone and, as > far as I can tell, not able to handle the diamond dependency problem. > Feel free to correct me though! > > Our project-dependency graph is quite a bit more complicated than a > simple diamond, so a general approach to the dependency problem would > be better than a hack for the 4-project diamond special case. > > Cheers, > Carl. > -- > Carl Cerecke > GeoBase Senior Software Engineer – Telogis > Researchwww.telogis.com www.telogis.co.nz > +1 949 625-4115 ext. 208 (USA) +64 3 339 2825 ext. 208 (NZ) > > Leading Global Platform for Location Based Services > OnTrack and GeoBase enable over 350,000 vehicles and mobile devices worldwide. > -- > This e-mail, and any attachments, is intended only for use by the > addressee(s) named herein and may contain legally privileged and/or > confidential information. It is the property of Telogis. If you are > not the intended recipient of this e-mail, you are hereby notified > that any dissemination, distribution or copying of this e-mail, any > attachments thereto, and use of the information contained, is strictly > prohibited. If you have received this e-mail in error, please notify > the sender and permanently delete the original and any copy there of.
