On Wed, 2 Mar 2005, Jeremy Katz wrote:
>> From what I can think breaking up the build system into:
> - something that watches cvs for things to be built
One thing that comes to my mind is that you probably don't want to be
watching CVS. Having it be an explicit "request a build now" makes more
sense (which can then be integrated as a makefile target eventually,
etc). I just tend to prefer having "do a build" be an explicit action
rather than a side effect.
I agree, I would rather have a "cvs tag build" or "cvs tag build-test"
or
something like that. That will queue a build request and provide some sort
of URL where one could watch the status.
The two big things are probably the "handle chroots" piece
and "spawn
builds". Especially if we want to go the route of a new chroot for
every build. So I'd mostly focus on those two first and I think the
other stuff will mostly fall out on its own.
But wait, there is more! Ok, so we have chroots, we're spawning build,
what do we do with the resulting packages? what is their path through the
process?
So far we have:
A. Buildroot provisioning
- yum-based scriplet
- users can run it themselves and create their own trees
- for speed reasonsm can we assume that buildroots are generic (ie,
have the devel stuff installed, but are not customized for the needs of
any particular src.rpm build)
B. Spawning builds
- assuming a queue of some sort of things that need building
- do we have a master controller for builds or do we let all buildhosts
fight to empty out the build queue?
- once a buildroot is chosen:
- we customize it according to the src.rpm's buildrequires
- launch the "chroot ... rpmbuild --rebuild ..." job
- stdout and stderr go to a log accessible online in real time?
- extract the binary packages and drop them somewhere
- after the build is done
- dispose of the buildroot?
- set up a new buildroot again (async?)
C. Package management
- we have a bunch of new packages built for a particular tree
- what is the qualification process?
- QA?
- puching stuff out?
Anybody else has any other big components we need to concentrate on?
Cristian
--
----------------------------------------------------------------------
Cristian Gafton -- gafton(a)redhat.com -- Red Hat, Inc.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"Linux is a leprosy; and is having a deleterious effect on the U.S. IT
industry because it is steadily depreciating the value of the software
industry sector."
-- Kenneth Brown, President, Alexis de Tocqueville Institution