1) Making IDE setup simpler does not necessarily mean making the CLI
builds more complicated. That is a somewhat obvious statement, but one
I think we need to keep in mind here.
2) The AnnotationProcessor question was kind of a separate question. I
am curious why you think that combining the AP output into one dir
(well one per "source set", aka "main" and "test") is
"less organized"
than what we do now? Unless you navigate (aka, cd ...) into those
generated sources and need to know which sources came from which
processor; and I can't fathom the benefit of that, can't see the use
case for doing that.
3) There is still this separate question altogether of whether the CLI
and IDE builds should share compilation output paths. It is quite
possible to say that Gradle continues to compile project sources into
target/classes/{sourceSetName} but that we let the IDE project compile
into its own compilation paths (IDEA prefers
out/{production|test}/{moduleName} e.g.).
As to the specific question of performance, I can't say. We can't do
that today, so its not something I can answer in regards to the
Hibernate codebase.
And as far as "processor which really matter", how quickly you throw
your metamodel generator work under the bus :) But I'd say that
generating that stuff matters just as much. Tests are kinda important
ya know ;)
On 04/18/2013 07:27 AM, Hardy Ferentschik wrote:
On 17 Jan 2013, at 9:33 PM, Brett Meyer <brmeyer(a)redhat.com>
wrote:
> "Get the sources and load it directly in your IDE. IMO that is stupid."
>
> Honestly, that's always been the absolute *first* thing I do. I'd argue that
most contributing developers are interested in the src, first and foremost.
For sure. I am not saying that you should not be able to load the sources into an IDE,
but does the IDE need to be able to compile the
project out of the box? That's in my opinion a different question.
Also there might be a question of performance. Would adding the annotation processors to
the IDE javac calls not also mean that the processors
are called on each incremental compile?
The only processor which really matters during the development is the logging annotation
processor. It would be nice if when adding a new log method
the interface would be updated automatically, but if that implies a notably change in
performance I rather stick to manually rebuild the Log interface when
I am adding a new log method. You can always configure your annotation processor
manually.
> My intentions for working on the Eclipse generation was to make IDE setup as
painless as possible. Is it important to have a well-developed build process? Of
course.
> But it's also important to balance that with removing as many roadblocks as
possible that might detract contributors.
Right, it needs to be a balance. However, I don't think that we have lost a
contributor over this.
--Hardy