= Creating a New Release = == Organising the new release == You should let the programming team (Bernie included) when you plan on creating the new release. This way they can save any bug fixes that they are working on. The new release will not affect the work that they are currently doing. It just means that fixes that they save now will be transferred to the new release == Creating the release environment: == There is a script called NewRelease under /u/ccdev/script/. Because the script is not perfect and things are bound to go wrong, the script will not call the new release ccdev. It is up to you to decide that the new release is ready for use. It will: * Create the necessary folder structure for the new release * Copy across the source code * Use SCCS to get every file out for editing and save it with the comment "RELEASE VERSION " * Copy across the user manual * '''''MOVE''''' the scripts, library and pixmap directories from the "old" release folder to the new release folder * Create symbolic link in the old release folder to the new one * Copy across the DEMO folder * Create a symbolic link in the new release folder called DEMO that points to the DEMO folder * Copy across the align program from the old release to the new release. This is needed for the initial compile run You should have a look at the script before running it and see if you need to add/change anything to it. To use it: {{{ old_release!> /u/ccdev/script/NewRelease }}} where is the new release number. == Update the version number == You will need to get /u/ccr./std/hdrs/release.h for editing {{{ old_release!> get -e /u/ccr./std/hdrs/.sccs/s.release.h }}} Update the MAJOR RELEASE and MINOR_RELEASE definitions {{{ [X11:old_release]!> vi release.h }}} Save the changes {{{ [X11:old_release]!> delta /u/ccr./std/hdrs/.sccs/s.release.h }}} == Compiling == Change to the new environment {{{ [X11:old_release]!> gorel [X11:new_release]!> }}} Copy align program from the current release to new release {{{ [X11:new_release]!> cp /u/ccr./std/ccddlib/align /u/ccr./std/ccddlib }}} Test that programs can be compiled {{{ [X11:new_release]!> /u/ccr./script/buildall }}} Make sure you test for Text-mode and for X11. Ask for assistance from the programmers if something doesn't compile. == Create symbolic links to programs == Create symbolic links to sieat, steat, etc. called ssieat, poeat, stestore, etc. {{{ [X11:new_release]!> link_cntrl }}} == Copy across test companies == {{{ [X11:new_release]!> cp -r /u/ccr.// /u/ccr./ }}} == Point ccdev to the new release == {{{ [X11:new_release]!> rm /u/ccdev [X11:new_release]!> ln -s /u/ccr. /u/ccdev }}} == Set up ccstandard == {{{ [X11:new_release]!> umask 0 [X11:new_release]!> mkdir /u/ccstandard [X11:new_release]!> cd /u/ccstandard [X11:new_release]!> ln -s /u/ccr./standard.adm adm [X11:new_release]!> ln -s /u/ccr./binl binl [X11:new_release]!> ln -s /u/ccr./env env [X11:new_release]!> >error.log [X11:new_release]!> ln -s /u/ccr./lang_ts lang_ts [X11:new_release]!> ln -s /u/ccr./lib lib [X11:new_release]!> mkdir -p LOG/back [X11:new_release]!> ln -s /u/ccr./manual manual [X11:new_release]!> rsync -av /u/ccstandard/overlay ./ [X11:new_release]!> ln -s /u/ccr./pixmap pixmap [X11:new_release]!> ln -s /u/ccr./standard standard [X11:new_release]!> mkdir std [X11:new_release]!> cd std [X11:new_release]!> ln -s /u/ccr./std/adm adm [X11:new_release]!> ln -s /u/ccr./std/binl binl [X11:new_release]!> ln -s /u/ccr./std/binx11 binx11 [X11:new_release]!> ln -s /u/ccr./std/qtsdk-2010.05 qtsdk-2010.05 [X11:new_release]!> ln -s /u/ccr./std/utbinl utbinl [X11:new_release]!> ln -s /u/ccr./std/utbinx11 utbinx11 }}} == Copy Qt developer library files == The compiling script expects these folders to be in "/u/ccdev". This means we need to move them over to the new release directory when we change /u/ccdev to point to the new release. Need to create symlinks from old release to the new location. {{{ [X11:new_release]!> cp -r /u/ccr./qtscox* /u/ccr./ [X11:new_release]!> cp -r /u/ccr./qtwin* /u/ccr./ [X11:new_release]!> cp -r /u/ccr./qtx11* /u/ccr./ [X11:new_release]!> ln -s /u/ccdev/qtscox* /u/ccr.>n-1>/ [X11:new_release]!> ln -s /u/ccdev/qtwin* /u/ccr.>n-1>/ [X11:new_release]!> ln -s /u/ccdev/qtx11* /u/ccr.>n-1>/ }}} == Setup Cron Jobs == Create script called /u/ccdev/binl/postr. There should already be a similar script in cron. It should look like this: {{{ export CCDIR=/u/ccr. export CCPROG=/u/ccr. /u/ccr./binl/auto_postal }}} get/modify/delta the following files: {{{ /u/ccr./script/GetAll /u/ccr./script/linux_build /u/ccr./binl/updatestandardadm /u/ccr./binl/removecontrl /u/ccr./binl/updatestandardadm }}} And replace all occurences of "ccr." with "ccr.". Add them to cron along with compiling the old release {{{ * 5-23 * * * /u/ccdev/binl/postr > /u/ccr./LOG/auto_postal.out 2>&1 #### Rebuild R every night 45 1 * * * /u/ccr./script/GetAll > /u/ccr./LOG/GetAll.out 2>&1 50 1 * * * /u/ccr./script/linux_build > /u/ccr./LOG/linux_build.out 2>&1 #### Update standard.adm every hour 10 * * * * /u/ccr./binl/updatestandardadm > /u/ccr./LOG/updatestandardadm.out 2>&1 * * * * * /u/ccr./binl/removecontrl > /u/ccr./LOG/removecontrl.out 2>&1 # Get latest source code of old release from SCCS #30 1 * * * /u/ccdev/script/RelCompile /u/ccr./script/GetAll > /u/ccr./LOG/GetAll.out 2>&1 # Compile the code #10 2 * * * /u/ccdev/script/RelCompile /u/ccr/script/linux_build > /u/ccr./LOG/linux_build.out 2>&1 }}}