MakePkg 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 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 The environment variable PACKAGE designating the package to be maintained. ---------------------------------------------------------------------------- - set PACKAGE=MakePkg As that environment variable has temporary character, it is not recommended to add it to the system environment. 6 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: ========================================== - no prerequisite packages 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 After a Subversion Update (if applicable) ensure an up-to-date build: ----------------------------------------------------------------------- - cd /D %STMDEVLROOT%\%PACKAGE% - svn update - make 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