LibStmIo 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 - 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 source packages 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 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%. - Windows Server 2003 SP1 Platform SDK (3790.1830) (www.microsoft.com) with its environment not registered to Microsoft Visual Studio. It is assumed that the software is installed in %PROGRAMFILES% and the first entry of Microsoft Visual Studio .NET 2003, Tools, Options, Projects, VC++ Directories, Include Files is $(ProgramFiles)\Microsoft Platform SDK\include - 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=LibStmCpp 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 LibStmCpp. 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 LibUsbWin32-0.1 (see http://libusb-win32.sourceforge.net) ----------------------------------------------------------- Be sure to have installed LibUsbWin32-0.1. If not, download it from www.SysToMath.com (see http://www.SysToMath.com/etc/html/libraries.html) and execute - LibUsbWin32-0.1Setup-.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