Hi,

To better support building Android apps (and other things), we want to rework 
the jvm language plugins so that they can handle building multiple outputs from 
a given set of source files.

I've made a bit of a start on a spec here, but's pretty rough: 
https://github.com/gradle/gradle/blob/master/design-docs/building-multiple-outputs-from-jvm-languages.md

I need some suggestions for terminology:

1. A term for the things that Gradle builds. With this work, plus publications, 
components, reports and distributions work that is happening, we're starting to 
model more of the things that Gradle can build. It feels like we should have a 
term for this. So far we've been calling these things 'things' and sometimes 
'outputs'. I kind of like the term 'build item' from abuild.

2. A term for a thing that runs on a JVM. This is the focus of the spec above. 
The spec calls these things a 'packaging', but this doesn't really work that 
well. Note that this isn't the logical thing - we're calling them 'components' 
- but the physical thing. Initially, there are 2 types of this thing - a class 
directory packaging and a JAR packaging. If we come up with a good term for 
'things' in #1 above, we could just shove 'jvm' in front of it as a name for 
these things (e.g. 'jvm build item').

3. A term for a set of source of a specific language, that forms the input to a 
compilation step. This is different to what we call 'source set' at the moment 
- that's a logical grouping of source. The spec calls these things a 'language 
source set'.

4. A term for a logical set of source. Currently we call these a 'source set'. 
The spec calls these things a 'functional source set'.

Suggestions?

--
Adam Murdoch
Gradle Co-founder
http://www.gradle.org
VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting
http://www.gradleware.com

Reply via email to