69 messages in org.codehaus.groovy.devRe: [groovy-dev] Building Groovy
FromSent OnAttachments
Russel WinderOct 6, 2008 4:36 am 
MingfaiOct 6, 2008 4:47 am 
Hans DockterOct 6, 2008 4:50 am 
Hans DockterOct 6, 2008 4:55 am 
Jochen TheodorouOct 6, 2008 4:56 am 
Guillaume LaforgeOct 6, 2008 7:17 am 
Hans DockterOct 6, 2008 7:51 am 
Russel WinderOct 6, 2008 7:59 am 
Guillaume LaforgeOct 6, 2008 8:19 am 
Guillaume LaforgeOct 6, 2008 8:25 am 
MingfaiOct 6, 2008 8:28 am 
Guillaume LaforgeOct 6, 2008 8:36 am 
Hans DockterOct 6, 2008 1:46 pm 
Guillaume LaforgeOct 6, 2008 1:54 pm 
Hans DockterOct 6, 2008 1:54 pm 
Jochen TheodorouOct 6, 2008 2:03 pm 
Guillaume LaforgeOct 6, 2008 2:09 pm 
Paul DuffyOct 6, 2008 7:06 pm 
Luke DaleyOct 6, 2008 8:47 pm 
Guillaume LaforgeOct 6, 2008 9:44 pm 
Russel WinderOct 6, 2008 11:25 pm 
Russel WinderOct 6, 2008 11:54 pm 
Russel WinderOct 7, 2008 12:03 am 
Jason DillonOct 7, 2008 12:23 am 
Russel WinderOct 7, 2008 12:24 am 
Guillaume LaforgeOct 7, 2008 12:30 am 
Hans DockterOct 7, 2008 12:35 am 
Jason DillonOct 7, 2008 12:35 am 
Hans DockterOct 7, 2008 12:36 am 
Jason DillonOct 7, 2008 12:41 am 
Guillaume LaforgeOct 7, 2008 12:54 am 
Jason DillonOct 7, 2008 1:40 am 
Guillaume LaforgeOct 7, 2008 1:50 am 
Jason DillonOct 7, 2008 1:55 am 
Guillaume LaforgeOct 7, 2008 2:25 am 
Guillaume LaforgeOct 7, 2008 2:35 am 
Jason DillonOct 7, 2008 3:09 am 
Guillaume LaforgeOct 7, 2008 3:12 am 
Russel WinderOct 7, 2008 3:17 am 
Jason DillonOct 7, 2008 3:24 am 
Paul KingOct 7, 2008 4:04 am 
ma...@dockter.bizOct 7, 2008 4:19 am 
ma...@dockter.bizOct 7, 2008 4:25 am 
Jason DillonOct 7, 2008 4:36 am 
Jason DillonOct 7, 2008 4:39 am 
Jochen TheodorouOct 7, 2008 5:20 am 
Jason DillonOct 7, 2008 8:19 am 
Jochen TheodorouOct 7, 2008 9:51 am 
Jason DillonOct 7, 2008 10:49 am 
Jochen TheodorouOct 7, 2008 12:03 pm 
Hans DockterOct 7, 2008 2:34 pm 
Luke DaleyOct 7, 2008 3:52 pm 
Jason DillonOct 8, 2008 1:28 am 
Jason DillonOct 8, 2008 1:35 am 
Hans DockterOct 8, 2008 3:11 am 
Hans DockterOct 8, 2008 3:49 am 
Hans DockterOct 8, 2008 4:30 am 
Hans DockterOct 8, 2008 4:40 am 
Jason DillonOct 8, 2008 4:52 am 
Jason DillonOct 8, 2008 5:21 am 
Jochen TheodorouOct 8, 2008 6:23 am 
Jochen TheodorouOct 8, 2008 6:47 am 
Jochen TheodorouOct 8, 2008 6:59 am 
Hans DockterOct 8, 2008 8:33 am 
Hans DockterOct 8, 2008 8:43 am 
Paul DuffyOct 9, 2008 8:58 am 
Paul KingOct 9, 2008 1:15 pm 
Danno FerrinOct 9, 2008 1:27 pm 
Paul KingOct 10, 2008 2:31 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [groovy-dev] Building GroovyActions...
From:Guillaume Laforge (glaf@gmail.com)
Date:Oct 7, 2008 12:54:06 am
List:org.codehaus.groovy.dev

