| ApacheGump |
WebHome | UnixGeekTools | Geekfarm | About This Site
Pointers
apache gump 3
python and xml based continuous integration
not for the faint of heart
- geared toward recognizing what the developers have actually done,
not necessarily maintained by the committers as in other software
systems such as the BSD ports tree.
apache is huge
- 1100+ committers, millions of liens of code, 100s of projects
- 80% through cvs - svn migration process
- 80% of apache's SVN trunk compiles against itself - drops to 60%
if gump is down for more than a week or two
continuous integration
- automate all project builds and tests
- reports and statistics
- tinderbox (mozilla), buildd (debian), cruisecontrol, maven continuum, anthill,
buildbot
- when CI fails - B depends on A 1.0, A makes a tiny api change, A
and B release 1.1, 1.1 of B does not work with 1.1 of A.
- currently builds on a specific release of debian — not all
builds on any other debian. moving toward buidling on solaris
and other versions of debian.
jar hell
- 400 dependencies
- recovery is complex and painful
overhead of the build
- DOE study estimates 20% of overhead spent on builds
- overhead goes up with complexity
- study averaged only 5 external dependencies
introducing gump
- python
- lots of useful features like email notification, rss, etc
- XML descriptors in a central reposity for shared maintenance
- understands ant, maven, make
- understands dependencies
gump
- always compiles projects against trunk/head of other projects,
even if project declares a specific dependency
- graph theory - figures out project linking
- determine where the dependencies are broken for a project based
on looking at a previous version that was known working
installation
- a pain to configure and install
- much easier in gump 3
- get source, install prereqs
- set GUMP_HOME
- schedule runs in cron
- run the webapp daemons
documentation
- tends to be out of date
- just try to start run
- RTFO (command line options), not RTFM
writing gump descriptors
- tell gump what to do using XML files
- http://gump.apache.org/metadata/
- use copy-paste from a similar project
- xml - workspace, profile name
- modules - repository
- projects - project names - parts of modules
- nag - used if project fails to build
demo
./gump run --workspace /gumpdemo/fixture/metadata/workspace
--color
--enable-persistence
--persistencefile=/gumpdemo/...
--turbogump-db=/gumpdemo/...
--debug
- -b -u = build and update
gump model in python
- .../gumpdemo/pygump/python/gump/model
$ python
python$ import gump.model
python$ help(gump.model)
Misc
- https://svn.apache.org/repos/asf/gump/branches/Gump3/fixture/metadata/projects/ant
- /gumpdemo/metadata/projects/
Updated Sun Jul 23, 2006 12:10 PM