cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hugo Trippaers <HTrippa...@schubergphilis.com>
Subject RE: [DISCUSS] Please choose: The build system to use for 4.0
Date Mon, 20 Aug 2012 09:09:01 GMT
Hey Darren,

Good stuff, works like a charm. 

Following recent mails I believe we pretty much have a consensus on using maven, so I think
we can move ahead with this. Depending on the release schedule we can or can't include it
in 4.0, but that's no show stopper for anybody.

Anything I can do to help out?

Cheers,

Hugo



-----Original Message-----
From: Darren Shepherd [mailto:darren@godaddy.com] 
Sent: Sunday, August 19, 2012 3:56 AM
To: cloudstack-dev@incubator.apache.org
Subject: RE: [DISCUSS] Please choose: The build system to use for 4.0

All,

So I have maven fully functional.  I sent an email regarding this but being that it wasn't
on this thread so it probably went un-noticed.  So below is basically a copy of that.

If you want to get an idea of what maven would look like for CS, what I've done is on the
"maven"
branch at https://github.com/ibuildthecloud/incubator-cloudstack.git

I had to setup a custom repo to put all the non-oss libraries that don't exist in the central
maven repo. To build just do "mvn -s m2-settings.xml"

That settings file will create a local repo (not use ~/.m2/repository) because I was testing
that all dependencies are coming from where I expected and not polluted by other maven stuff
I do.

Its a multi module project so you can do things like "mvn -s m2-settings -am -pl server" to
just build the server portion (or core, or one of the tons of plugins).  I also tested that
the build works with maven 2 and maven 3 and that the Eclipse M2E plugin works with it too.

I would love it if a maven god could review what I've done.  If we're all good with maven
I'll gladly take this to full completion and start submitting patches.  Post 4.0 we can always
improve (and I'm sure we will), but I feel I know what's the bare minimum need to get this
out the door and I can do that (plus whatever nice to haves I can squeek in).

Regarding the dev environment setup.  We can do this with whatever little amount of impact
we want.  Once you have the maven pom's you just install Eclipse M2E (thats an eclipse foundation
project) and then say "Import Existing Maven Projects" and then magic ensues.  The M2E plugin
works pretty darn well.  It also has the great benefit that you can stop checking in .classpath
and .project files in the your version control because the pom.xml has all the metadata Eclipse
M2E needs to create a
project.   So my preferred approach would be to checkin the pom's and
then delete the .classpath and .project files from git and have developers re-import their
projects into eclipse.  If people don't like that I can use some magic with the mvn depenendency:copy-dependencies
to recreate the same structure as whats in deps today to make the eclipse projects still work.
 But I would grudgingly do that work as I would rather we just move forward with a standard
maven layout.  Gotta learn sometime and I don't think its all that difficult.

Regarding the ant tasks, I want to keep backwards compatibilty so that the main ant tasks
still work but just internally call maven and not javac/jar directly.

So I vote we just let me do this and I'll get 'er done.

Darren



