LibStmDb Maintenance and Release HOWTO
######################################
A Ensure that the development environment is set up propperly:
==============================================================
1 The environment variable LOCROOT designating the local software root.
-----------------------------------------------------------------------
- set LOCROOT=D:\local
Preferably the above example setting is already part of the system
environment.
- As Win32 executables and DLLs reside in %LOCROOT%\bin\w32, it is assumed that
the value %LOCROOT%\bin\w32 is contained in the system executable path.
- It is assumed that Microsoft Visual Studio .NET 2003 and Visual Studio 2005
are installed and within these IDEs the following entries in Tools, Options,
Projects, VC++ Directories exist:
- Executable Files:
$(LOCROOT)\bin\w32
- Include Files:
$(LOCROOT)\include
$(LOCROOT)\include\boost-1_34
$(LOCROOT)\include\berkeleydb-4_6
- Library Files:
$(LOCROOT)\lib\w32
2 The environment variable LOCPROG designating the local program files root.
----------------------------------------------------------------------------
- set LOCPROG=%PROGRAMFILES%
- set LOCPROG=D:\Program Files
Preferably one of the the above example settings is already part of the system
environment.
3 The environment variable DEVLROOT designating the global development root.
----------------------------------------------------------------------------
- set DEVLROOT=D:\Development
Preferably the above example setting is already part of the system
environment.
- For the correct functioning of the command makepkg it is important that all
package sources are installed somewhere in the tree rooted by %DEVLROOT%.
4 The environment variable CYGWINROOT designating the cygwin root directory.
----------------------------------------------------------------------------
- set CYGWINROOT=D:\
Preferably the above example setting is already part of the system
environment.
- It is assumed that Cygwin (www.cygwin.com) with at least the complete packages
Base, Devel, Net and Text is installed in %CYGWINROOT% for all users with
default text file type set to UNIX/binary and that the values
%CYGWINROOT%\usr\local\bin and %CYGWINROOT%\bin are contained in the system
executable path before %SYSTEMROOT%\system32 in the above order.
5 Additional software development prerequisits:
-----------------------------------------------
- Microsoft Visual Studio .NET 2003 (www.microsoft.com).
It is assumed that the software is installed in %PROGRAMFILES% or %LOCPROG%.
- Microsoft Visual Studio 2005 (www.microsoft.com).
It is assumed that the software is installed in %PROGRAMFILES% or %LOCPROG%.
- Microsoft HTML Help Workshop (www.microsoft.com).
It is assumed that the software is installed in %PROGRAMFILES%.
- Microsoft Help 2.0 SDK (www.microsoft.com/downloads/details.aspx?familyid=
ce1b26dc-d6af-42a1-a9a4-88c4eb456d87&displaylang=en)
It is assumed that the software is installed in %PROGRAMFILES%.
- Inno Setup 5 (www.innosetup.com).
It is assumed that the software is installed in %LOCPROG%.
- The subversion client for Windows TortoiseSVN (tortoisesvn.tigris.org).
It is assumed that the software is installed in %LOCPROG%.
- Graphviz (http://www.graphviz.org/Download_windows.php).
It is assumed that during the Graphviz installation the bin subdirectory of
the installation directory (typically %PROGRAMFILES%\ATT\Graphviz) is added to
the system executable path.
Do not install version 2.12 which is buggy. Version 2.8 is known to work.
Install Graphviz prior to Doxygen, oterwise you cannot compile doxygen.
- The most recent version of doxygen (www.doxygen.org).
It is assumed that the source code is downloaded from www.doxygen.org,
untared, configured, compiled and installed under cygwin in a bash console
like this:
./configure --platform win32-g++; make; make install
As a result doxygen is installed in %CYGWINROOT%/usr/local/bin.
6 The environment variable PACKAGE designating the package to be maintained.
----------------------------------------------------------------------------
- set PACKAGE=LibStmDb
As that environment variable has temporary character, it is not recommended
to add it to the system environment.
7 The environment variable STMDEVLROOT designating the package development root.
--------------------------------------------------------------------------------
- set STMDEVLROOT=%DEVLROOT%\SysToMath\wcopies
Preferably the above example setting is already part of the system
environment.
- It is assumed that the directory %STMDEVLROOT%\%PACKAGE% contains the package
software to be maintained and has been recursivelly transfered there from the
configuration managenment system or has been unpacked from the package source
archive.
B Ensure up-to-date prerequisite packages:
==========================================
1 MakePkg
---------
Be sure to have installed MakePkg. If not, download it from
www.SysToMath.com (see http://www.SysToMath.com/etc/html/libraries.html)
and execute
- MakePkgSetup-.exe
with installation directory %LOCROOT%.
2 LibStmC
---------
Be sure to have installed LibStmC. If not, download it from
www.SysToMath.com (see http://www.SysToMath.com/etc/html/libraries.html)
and execute
- LibStmCSetup-.exe
with installation directory %LOCROOT%.
3 Boost C++ Libraries (see http://www.boost.org)
------------------------------------------------
Be sure to have installed Boost-1.34. If not, download it from
www.SysToMath.com (see http://www.SysToMath.com/etc/html/libraries.html)
and execute
- Boost-1.34Setup-.exe
with installation directory %LOCROOT%.
4 LibStmCpp
-----------
Be sure to have installed LibStmC. If not, download it from
www.SysToMath.com (see http://www.SysToMath.com/etc/html/libraries.html)
and execute
- LibStmCppSetup-.exe
with installation directory %LOCROOT%.
5 BerkeleyDb-4.6 (see http://www.oracle.com/technology/software/products/berkeley-db)
-------------------------------------------------------------------------------------
Be sure to have installed BerkeleyDb-4.6. If not, download it from
www.SysToMath.com (see http://www.SysToMath.com/etc/html/libraries.html)
and execute
- BerkeleyDb-4.6Setup-.exe
with installation directory %LOCROOT%.
C Package preparation
=====================
1 Ensure up-to-date version file and release notes:
---------------------------------------------------
- cd /D %STMDEVLROOT%\%PACKAGE%
- Update the file version containing the package version
- Update or create the file release.txt containing the release notes for
the configuration management system
- Ensure that the current content of release.txt is the first version entry in
ChangeLog.txt
2 Ensure an up-to-date build:
-----------------------------
- cd /D %STMDEVLROOT%\%PACKAGE%
If using Subversion
- svn update
- makepkg --rebuild --commit
else if using ClearCase
- makepkg --rebuild --commit
else
- makepkg --rebuild --noconfman --commit
3 Subversion commit of %STMDEVLROOT%\%PACKAGE% (if applicable):
---------------------------------------------------------------
- cd /D %STMDEVLROOT%\%PACKAGE%
- svn commit --file release.txt
D ClearCase handling (if applicable)
====================================
1 ClearToolSuite
----------------
Be sure to have installed ClearToolSuite. If not, download it from
www.SysToMath.com (see http://www.SysToMath.com/etc/html/libraries.html)
and execute
- ClearToolSuiteSetup-.exe
with installation directory %LOCROOT%.
2 The environment variable CLEARCASEVOB designating the ClearCase VOB
---------------------------------------------------------------------
- set CLEARCASEVOB=Z:\wbit_cr
Preferably the above example setting is already part of the system
environment.
3 Ensure no package files are checked out in reserved mode by other people
--------------------------------------------------------------------------
- cd /D %CLEARCASEVOB%/tools/utilities/packets
- cleartool lsco -r %PACKAGE% | grep -w (reserved) | grep -vw %USERNAME%
shall produce no output.
4 Determine ClearCase label for package
---------------------------------------
The first two numerical parts of the ClearCase labels shall be the major and
minor package version numbers as found in the file %LOCROOT%\%PACKAGE%\version.
The third numerical part shall be a revision number (in the case of Subversion
usage, the current Subversion revision) and be unique also for different
package versions. Preferably it is incremented for each check in.
Examples:
- U_michaelist_%PACKAGE%_1.0.7
- U_michaelist_%PACKAGE%_1.4.14
These labels are intended to be used as arguments of the ctupdate option --label
and shall not already exist in ClearCase. Otherwise instead of the ctupdate
option --label the option --replace-label has to be used which causes the label
to be shifted, if applicable.
5 Check in and label the package sources:
-----------------------------------------
- cd /D %STMDEVLROOT%\%PACKAGE%
- ctupdate --label=U_michaelist_%PACKAGE%_x.y.z --args-from=ctupdate.arg
6 Check in and label the binaries, include files, libraries, docs and package files:
------------------------------------------------------------------------------------
This step can be postponed until all package sources have been checked in. Then
the ClearCase labels of all these packages shall be enumerated in a comma or
whitespace separated list as argument of the ctupdate option --label.
E.g.: --label="U_michaelist_{MakePkg_1.0.7,LibStm{C_1.4.14,Cpp_1.4.9}}"
- cd /D %LOCROOT%
- ctupdate --label=U_michaelist_%PACKAGE%_x.y.z --args-from=ctupdate.arg