Hey all, Good to see action on this, we've been discussing this for a long time and I think we need to get moving. At least on the "building jars" front we seem to be narrowing down to two contenders maven and grade. Darren is doing the maven thing and I've pushed to gradle build script to the gradle branch in the ASF repo. (@Darren, feel free to have a look at it, all the dependencies are in there including version numbers in maven format, might save you some work)
I propose we put it into a vote when Darren is ready and we can do a side-by-side comparison of gradle versus maven? Next up would be the rpms/deb/snowballs packaging method, but that is for later and I think both maven and grade are not ideal choices for this. I'd rather see something as simple as fpm in there. But that a discussion for another day ;-) Cheers, Hugo -----Original Message----- From: Darren Shepherd [mailto:dar...@godaddy.com] Sent: Tuesday, August 14, 2012 4:14 AM To: cloudstack-dev@incubator.apache.org Cc: cloudstack-dev@incubator.apache.org Subject: Re: [DISCUSS] Binaries (jars) in our source tree/source releases. As I said before we don't *have* to move the files around. I already started working on this (I have everything compiling fine) and have taken the approach of not moving files. Moving the files around is just nice because it's easier for other people who don't know CS but know maven to work with CS. I think I'll implement this with no moving and then maybe after 4.0 we talk about restructuring as I agree it will be very disruptive. Gradle is possibly a good replacement for waf and ant if your looking for a general purpose build system. But right now we really just need to worry about the points I mentioned before. So in the approach I'm thinking waf and ant still remain in some form to retain compatibility with what everyone working on CS is used to. So we can accomplish what we need with the smallest disruption. So it would be difficult to replace everything right now with Gradle. Meaning not only do you rewrite the entire build system you also have to update documentation (wiki stuff), other scripts (jenkins, devcloud, test harnesses, etc), and everybody needs to learn a new system. We could do waf, ant, and gradle instead of waf, ant, and maven but I would only do that if we were 100% sure gradle is the best way to go. So in my comments I've always said gradle is *probably* a good solution, but honestly if the decision was up to me I'd say no, just stick with maven. At the end of the day you just need something that builds the system and you don't need to worry much about it. We don't exactly need to be pioneers in this area. Maven works, has a gigantic community, tons of plugins (like all this license updating work could have been done with 1 of many license management maven plugins), tons of info on google and excellent Eclipse integration that really does work (m2e is an eclipse foundation project). Basically you can't really go to wrong with Maven. With gradle you narrow everything, smaller community, less tools, etc. So I'd leave gradle to camps like Spring that enjoy reinventing everything themselves anyways. Darren Sent from my iPhone On Aug 13, 2012, at 5:37 PM, Ewan Mellor <ewan.mel...@eu.citrix.com> wrote: >> -----Original Message----- >> From: Darren Shepherd [mailto:dar...@godaddy.com] >> >> [Snip] >> >> Let me know if you want me to head down this path. It would probably >> just take me a week or two to knock this out and then you guys can >> decide if this is a 4.0 or post-4.0 thing. One huge warning up front >> though. Maven is a build by convention framework and kinda likes it >> if you actually use its conventions. This means the directory >> structure of all the of the java stuff will be moved around. One >> could make maven respect the existing layout, but your doing yourself >> and future developers a disservice if your using maven and not following the >> conventions. > > It's this "use our conventions" bit that worries people, I think. The > CloudStack conventions certainly aren't Maven-friendly, and it would be a lot > of churn on the codebase and arguably a backwards step if we were to adopt > all their conventions. Do you know if Gradle suffers from the same problem? > In other words, if we switched to Gradle would we still have to move all the > code around? > > Also, could you explain why you think that a switch to Maven would be easy > but a switch to Gradle would be hard? > > In general, I'm happy to take build system changes pretty much right up to > the last minute. Any regressions are likely to be immediate and obvious, > unless the more subtle regressions you get when working with the code itself. > I'm also keen to make sure that build from source is easy for people, since > this will be the primary release mechanism now. However, if we're going to > have to move all the files around, we'll never be able to manage the release > branch properly, so that would rule this out for 4.0 if that's going to be > necessary. > > Cheers, > > Ewan. >