> -------- Original Message --------
> Subject: RE: [DISCUSS] Please choose: The build system to use for 4.0
> From: Ewan Mellor <Ewan.Mellor@eu.citrix.com>
> Date: Fri, August 17, 2012 2:22 pm
> To: "cloudstack-dev@incubator.apache.org"
> <cloudstack-dev@incubator.apache.org>
> 
> 
> Well, all our packages are going to be public, of course.  That shouldn't be a problem!
> 
> Ewan.
> 
> > -----Original Message-----
> > From: Marcus Sorensen [mailto:shadowsor@gmail.com]
> > Sent: 17 August 2012 14:19
> > To: cloudstack-dev@incubator.apache.org
> > Subject: Re: [DISCUSS] Please choose: The build system to use for 
> > 4.0
> > 
> > I'm totally fine with a switch, my only concern was around when it's done.
> > Aside from just implementing the build bits in the git repo (sounds 
> > like there are resources for this), I picture there being a bit of 
> > work on every developer's part to switch their dev environments. 
> > This might be as simple as a few package installs, but on at least 
> > one occasion when I was building something via Maven I had to spend 
> > the better part of an afternoon going back and forth with the 
> > network/systems guys because Maven needed to download some 
> > components and the applicable systems by default are internal-access 
> > only. It's things like that where I worry about switching build systems when people
are under a crunch to complete 4.0.
> > 
> > On Fri, Aug 17, 2012 at 2:04 PM, Ewan Mellor 
> > <Ewan.Mellor@eu.citrix.com>
> > wrote:
> > > OK, so we've got offers of effort on Maven from Darren, Hugo, plus 
> > > review
> > help from Olivier and Alex.  Maven gets +1 from me, Alex, and Brett too.
> > >
> > > On the Ant side we've got +1 from Chip ("based on timeline"), 
> > > Wido,
> > Marcus, and Mice.  David has his deps-ctrl branch, but no-one has 
> > offered to finish the job.
> > >
> > > We have consensus that the release is going to slip by at least 3 
> > > weeks (2 at
> > the front and one at the end), which gives us four weeks total to 
> > get the build system done and debugged (i.e. between now and final 
> > release candidate on Sep 14).
> > >
> > > With that extra time, does that change anyone's opinion?  It would 
> > > be nice
> > to get consensus on this issue, otherwise we're going to have to put 
> > it to a vote.
> > >
> > > Thanks,
> > >
> > > Ewan.
> > >
> > >
> > >> -----Original Message-----
> > >> From: akarasulu@gmail.com [mailto:akarasulu@gmail.com] On Behalf 
> > >> Of Alex Karasulu
> > >> Sent: 17 August 2012 03:11
> > >> To: cloudstack-dev@incubator.apache.org
> > >> Subject: Re: [DISCUSS] Please choose: The build system to use for 
> > >> 4.0
> > >>
> > >> On Fri, Aug 17, 2012 at 1:00 PM, Olivier Lamy <olamy@apache.org>
wrote:
> > >>
> > >> > +1 for Apache Maven
> > >>
> > >>
> > >> Ditto but this can happen any time and in parallel. I understand 
> > >> and appreciate the time limitations for the 4.0 release.
> > >>
> > >>
> > >> > (but I agree my POV can be considered non objective :-)
> > >> > ) or at least our own Apache dogfood.
> > >> > I agree this can late for 4.0 (why not for 4.1) Btw if someone 
> > >> > push poc on a branch I can help to review as I have a bit of 
> > >> > experience on (and Brett too :-) ).
> > >> >
> > >>
> > >> I'm not a Maven demigod like Brett, but I can help out here as well.
> > >>
> > >>
> > >> >
> > >> > Olivier
> > >> > Le 16 août 2012 23:12, "David Nalley" <david@gnsa.us> a écrit
:
> > >> >
> > >> > > Hi folks,
> > >> > >
> > >> > > I am particularly limiting the scope of this to what we do 
> > >> > > for 4.0, since that is the pressing timeline.
> > >> > >
> > >> > > Here are the current options:
> > >> > >
> > >> > > * Continue using ant, and have the hacky stuff I wrote as ant

> > >> > > targets deal with dependency resolution. (see the differences

> > >> > > in the deps-ctrl
> > >> > > branch)
> > >> > >
> > >> > > * Use Gradle (see the gradle branch)
> > >> > >
> > >> > > * Use Maven (I haven't seen any of this, but Darren reports 
> > >> > > that he has this building - Darren: can we see this somewhere

> > >> > > publicly
> > >> > > perhaps?)
> > >> > >
> > >> > > While I'd like to have us choose the system that we are going

> > >> > > to use for all time (and despite some reservations, I think 
> > >> > > Maven is likely my personal choice for what we should move to

> > >> > > long term), I am also concerned that we don't let the perfect

> > >> > > become the enemy
> > of the good.
> > >> > > So given all of that - what should our choice be?
> > >> > >
> > >> > > --David
> > >> > >
> > >> >
> > >>
> > >>
> > >>
> > >> --
> > >> Best Regards,
> > >> -- Alex
Mime
View raw message