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:

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   <n>

where <n> is the new release number.

Update the version number

You will need to get /u/ccr.<n>/std/hdrs/release.h for editing

old_release!> get -e /u/ccr.<n>/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.<n>/std/hdrs/.sccs/s.release.h

Compiling

Change to the new environment

[X11:old_release]!> gorel <n>
[X11:new_release]!>

Copy align program from the current release to new release

[X11:new_release]!> cp /u/ccr.<n-1>/std/ccddlib/align /u/ccr.<n>/std/ccddlib

Test that programs can be compiled

[X11:new_release]!> /u/ccr.<n>/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 sieat, steat, etc. called ssieat, poeat, stestore, etc.

[X11:new_release]!> link_cntrl

Copy across test companies

[X11:new_release]!> cp -r /u/ccr.<n-1>/<TEST>/ /u/ccr.<n>/

Point ccdev to the new release

[X11:new_release]!> rm /u/ccdev
[X11:new_release]!> ln -s /u/ccr.<n> /u/ccdev

Set up ccstandard<n>

[X11:new_release]!> umask 0
[X11:new_release]!> mkdir /u/ccstandard<n>
[X11:new_release]!> cd /u/ccstandard<n>
[X11:new_release]!> ln -s /u/ccr.<n>/standard.adm adm
[X11:new_release]!> ln -s /u/ccr.<n>/binl binl
[X11:new_release]!> ln -s /u/ccr.<n>/env env
[X11:new_release]!> >error.log
[X11:new_release]!> ln -s /u/ccr.<n>/lang_ts lang_ts
[X11:new_release]!> ln -s /u/ccr.<n>/lib lib
[X11:new_release]!> mkdir -p LOG/back
[X11:new_release]!> ln -s /u/ccr.<n>/manual manual
[X11:new_release]!> rsync -av /u/ccstandard<n-1>/overlay ./
[X11:new_release]!> ln -s /u/ccr.<n>/pixmap pixmap
[X11:new_release]!> ln -s /u/ccr.<n>/standard standard
[X11:new_release]!> mkdir std
[X11:new_release]!> cd std
[X11:new_release]!> ln -s /u/ccr.<n>/std/adm adm
[X11:new_release]!> ln -s /u/ccr.<n>/std/binl binl
[X11:new_release]!> ln -s /u/ccr.<n>/std/binx11 binx11
[X11:new_release]!> ln -s /u/ccr.<n>/std/qtsdk-2010.05 qtsdk-2010.05
[X11:new_release]!> ln -s /u/ccr.<n>/std/utbinl utbinl
[X11:new_release]!> ln -s /u/ccr.<n>/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.<n-1>/qtscox* /u/ccr.<n>/
[X11:new_release]!> cp -r /u/ccr.<n-1>/qtwin* /u/ccr.<n>/
[X11:new_release]!> cp -r /u/ccr.<n-1>/qtx11* /u/ccr.<n>/
[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<n>. There should already be a similar script in cron. It should look like this:

export CCDIR=/u/ccr.<n>
export CCPROG=/u/ccr.<n>
/u/ccr.<n>/binl/auto_postal

get/modify/delta the following files:

/u/ccr.<n>/script/GetAll
/u/ccr.<n>/script/linux_build
/u/ccr.<n>/binl/updatestandardadm
/u/ccr.<n>/binl/removecontrl
/u/ccr.<n>/binl/updatestandardadm

And replace all occurences of "ccr.<n-1>" with "ccr.<n>".

Add them to cron along with compiling the old release

* 5-23 * * * /u/ccdev/binl/postr<n> > /u/ccr.<n>/LOG/auto_postal.out 2>&1
#### Rebuild R<n> every night
45 1 * * * /u/ccr.<n>/script/GetAll  > /u/ccr.<n>/LOG/GetAll.out 2>&1
50 1 * * * /u/ccr.<n>/script/linux_build  > /u/ccr.<n>/LOG/linux_build.out 2>&1
#### Update standard.adm every hour
10 * * * * /u/ccr.<n>/binl/updatestandardadm > /u/ccr.<n>/LOG/updatestandardadm.out 2>&1
* * * * * /u/ccr.<n>/binl/removecontrl > /u/ccr.<n>/LOG/removecontrl.out 2>&1
# Get latest source code of old release from SCCS
#30 1 * * * /u/ccdev/script/RelCompile <n-1> /u/ccr.<n-1>/script/GetAll > /u/ccr.<n-1>/LOG/GetAll.out 2>&1
# Compile the code
#10 2 * * * /u/ccdev/script/RelCompile <n-1> /u/ccr<n-1>/script/linux_build > /u/ccr.<n-1>/LOG/linux_build.out 2>&1

New_Release (last edited 2018-10-24 05:34:35 by fuzzy)