[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