Making a VR Juggler Release
Pieces
"VR Juggler" is basically supposed to be everything, which means that a lot of code goes into a release distribution. The following lists everything that goes into a distribution of VR Juggler (for a 2.0 pre-release).
- VPR
- Tweek
- Java support which requires CORBA
- C++ CORBA support which requires omniORB 4.0.3 or newer (for full compiler support)
- JCCL
- Sonix
- All possible plug-ins (OpenAL and Audiere as a bare minimum)
- Gadgeteer
- All drivers except TrackdAPI (we don't have a copy of it)
- For VRPN, use 06.06 or newer as it is the first version that compiles with Visual C++ 7.1
- VR Juggler and VRJConfig
Steps
Source Distribution
- Check out a clean copy of the
juggler module. Do not run cvs-gather.
- Increment the version in
juggler/modules/vrjuggler/VERSION
- Do this so that the release is against a specific VR Juggler version.
- Update
juggler/modules/vrjuggler/RELEASE-NOTES.txt with any relevant information regarding API changes, major bug fixes, and cool new features.
- Tag the tree with a release tag (referred to below as <TAG_NAME>).
- Remove the source tree you were just working with and run the following:
cvs -d <...> export -kv -r <TAG_NAME> juggler
cd juggler
./autogen.sh
- Once the above is done, tar up the fully populated source tree. Compress it with
bzip2 -9 to make it as small as possible.
- This is the source distribution.
Binary Distributions
- Use maximum compression when creating the final archive to be uploaded to SourceForge.
- Use
make release unless otherwise noted.
- The target
install-deps installs all the detected dependencies. By default, it installs into the same tree where VR Juggler is installed by the release target, but this can be changed by setting the varaible deps_prefix when running make. For example:
make prefix=/home/users/me/vrjuggler-2.0 release
make deps_prefix=/home/users/me/vrjuggler-2.0-deps install-deps
Before Beginning
- Install the freshly made source distribution in
/home/vr/Juggler/2.0.
- Make all builds against this distribution, though do them in
/tmp or /var/tmp to make the process a little faster. configure will find the source code in /home/vr/Juggler/2.0, so don't worry about that.
- When running
configure.pl, pass --prefx=/TEMP_DIRECTORY/vrjuggler-VERSION.PLATFORM so that the installation happens on the local disk.
- Once the distribution has been completed, it can be moved into
/home/vr/Juggler/2.0.
IRIX
- Don't use the IRIX tar to untar...Use a linux box to untar because IRIX tar cannot make all of the symlinks right
- Build N32/mips3 (default) SPROC
- Build N32/mips3 (default) POSIX
- Build 64/mips4 (--with-abi=64_M4) SPROC
- Build 64/mips4 (--with-abi=64_M4) POSIX
Linux
Windows
- Build NSPR debug and release
- The Python script
buildwin32.py will ask for a path for the VR Juggler installation and for the dependency installation. These can be the same if desired.
- Select everything under the Batch Build dialog and build.
- Compress the binary distribution tree using WinZip with maximum compression.
Mac OS X
- Build X11 version as a universal binary with the prefix set to
/usr/local
make prefix=$HOME/vrjuggler/usr/local release
make deps_prefix=$HOME/vrjuggler/usr/local/vrjuggler-deps install-deps
cd $HOME/vrjuggler/usr/local
mkdir ../../Applications
mv Tweek.app VRJConfig.app ../../Applications
- Create a package for isntalling and add the
preflight and =postflight scripts
- Create a disk image for distribution purposes
Documentation
The DocBook-related tools needed for rendering the documentation can be found as attachments to WritingDocumentationUsingDocBook.
- Build a documentation release:
make -f Makefile.docs
make -f Makefile.docs release
cd ~
mv vrj-docs.dist <versioned documentation distribution name>
Things to check before releasing
- All Boost files were installed, including the few
.h files that they have in their source tree.
Uploading to SourceForge
- Read their documentation about making file releases.
- Read their documentation about posting a news item (in this case, a release announcement).
- Usually, it is fine to base an announcement on the last one that was made for that release series.
Finishing Up
-- PatrickHartling - 01 Jul 2003
|