I really like the fact 'resolver' terminology disappears where it's
not necessary. Previously, I had to specify 'addFlatDirResolver' but I
just wanted to specify that my libs were in some folder - I didn't
want to be exposed to ivy resolvers' interface. Therefore simple
'flatDir' is way better.

Cheers,
Szczepan

On Fri, Feb 27, 2009 at 11:39 AM, Hans Dockter <m...@dockter.biz> wrote:
>
> On Feb 27, 2009, at 8:12 AM, Adam Murdoch wrote:
>
>>
>>
>> Hans Dockter wrote:
>>>
>>> Hello,
>>>
>>> we are working intensely on Gradle 0.6. One focus is to make our DSL more
>>> intuitive. To achieve this we are improving the syntax of the DSL as well as
>>> how the different elements play together.
>>>
>>> Here is a link to the current draft of the new DSL:
>>> http://docs.codehaus.org/display/GRADLE/Dependencies
>>>
>>> We are very interested in your feedback.
>>>
>>
>> Some comments:
>>
>> - Should the key for a dependency be {organisation, module}, rather than
>> {organisation, module, version}?
>>
>> - If Configuration dependsOn() were to declare a single dependency, rather
>> than to allow multiple, you wouldn't need the square brackets:
>>
>> compile.dependsOn(org: 'some.org', name: 'name', version: 'version)
>
> This should also work:
>
> compile.dependsOn org: 'some.org', name: 'name', version: 'version
>
>> Further, if a configure closure were used with the configuration, you
>> could do:
>>
>> compile {
>>  dependsOn org: 'org', name: 'name', version: 'version'
>>  dependsOn org: 'another', name: 'another', ...
>> }
>
> I'm not sure any longer what to think about a 'dependsOn' or a similar term.
> All this happens already in the context of dependencies.
>
> dependencies {
>        compile.dependsOn org: 'org', name: 'name', version: 'version'
> }
>
> In such a scenario this might be not needed:
>
> dependencies {
>        compile org: 'org', name: 'name', version: 'version'
> }
>
> One question is do we structure the DSL around aspects of configurations
> (e.g. dependencies,artifacts, ...) or around configurations as roots:
>
> compile {
>   dependsOn ...
>   publishes ...
> }
>
> I'd rather go with the configuration aspects approach. Another thing is that
> I think the notations for describing dependencies or artifacts is DSL
> specific. It should not be part of the API. For that we need a context to
> generate a Dependency from a notation.
>
>>
>>
>> or
>>
>> confs(runtime, test) {
>>  dependsOn org: 'org', ....
>> }
>>
>> - Given that configurations and repositories are implicitly created when
>> first referred to, I think we should do the same for tasks. For example, the
>> following would create task 'myTask', with type DefaultTask, and attach a
>> task action to it:
>>
>> myTask.doFirst {
>> }
>
> In fact, a pre 0.1 version of Gradle behaved like this. At that time we
> thought it might be confusing and may lead to subtle and confusing bugs. For
> example, you want to configure a task injected by a plugin but you misspell
> the name. On the other hand usually you will use non existing API methods in
> this case which will lead to a immediate exception. So I think it is a good
> idea to provide implicit creation for tasks.
>
>>
>>
>> Or, to define a task with a custom type:
>>
>> myTask type: SomeType, someProp: 'some-value', dependsOn: anotherTask
>
> alternatively: myTask(SomeType) { ...} or myTask(SomeType, someProp:
> 'someValue')
>
>> - What does the 'archiveTasks' section do? If we were to do the above, it
>> doesn't look like we would need the 'archivesTasks' section at all.
>
> Good point. With the changes I have applied yesterday and your proposal, it
> has lost a lot of its responsibility. What it could still provide are
> certain helper methods for archive tasks as well as a namespace for
> accessing default jars (e.g. archiveTask.sources). But we wouldn't need it
> any longer as a context for a DSL. So I will remove it from the wiki page.
>
>> - If I declare some repositories in the 'repositories' section, it would
>> be good if they did something useful by default. For example, they could be
>> used for resolving dependencies if I don't explicitly declare the resolvers
>> to use for resolving. And the first one could be used for uploading
>> artifacts if I don't declare otherwise.
>>
>> - We could use a configure closure with the artifacts as well:
>>
>> master {
>>  publishes someFile, another file
>> }
>>
>> - Are we using the term 'org' or 'group'? The example uses 'org', but
>> Project currently uses 'group'
>
> Good point. I'm undecided.
>
> - Hans
>
> --
> Hans Dockter
> Gradle Project lead
> http://www.gradle.org
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>   http://xircles.codehaus.org/manage_email
>
>
>

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

    http://xircles.codehaus.org/manage_email


Reply via email to