Hi Russel,

On Tue, Oct 7, 2008 at 8:54 AM, Russel Winder <russ@concertant.com> wrote:

[...] Noone liked the Maven 1 build mostly because Maven 1 was dying and no-one (not even the Mavenistas :-) could understand what was going on.

It's not so much about the fact Maven 1 was dying or because nobody understood Maven, but it's really because the Groovy build really became messy and impossible to understand. It wasn't really so much Maven 1's fault but more ours because we failed to properly rewrite it / refactor it early enough to keep it maintainable. That said, the death of Maven 1 was clearly a good reason to move to something else at that time. So back in the days, the decision was made to change, and we just had to choose something else. Today, the need to change is not there (yet?).

A group of people wanted to move to a Maven 2 build, but a section of the core developers said "No Maven" using emotive statements and no technical arguments whatsoever. Yes there were problems, indeed there remain problems, with Maven -- though with Jason's work far fewer than there were.

Right, emotions were definitely involved there. But they were involved in the choice of a new solution, once the decision had been taken to change. It's not the same situation as today where nobody complains with the Ant build. So the emotion is more on the side of those two of you who want to force Groovy to use their solutions :-)

I started the Ant build simply to get something moving. Everyone was waffling and complaining, and there were lots of comments like "but what are the technical arguments". In this situation actions speak a lot louder than words, the argumentation is better done in the presence of experimental data and not philosophizing. Having a working Ant build to compare to a working Maven 1 build enable the change because it enables discussion and argumentation based on data not prejudice and arm waving.

Agreed. But I don't hear complaining voices these days on the Ant build.

The Ant build has subsequently evolved to being a Maven build written in Ant. Paul has done some sterling work, and in many places worked magic. But what we have is a Maven build but disguised so the Maven haters will still allow its existence.

Our build is complex, so it can't just be 10 lines of build script. But it has the merits to be way more readable and manageable than the Maven mysteries of lifecycle. Here, with Ant, the logic, the dependencies between targets, are much clearer. Can you tell me that the Groovy build will be 10x shorter with Gant or Gradle? What are the arguments that make you think Gant or Gradle are better? That's really what I want to hear. If you fail to find good arguments, I don't see how customers, companies can agree that Gant / Gradle are better than what they currently have. It's really a technical marketing excercise I'd want to see here. It's not just because project X decided to use Gant / Gradle that it must be good, it's because Gant / Gradle are superior because of x, y, z. So?

I started a Gant build for Groovy but with the arrival of an increasingly sophisticated Gradle, it seemed counter-productive to reinvent for Gant what was being invented for Gradle. The core difference is that Gradle uses Ivy where Gant tends to favour use of the Maven Ant task.

Rather than waffle and banter based on prejudice and no data, it is far better to put in a little effort in order to gain data. We already have a primitive Gant build that no-one uses or even comments on. If Gradle is as good as it claims to be, it should be a small job to create an initial build to get us to the point of having real data to properly debate.

I'm happy to see a Gradle build to better understand its merits, backed with such proofs as a running build. And hopefully it should really cover all the use cases, all the paths of the current Ant build to really be able to compare.

[...] An awful lot of code gets slipped into Groovy without good technical argument. Be careful about using differing standards.

I think it's an unfair comparison -- apples and oranges? Here, so far, the sole argument I've heard in favour of Gant / Gradle is that it would be good marketing for those projects if Groovy adopted their build system. And also that it could help bring a bit more people to know and use Groovy. Aren't there any other good reasons beyond these??? I don't understand why neither Hans nor you have succeeded telling me some other good and valid reasons. I'm sure there are, and I want to hear them!!!

I agree that a step as big as a change of build infrastructure needs to be done with care and attention to detail. However the current Ant build is in a very analogous state to the old Maven 1 build. It is growing anarchically and at the very least needs a severe refactoring.

It's in much better shape than the old Maven 1 build. I'd be interested in knowing what kind of refactoring it'd deserve, and how Gradle would more elegantly solves what you think is not right in the Ant build.

If a sever refactoring is in order then a review is in order. The outcomes are:

1. Refactor the Ant build and continue with it. 2. Switch to a full-on Maven build. 3. Switch to a Gradle build.

3 is of course a magic number.

"If a severe refactoring is in order, then a review is in order": a review first can tell us if a severe refactoring is needed. Let's not put the ox before the cart :-)