Boost-1.35 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. 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 packages 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 Visual Studio 2008 (www.microsoft.com). It is assumed that the software is installed in %PROGRAMFILES% or %LOCPROG%. - 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%. 6 The environment variable PACKAGE designating the package to be maintained. ---------------------------------------------------------------------------- - set PACKAGE=Boost-1.35 As that environment variable has temporary character, it is not recommended to add it to the system environment. 7 The environment variable THIRDPARTYDEVLROOT designating the package development root. --------------------------------------------------------------------------------------- - set THIRDPARTYDEVLROOT=%DEVLROOT%\SysToMath\wcopies Preferably the above example setting is already part of the system environment. - It is assumed that the directory %THIRDPARTYDEVLROOT%\%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 Directory devlprereq ---------------------- Be sure to have installed all packages contained in the directory %THIRDPARTYDEVLROOT%\%PACKAGE%\devlprereq. If not, install them as appropriate. C Package preparation ===================== 1 Ensure up-to-date version file and release notes: --------------------------------------------------- - cd /D %THIRDPARTYDEVLROOT%\%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 %THIRDPARTYDEVLROOT%\%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 %THIRDPARTYDEVLROOT%\%PACKAGE% (if applicable): ---------------------------------------------------------------------- - cd /D %THIRDPARTYDEVLROOT%\%PACKAGE% - svn commit --file release.txt D ClearCase handling ==================== 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 %THIRDPARTYDEVLROOT%\%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