[Kroupware] contribution to improve kolab version control
Thomas Lotterer
thl at dev.de.cw.com
Wed Jan 28 01:16:07 CET 2004
Here comes my contribution to improve kolab version numbering: ideas,
suggestions, documentation, code for automation.
Unpack the tar archive into server/kolab/kolab CVS, add the files, grep
for FIXMEs and adopt them for your environment. Nothing stops you from
putting them higher in the tree. Just correct the pathes.
662 Jan 28 00:54 2004 README
987 Jan 27 22:47 2004 devtool
4638 Jan 28 00:51 2004 devtool.conf
2214 Jan 27 22:47 2004 devtool.func
118664 Jan 28 00:32 2004 shtool
497 Jan 28 00:53 2004 version.pm
Then just run
$ ./devtool release
and the current version.revision.level will be shown. Enter the new
triple and a new version will be created, put into version.pm (which
could be used by perl modules), substituted into README, kolab_bootstrap
and admin/kolab/index.php (consider this examples), ChangeLog created
(if you stick with cvs2cl put ChangeLog into .cvsignore), files are
flushed to CVS and TAGged, permissions fixated, tarball rolled,
compressed and uploaded. Done!
Please review devtool.conf to understand and modify what's going on.
The devtool and devtool.func are static files, they will rarly ever
change. Note shtool is GNU shtool, nothing special.
For easier discussion in this list, here is the version explanation
content from the devtool.conf comments:
DESCRIPTION derived from "GNU shtool version"
The version is always described with a triple
<version,revision,level> and is represented by a string which always
matches the regular expression ``"[0-9]+\.[0-9]+[sabp.][0-9]+"''.
The hexadecimal format for a version "v.rtl" is "VVRRTLL" where "VV"
and "RR" directly correspond to "v" and "r", "T" encodes the level
type as 9, 2, 1, 0 (representing "s", "p"/".", "b", "a" in this
order) and "LL" is either directly corresponding to "l" or set to 99
if level type is "s".
EXAMPLE
Typical development cycle with alpha, beta, release and updates
Note that the hexadecimal format advances through the evolution
1.2a4 = 0x102004 = fourth alpha of future version 1 revision 2
1.2b1 = 0x102101 = first beta of future version 1 revision 2
1.2.0 = 0x102200 = initial release of version 1 revision 2 aka 1.2.0
1.2.1 = 0x102201 = version 1 revision 2, first patch level aka 1.2.1 update
1.3a1 = 0x103001 = first alpha of future version 1 revision 3
1.3.0 = 0x103200 = initial release of version 1 revision 3 aka 1.3.0
1.3.1b impossible: alpha/beta for patchlevels/updates
2b0.0 impossible: alpha/beta for versions (only version/revision pairs)
1.3.1.4 impossible: anything else but triple
2.0 impossible: anything else but triple
OPENPKG SRPM NAMING
kolab-1.3b1-2.0.0.src.rpm = kolab-1.3b1.tar.gz in OPENPKG_2_0_RELEASE
kolab-1.3b1-2.0.1.src.rpm = kolab-1.3b1.tar.gz in " (security)patch 1
kolab-1.4a1-20040230.src.rpm = kolab-1.4a1.tar.gz in CURRENT 30-Feb-2004
kolab-SNAP20040230-20040231.src.rpm = kolab snapshot 30-Feb-2004 in CURRENT
kolab-1.5-kolab_xyz.src.rpm = kolab-1.5.tar.gz 3rd party no OpenPKG
^^^^^^^^^ ^^^^^^^^^
vendor openpkg numbering; 3rd parties use textual prefix
USAGE
./devtool release = version + tag + dist + upload
./devtool version = display, ask, change version
./devtool tag = flush pending changes and tag CVS
./devtool dist = roll and view distribution tarball
./devtool upload = upload tarball for public access
./devtool snap like release but creates SNAPYYYYMMDD snapshot
--
Thomas.Lotterer at cw.com, Cable & Wireless
-------------- next part --------------
A non-text attachment was scrubbed...
Name: versioning.tar.gz
Type: application/x-tar-gz
Size: 27882 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kroupware/attachments/20040128/90748ab5/versioning.tar-0001.bin
More information about the Kroupware
mailing list