VTP Release Procedure
Anyone, in theory, can produce a release of the VTP software. Here are
the steps that i go through, to serve as a guide for anyone else to follow, or for
anyone interested in the process.
The process starts on a Windows machine, switches to Linux, and back again.
Your Windows machine should have a folder C:\Distrib where the scripts
etc. will expect to assemble their files.
- Check CVS
- Make sure that there are no files checked out modified from the CVS
repository. This is important to make sure that the CVS version of
the source code and the released version are in synch.
- Build Everything in VC7, and then in VC8
- Load the ".sln" workspaces for each of the four major applications (BExtractor,
CManager, Enviro, VTBuilder) and do a "Batch Build" operation to compile
all 4 configurations (Debug, Release, Debug Unicode, Release Unicode) for
every project.
- Check for warnings and smooth compilation.
- Test on Windows
- Do as much testing as you have time for. Load the common data
sets, try at least the common operations.
- Build Everything on Linux
- Using CodeForge, so it is just a couple mouseclicks to do a CVS update
and build the libraries (TerrainSDK/Makefile) and applications (TerrainApps/Makefile).
If you don't use CodeForge, your mileage may vary :-)
- Test on Linux
- Each application has to be manually launched in its own directory, e.g.
cd VTBuilder
./VTBuilder
- Do as much testing as you have time for.
- Back on Windows, generate the source code documentation.
- In the folder VTP/TerrainSDK/vtdata:
doxygen vtdata.cfg
- In the folder VTP/TerrainSDK/vtlib:
doxygen vtlib.cfg
- Create the VTP distribution Zip files
- Open a Cygwin shell and go to your "VTP" folder, e.g.
cd c:
cd VTP
- Use the shell scripts, following by the current date in YYMMDD, e.g.
mk_vtp_bin_zip.sh 071225
mk_vtp_src_zips.sh 071225
This will automatically create the three distribution zips in the
C:\Distrib folder.
- If any APIs have changed versions, rebuild their Windows binary zips:
- For GDAL, rebuild GDAL (both Debug and Release) and use Frank's "
mk_win_bin_dist.sh"
script to generate a distribution zipfile, e.g. gdal-119-ntbin.zip
(or assemble this zip manually).
- For OSG, rebuild Debug and Release of only the projects that VTP needs:
osg |
osgdb_3ds |
osgdb_jpeg |
osgdb_png |
osgDB |
osgdb_bmp |
osgdb_lwo |
osgdb_rgb |
osgUtil |
osgdb_flt |
osgdb_obj |
osgdb_tga |
osgText |
osgdb_freetype |
osgdb_osg |
osgdb_tiff |
Copy just the bin, lib, and include
folders to a new folder, e.g. \APIs\osg-0.9.7-bin, and make
this into a zipfile, e.g. osg-0.9.7-bin.zip
Make another folder alongside 'bin' called 'bin-rel-only' which contains
only the Release mode version of the libraries. This will be used
by InnoSetup in a later step.
- In the rare case that we must upgrade to a newer version of libjpeg,
libpng, NetCDF, libMini, libwww, or ZipArchive, build it and update
WinAPIs-xxxx.zip (where xxxx is the date, YYMM)
- If any APIs have changed versions, update:
- The file
Prebuilt-DLLs-xxxx (where xxxx is the date, YYMM)
needs the latest versions of all DLLs that it contains
- Rebuild the Windows Installers
- Launch the Inno Setup Compiler
- Load each of the three configurations (found in
VTP/Installers/*.iss)
- For each configuration, update the file data at the top (see AppVerName)
and glance through the rest of the script to make sure filenames and directories
are correct and up-to-date.
- Build each. This will create the following three .exe files in
C:\Distrib
setup_full.exe
setup_full_no_unicode.exe
setup_hawaii.exe
- If you are the webmaster, update all URLs in the download and build instructions
on the website. A way to do this that's not error-prone is to do a semi-automatic
seach-and-replace on the release date, e.g. if the previous version was
031024 and the current is 031105, search and replace
those strings.
- Upload.
From: C:\Distrib
To: cyclone.he.net/home/vterrain/dist
All zipfiles and installer exes that have changed.
- If you are the mailing list moderator, announce the release.
- This can't be done with normal email, but only through the Yahoo! Groups
web interface, which allows you to check the box that says "Send this message
as a Special Notice". This is because many people are only
subscribed to the list to get special notices such as release announements.
- Summarize the changes since the last release by pulling highlights from
the development log.
- If this is a CD release as well, rebuild the Disk Image for the distribution.
It will contain:
- index.html, which can be copied from the previous CD and updated appropriately
- Archives folder, which contains all possibly needed distribution files
for the VTP and all its dependencies. Start with the previous CDs
contents, updating files as needed.
- HTML folder, which contains copies of the latest Download and Distrib
folders of the website, carefully modified to point to local paths on the
CD.
- SiteMirror, which is a copy of the FrontPage source of the VTP site
with all the private and
_vti_cnf folders removed.