This file tries to describe the current TSP release process.
Current version is written for a TSP administrator 
and may certainly be only readable for them.

TSP releases should be done with the following steps:

1) Announce release freeze on tsp-devel
   and check for no-go message

2) Review currently opened and fixed bug in the tracker
   https://savannah.nongnu.org/bugs/?group=tsp
   - checked if fixed are really CVS
   - verify if tsp/src/Version.Readme
     has been updated for this bug fix
     and add it if not

   Review patch and task for the same reason
   and update Version.Readme accordingly

3) Edit tsp/CMakeLists.txt
   and bump the version to the right number with
   [example for tsp-0.8.3]

   SET(PACKAGE_VERSION_MAJOR "0")
   SET(PACKAGE_VERSION_MINOR "8")
   SET(PACKAGE_VERSION_PATCH "3")

4) commit the modified files
   tsp/src/Version.Readme
   tsp/CMakeLists.txt
   with a meaningfull comment saying you are preparing a tsp version

5) Do a fresh checkout somewhere
   Build tsp from your pristine source tree
   --- remember that TSP currently only build out-of-source ---

     Better is at least 2 built:
         Linux ix86 wth gcc  (32bits)
         Windows win32 with Visual Studio 2003

6) Run autotests :))
   Which means for today run as many tests as you can do
         - Linux (tsp_stub_server, tsp_stdout_client,
                  tsp_ascii_writer, tsp_gdisp, targa, tspfs, 
                  bb_simu, bb_tools, bb_tsp_provider, ...)
           The time you have is your only enemy here...
         - Win32 (tsp_stub_server, tsp_stdout_client)

7) Tag tsp tree with appropriate version

   cvs tag TSP_0_8_3 tsp

   Generate the Changelog file using tsp/src/scripts/cvs2cl.pl

   For example updating Changelog for TSP 0.8.2 to 0.8.3 will be done
   using the following command:

   cd /path/to/tsp
   src/scripts/cvs2cl.pl -t -r --delta TSP_0_8_2:TSP_0_8_3 --prune -T --accum 

   commit the Changelog file
   force the tag on it:
   cvs tag -F TSP_0_8_3 tsp/Changelog

8) Make tsp packages using cpack
     - tar.gz (sources and binaries) [mandatory]
     - RPM (sources and binaries)    [optional]
     - .deb (coming soon)            [optional]
     - Win32 NSIS binary installer   [recommended]

8) Tests your packages or ask for help to test them
   on tsp-devel
   Fix packaging trouble if any and move the previous tag 
   if any commit occured.

9) digitally sign the packages you made and put them
   in the download area:
   https://savannah.gnu.org/maintenance/DownloadArea

   gpg -b tsp-0.8.3.tar.gz

   you should put the package in the appropriate subtree
   of the download area
   see: http://lists.nongnu.org/archive/html/tsp-devel/2007-03/msg00036.html
 
   Remember the rules for symlinks or plain files: 

>>>>>>>>>>>>>>>>>>>>>>   
tsp/tsp-x.y.z/sources
tsp/tsp-x.y.z/prebuilt/*

contains plain files and

tsp/sources/
tsp/prebuilt/*

contains symlinks to the former.
whereas

tsp/documentations/*

contains plain files and

tsp/tsp-x.y.z/documentations

contains symlinks to tsp/documentations/*
>>>>>>>>>>>>>>>>>>>>>>   

10) Check is the download area has been properly updated
     http://download.savannah.nongnu.org/releases/tsp/

11) post the appropriate news on Savannah TSP pages
   https://savannah.nongnu.org/news/submit.php?group=tsp

   DON'T MAIL to tsp-devel since news are 
   automagically forwarded to tsp-devel and tsp-info ML

   Remember that once you have posted the news you should
   approve it before it appears on first page.


You are roght this process IS painful and should be automated (a lot...)
be sure we are working on it :))
