On 14/04/2013, at 2:51 AM, Daz DeBoer <darrell.deb...@gradleware.com> wrote:

> On 13 April 2013 17:11, Peter Niederwieser <pnied...@gmail.com> wrote:
>> Daz DeBoer-2 wrote
>>> The problem is that this equivalence doesn't translate to the parallel
>>> world. I guess we don't currently have a nice way to describe the
>>> 'contract' that you're expecting to be honoured
>> 
>> I'm not sure if we are on the same page already. What I'm saying is that we
>> should change the behavior of `--parallel` to honor the contract I
>> mentioned. How we do that is secondary (for now).
> 
> While I agree this makes sense for:
> "gradle --parallel clean build "
> 
> it's not so clear that it works for:
> "gradle --parallel :a:build :b:build"
> Do you really want to wait for 'a' to finish building before starting
> to build 'b'?

It's more important that `clean build` does the right thing than it is that 
`a:build b:build` is as fast as possible. So, without other mechanisms then it 
has to work this way for my money.

Given that we are starting to add the capability to be very explicit about task 
orderings though it is indeed not that simple.

> So I'm not sure about making this an explicit contract.  I'm not 100%
> against, but I don't think it's a given either.
> I think we first need to define exactly what the contract means, ie:
> "gradle clean build" constructs an anonymous build-type with
> parameters "clean, build" (where build-type is a well-defined
> construct).

I'm not sure what anonymous build types would give you. Every Gradle invocation 
is effectively an "anonymous build type" in terms of what we have been 
describing as build types.


The options as I seem them are:

1. task order at invocation time implies a temporary should run after 
relationship
2. task order at invocation time implies no relationship between tasks and the 
necessary relationships must be described elsewhere


To me #2 is definitely better as the more information we have about the task 
graph in a mineable way the more interesting things we can do with this 
information in other contexts. The problem for me though is that we might be a 
ways away from having the capability to do #2. This means we have to live with 
the current unsafe behaviour until that time. Given that parallel execution is 
an incubating feature, I guess living with the current unsafe behaviour is not 
so bad.


> 
> Daz
> 
> 
>> 
>> Cheers,
>> Peter
>> 
>> 
>> 
>> 
>> --
>> View this message in context: 
>> http://gradle.1045684.n5.nabble.com/command-line-order-and-parallel-build-tp5711162p5711189.html
>> Sent from the gradle-dev mailing list archive at Nabble.com.
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>> 
>>    http://xircles.codehaus.org/manage_email
>> 
>> 
> 
> 
> 
> --
> Darrell (Daz) DeBoer
> Principal Engineer, Gradleware
> http://www.gradleware.com
> Join us at the Gradle Summit 2013, June 13th and 14th in Santa Clara,
> CA: http://www.gradlesummit.com
> 
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
> 
>    http://xircles.codehaus.org/manage_email
> 
> 

-- 
Luke Daley
Principal Engineer, Gradleware 
http://gradleware.com

Join me at the Gradle Summit 2013, June 13th and 14th in Santa Clara, CA: 
http://www.gradlesummit.com


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to