RFC: Keeping Track Of Software Versions.
-
Hello All.
(Sorry for the cross post if some of you are listening to both!)
I have been trying to figure out a good scheme for keeping track of
software versions and build numbers, etc.
Part of my consideration is a way to use CVS to keep track of this, or
some other way of automating.
We are finding it increasingly necessary to keep track of this in a well
thought out way so we can better handle releases, internal
builds/versions, etc. but I have not really come up with a good scheme
for this.
I know how to create tags and branches in CVS. My concern is more along
the lines of managing the whole process of making internal builds, beta
builds, public builds, etc.
One idea which we had was to setup a machine here to be a build server,
and nightly (or every couple of nights, every week, whatever makes
sense!) it would checkout the source for our various products, increment
a build number in a file, build the product, commit the build number
file, then move the build to a repository which internal staff could
grab it from and starting testing it.
Then I would like to tie this to our bug tracking software to keep
track of what is assigned to a particular build (or at this level
version) and what has been fixed/added in a particular build, which
among other things would help us automate our release notes.
Could anyone share their experiences on this with those of us struggling
to figure it out. Or point me to some documentation or a good book on
this sort of thing?
Thanks in advance,
Michael. -
You can use 'make' to do this (or, I'm sure jam as well). Together with
CVS tags, you've got enough ammo to e.g. 'make tag BUILD=vx.y' to tag a
new release or something of the like.
The challenge is to create a bunch of make targets and manage them. But
it's not too hard to come up with a set of sensible targets and thier
commands.
(One of these days I'll learn the new build system....)
Steve
On Mon, 3 Dec 2001, Michael (Lists) Clark wrote:
> Hello All.
> (Sorry for the cross post if some of you are listening to both!)
>
> I have been trying to figure out a good scheme for keeping track of
> software versions and build numbers, etc.
> Part of my consideration is a way to use CVS to keep track of this, or
> some other way of automating.
>
> We are finding it increasingly necessary to keep track of this in a well
> thought out way so we can better handle releases, internal
> builds/versions, etc. but I have not really come up with a good scheme
> for this.
>
> I know how to create tags and branches in CVS. My concern is more along
> the lines of managing the whole process of making internal builds, beta
> builds, public builds, etc.
>
> One idea which we had was to setup a machine here to be a build server,
> and nightly (or every couple of nights, every week, whatever makes
> sense!) it would checkout the source for our various products, increment
> a build number in a file, build the product, commit the build number
> file, then move the build to a repository which internal staff could
> grab it from and starting testing it.
> Then I would like to tie this to our bug tracking software to keep
> track of what is assigned to a particular build (or at this level
> version) and what has been fixed/added in a particular build, which
> among other things would help us automate our release notes.
>
> Could anyone share their experiences on this with those of us struggling
> to figure it out. Or point me to some documentation or a good book on
> this sort of thing?
>
> Thanks in advance,
> Michael.
>
> _______________________________________________
> MacOSX-dev mailing list
> <MacOSX-dev...>
> http://www.omnigroup.com/mailman/listinfo/macosx-dev
>
-
On Monday, December 3, 2001, at 12:01 , Michael (Lists) Clark wrote:
> Could anyone share their experiences on this with those of us struggling
> to figure it out. Or point me to some documentation or a good book on
> this sort of thing?
>
I haven't played with it yet, but you may want to check out CruiseControl
http://cruisecontrol.sourceforge.net/
"CruiseControl is a tool for setting up a continuous build process. It
builds upon the Ant project from Apache
( http://jakarta.apache.org/ant/index.html) by providing a set of tasks to
automate the checkout/build/test cycle, and provides a servlet for viewing
the status of the current build as well as the results of previous builds.
"
This is the tools they use at ThoughtWorks for J2EE stuff but if you set
up an Ant project for building your WO5 app this might be a route to go.
--
Ian P. Cardenas
Computer Scientist, Software
http://www.ultraviolent.com/resume/covers/osx.html



