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 SVN
- Make sure that there are no files checked out modified from the SVN
repository. This is important to make sure that the SVN version of
the source code and the released version are in synch.
- Build Everything in VC7, and then in VC9
- Load the ".sln" workspaces for each of the major applications (CManager, Enviro, VTBuilder,
vtConvert) and do a "Batch Build" operation to compile
both configurations (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
- This confirms that nothing broke compilation with the gcc compiler.
- 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
- Upload the source code documentation
- You can use the shell script, e.g.
upload_lib_docs.sh
- or you can manually copy up the doc files.
- 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 091225
mk_vtp_src_zips.sh 091225
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-151-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 less common case that we must upgrade to a newer version of libjpeg,
libpng, NetCDF, libMini, curl, etc, 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 all zipfiles and installer exes that have changed.
From: C:\Distrib
To:
vterrain.org/public_html/dist
- 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.