Install daylife-vendor, All build dependencies (code) in daylife-vendor
"svn co trunk"
"make config", Foreach project: config
"Usable on an airplane"
State in SVN, current release number, ???, SVN revision number
"make rpm", Foreach: build + package
"make install", Foreach: install into virtualenv
"make test", Run tests against virtualenv
"make clean", Wipe build/install artifacts, "realclean" wipes all artifacts
"make lint", Static type analysis, Code style check
Python + C extensions
Able to extend for new build types
Minimal "stuff to remember"
Unit tests -> JUnit XML
Style tests -> ??
Static type analysis -> ??
Coverage report -> Clover XML?
Same commands work at "project" and "top" levels
"help" command that works everywhere
Minimal boilerplate per project
Zero arguments = "right thing by default"
Value for command-line users
Value for Testers, Working CI builds!
Value for Eclipse users, Bootstrap sys.path for debugger usage, Simplifies dev box setup, Developers see same errors as CI, Tie-in with Eclipse's notion of "projects"?
Value for build master (Howard), Kill Howard's need to "edit proc_mgr config", "start/stop config" ships with app, Tech lead maintains the config, Give Howard a way to AUDIT the distributed configs
Value for OPS, Kill Mark's need to "edit Nagios config", "service check" definitions ship with the app, Tech lead maintains the tests, Give Mark a way to AUDIT the distributed test definitions
Eliminate human "single points of failure"
Aim for 10x growth
self-subscribe to test results (subsets)