Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[dash-dev] There must be 50 ways to build your project... or leave your lover (was Re: Moving GEF to Athena (was Re: [gef-dev] Re: Last build on emft.eclipse.org today))

Also, just to clarify, by moving to Athena/Hudson (and away from modeling builds I assume), what does this change? The way we kick off builds? Anything else?

Athena + Hudson gives you:

* build-to-build interaction (build B can start if it sees there's a new build A available) so you can get build cascades (eg., perfect for the projects that depend on GMF)

* EMMA, FindBugs and other source/performance analysis tools

* Simple interface for having builds respond to changes in CVS/SVN and build automatically (continuous integration)

* better web UI than the custom stuff in build/index.php, which is nightmarish to update every time someone needs a new requirement added

* XML and plain text APIs to track what's happening w/ builds, including being able to watch build status on iPod (David Green's Hudson Helper)

* plots showing how your junits are increasing/decreasing over time

* plots showing how long your build takes over time

* the Continuous Integration Game, to encourage people to write more tests, fix more warnings, NOT break the build, etc.

* ability to build against p2 repos, extracting specific feature.groups needed for compilation

Is the idea to move all the modeling builds to this new method? Or is there good reasons to keep people using the existing infrastructure?

The Modeling build is deprecated, just as the EMFT build was deprecated before that. It's been in maintenance mode since I started Athena last June. So, yes, if you want new bells/whistles in the system, it's Athena or bust.

Buckminster,

Workspace & target platform provisioning (?)

bucky build,

Uses Buckminster to create an aggregate p2 repo (Galileo)

gan-o-matic,

Last year's Ganymede builder, which was either ant or buckminster, or a combination (not sure)

PDE/Build,

The core underneath all of the above and below

Athena,

A facade over PDE/Build to make it easier to set up and to provide lots of OOTB features. Requires Ant-Contrib.

Athena project configuration is a couple of properties files (for build, test, promote), a generic build.xml, map files, and optional extra ant scripts if desired. Runs in Hudson, in Eclipse, via commandline.

modeling build

The precursor to Athena, but closely tied to Modeling projects (and GEF + PDT). Athena is WAY more generic and doesn't make the same assumptions, plus has WAY less code to copy and maintain.

Modeling is a TON of xml files, properties files, shell scripts, and maps. Runs commandline on linux ONLY.

Infrastructure to run builds is painful to maintain, as there's duplicated information in several places, and devs must edit .php, .properties, .xml, etc. It's multidisciplinary and tons of overhead for basically the same output as Athena+Hudson

Hudson,

Web UI for controlling and running continuous builds. Does nothing by itself - needs plugins and job instructions for what to run (ant, shell, python, groovy). Hudson :: dashboard, Athena :: fuel injector, PDE/Build :: engine. Hudson can be used to run pure ant builds, pure PDE builds, Athena builds, Buckminster builds... you name it, it'll run it.

Build-In-A-Box,

No idea, unless you mean my "buildserver in a box" idea from a couple EclipseCons ago, now replaced by Athena.

and now b3.

http://wiki.eclipse.org/PDE/Incubator/b3/Proposal

There's also luntbuild, ant4eclipse, pluginbuilder, maven / m2eclipse, and many others.

I'm just trying to wrap my head around the similarities / differences, between these technologies and understand what we "should" be using in an ideal world.

Well, we all define "ideal" differently. Some insist that if there's no ecore under the covers, it's non-ideal. Others, that everything must be EPL. Me, I prefer something that's server-centric first (property files, runs in continuous headless mode), IDE second (UI clickity-click, builds on demand), but Athena is moving closer to bridging that gap.

As in all things, YMMV. :)

--
Nick Boldt :: http://nick.divbyzero.com
Release Engineer :: Eclipse Modeling & Dash Athena


Back to the top