Hans Dockter wrote:
I have started to create a Wiki page for reviewing our DSL in general. So far I have added page with some ideas how our new dependency DSL could look like:

http://docs.codehaus.org/display/GRADLE/Dependencies



Generally, this look really good. I like the separation of repositories, configurations, dependencies and publications into separate concepts.

Some questions/comments:

It looks like a configuration is implicitly created when it is first referenced. I think this would be a good thing. Perhaps it should only happen while the configurations { } closure is executing.

It also looks like you can configure a domain object using either a map or a closure or both. I think this would be good. We should also apply this approach to pretty much every domain object create/add/configure method - tasks, repositories, projects, and so on.

I like the new format for dependencies. Do you think we would keep the 'group:module:revision' format as well? We probably should deprecate it and keep it for a few releases before removing it.

Have client modules been replaced by 'module'? Ie

runtime (module [name: 'hibernate', ... ] {
   add [some dep]
   ....
})

I like that the module is treated the same way as other dependencies (provided we can get rid of the parentheses around the module). However, how would you share the module declaration across multiple configurations (other than by extending the configuration)? Perhaps somthing like:

dependences {
   hibernate = module [name: 'hibernate' ... ] { }

   compile hibernate

   myOtherConfiguration hibernate
}

Also, 'add' could be something like 'dependsOn' to describe the semantics better, and to match task dependencies. I think for readability it would be nice to optionally do:

dependencies {
   compile dependsOn [name: 'someLib']
   compile dependsOn project(':a')
}

For the publications, how do I declare which task(s) build each artifact? How do these relate to the archives declared in the archives {} section?


Adam

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

   http://xircles.codehaus.org/manage_email


Reply via email to