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:Russel Winder (russ@concertant.com)
Date:Oct 6, 2008 11:54:02 pm
List:org.codehaus.groovy.dev

On Mon, 2008-10-06 at 17:37 +0200, Guillaume Laforge wrote:

I just don't want to waste Hans and Russel's time to make a new build, if the overal Groovy development team doesn't really care or need a new build. For instance, a while ago, Jason did a Maven 2 build, to replace the old Maven 1, but we switched to Ant in the end. So I prefer we spend our efforts appropriately in the most effective fashion.

This is where we get to the crunch so let me be a little blunt.

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.

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.

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.

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.

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.

Of course the Ant build is a disguised Maven build so perhaps those who favour Maven over Ant or Gradle could take a look at the current POM and make sure an actual Maven build is possible (*). This will raise an issue though -- the GMaven compiler does different things to the "standard" Groovyc joint compiler regarding stub creation for dealing with mixed Java/Groovy projects. Perhaps this needs to be split off as a new issue.

And also, I haven't heard yet good technical arguments in favour of the switch, nor a real list of active complaints about the current build -- I personnally don't have complaints about our current build, although we could enhance / extend it a bit towards easier release processes.

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

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.

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.

(*) It seems Maven doesn't do the right thing just now:

|> mvn clean [INFO] Scanning for projects... [INFO]

------------------------------------------------------------------------ [INFO] Building Groovy [INFO] task-segment: [clean] [INFO]

------------------------------------------------------------------------ [INFO] [clean:clean] [INFO]

------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO]

------------------------------------------------------------------------ [INFO] Total time: 2 seconds [INFO] Finished at: Tue Oct 07 07:49:47 BST 2008 [INFO] Final Memory: 3M/6M [INFO]

------------------------------------------------------------------------ |> mvn test [INFO] Scanning for projects... [INFO]

------------------------------------------------------------------------ [INFO] Building Groovy [INFO] task-segment: [test] [INFO]

------------------------------------------------------------------------ [INFO] [resources:resources] [INFO] Using default encoding to copy filtered resources. [INFO] [compiler:compile] [INFO] Nothing to compile - all classes are up to date [INFO] [resources:testResources] [INFO] Using default encoding to copy filtered resources. [INFO] [compiler:testCompile] [INFO] Not compiling test sources [INFO] [surefire:test] [INFO] Tests are skipped. [INFO]

------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO]

------------------------------------------------------------------------ [INFO] Total time: 3 seconds [INFO] Finished at: Tue Oct 07 07:49:54 BST 2008 [INFO] Final Memory: 5M/9M [INFO]

Concertant LLP t: +44 20 7585 2200, +44 20 7193 9203 41 Buckmaster Road, f: +44 8700 516 084 London SW11 1EN, UK. m: +44 7770 465 077