On Oct 10, 2008, at 12:42 AM, Adam Murdoch wrote:


Hi,

Some quick questions on terminology:

In some places we refer to the 'build script', and other places we refer to the 'build file'. Which one should we use? I don't have a real preference, other than we use the same term consistently to refer to this. I suspect we use 'build file' more often than 'build script' in documentation, so perhaps 'file' is a reasonable choice.

With the -e option we can pass a String as a script without using a file. I think build script and build file are not equivalent. For me a build file is a file which content is used as a build script. So I think we need both terms. Having said this, I can well imagine that the documentation is not clean in regard to this definition. Probably in most cases we should use build script.


Similarly, is it a 'settings file' or 'settings script'?

see above


I've added some new events to BuildListener, to represent the main steps of initialising, configuring and executing the build. These are:
settingsEvaluated()
projectsEvaluated()
taskGraphPrepared()

I'm not happy with the name taskGraphPrepared(). I've just realised that I use the terms 'prepare', 'populate' and 'calculate' to refer to this step. Is 'evaluate' is a better term to use for this step, ie taskGraphEvaluated()?

For some reason I'm not happy with evaluated. I think it is different to projects and settings where the scripts relate more or less 1:1 to the domain objects. The task graph is derived from this. I was also thinking about taskGraphCreated. But after all I really like taskGraphPopulated. It points out the fact that the task graph object is always available but might not be populated yet. In fact we might throw a TaskGraphNotPopulatedYetException if it is accessed to early. Populated is more precise than prepared and calculated.


Finally, on Settings, we have a bunch of methods with 'descriptor' in their name. I think 'project' might be a better term here, as 'project' is the meaning of the thing being referenced, whereas 'descriptor' is how they are represented. I think this reads better in the settings file:

project('myproject').buildFileName = 'myproject.gradle'

instead of

descriptor('myproject').buildFileName = 'myproject.gradle'

Good idea. This points to a problem I don't have a good solution for yet. I unhappy with the duplication I have introduced with those project descriptors. We have now to tree objects and registries which do pretty much the same things. What I want to do is to have what we call now ProjectDescriptor as a base class for our project class. But Project extends ProjectDescriptor does not look good. Usually you create an actual class from a descriptor but you don't extend it. Have you an idea for a better name than project descriptor in such a scenario.

Another naming issue: There is the alternative of saying the build script is executed/evaluated. I prefer the term evaluated as it is used this way by the Groovy API and as it points out that the the build script is not an imperative program. I'm not sure if we are consistent here in the doc.

- Hans

--
Hans Dockter
Gradle Project lead
http://www.gradle.org





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

   http://xircles.codehaus.org/manage_email


Reply via email to