
GLK's list of things to do for each release.  This started with an
early version of Teem and has been only partially maintained since
then; consider it a work-in-progress ...

-5) use names.pl to make sure all sourcefile names are unique

-4) Make sure the CMake and GNUMake agree on source files per-library

-3.5) make sure that teem/src/meet/enumall.c:meetAirEnumAll()
 is up-to-date

-3) make sure that all the files have the right copyright
pre-ambles

-2.5) make sure that there are no DOS files
find . -name \*.c -exec unu undos -n {}  \;
find . -name \*.h -exec unu undos -n {}  \;
find . -name \*.txt -exec unu undos -n {} \;

-2.25) make sure there's no unwanted trailing whitespace
grep -E '^.+[ ]+$' */*.c

-2) make sure there are no tabs:
cat > tab.txt
(tab) (return)
^D

find . -name \*.c -exec grep -f tab.txt {} /dev/null \; | more
find . -name \*.h -exec grep -f tab.txt {} /dev/null \; | more
find . -name \*.txt -exec grep -f tab.txt {} /dev/null \; | more
rm -f tab.txt

-1) finalize TEEM_VERSION* in air/air.h and airTeemReleaseDate in air/misc.c
and set airTeemReleaseDone to AIR_TRUE

-0.5) regenerate teem/python/ctypes/teem.py

-0.25) regenerate NrrdIO

0) Bring documentation up-to-date with source tree
make sure all the unrrdu pages agree with unu usage info
cd ~/teem
cp README.txt ~/teemdoc/html/tree/
cp src/TODO.txt ~/teemdoc/html/tree/src/
(cd ~/teemdoc; cvs commit -m "pre-release text file update")

from: http://sourceforge.net/p/forge/documentation/SFTP/
  sftp kindlmann,teem@web.sourceforge.net
  cd htdocs
also worked (from teemdoc/html)
scp index.html kindlmann,teem@web.sourceforge.net:/home/project-web/teem/htdocs
(HEY: need to figure out using rsync to move things to sourceforge)

1) Check namespace safety
  a) Make sure all library symbols are properly prefixed:
  run make/release-nm-check.csh and make/release-def-check.csh

2) Make sure it works
  "make teem/dev teem/install" on every supported architecture,
  and make sure Windows stuff also still works (if new files or
  libraries were added)

2.5) svn "tag":
setenv VERSION <<version>>
svn copy https://svn.code.sf.net/p/teem/code/teem/trunk \
         https://svn.code.sf.net/p/teem/code/teem/branches/Teem-${VERSION}

3) Create source-only tgz:
svn co http://svn.code.sf.net/p/teem/code/teem/trunk teem
cd teem
find . -name .svn  -exec rm -rf {} \;
cd ..; mv teem teem-${VERSION}-src
tar czvf teem-${VERSION}-src.tar.gz teem-${VERSION}-src
mv teem-${VERSION}-src.tar.gz ~/rel

svn co http://svn.code.sf.net/p/teem/code/NrrdIO/trunk NrrdIO
cd NrrdIO
find . -name .svn  -exec rm -rf {} \;
cd ..; mv NrrdIO NrrdIO-${VERSION}-src
tar czvf NrrdIO-${VERSION}-src.tar.gz NrrdIO-${VERSION}-src
mv NrrdIO-${VERSION}-src.tar.gz ~/rel

4) Checkout a tree:

"make teem/install" on all platforms ...

rapture/ray/muse:
setenv TEEM_ARCH irix6.64
setenv TEEM_PNG
setenv TEEM_ZLIB
setenv TEEM_BZIP2
setenv TEEM_BZIP2_LPATH -L/home/sci/gk/usr/irix6.64/lib
setenv TEEM_BZIP2_IPATH -I/home/sci/gk/usr/include
setenv TEEM_PNG_LPATH -L/home/sci/gk/usr/irix6.64/lib
setenv TEEM_PNG_IPATH -I/home/sci/gk/usr/irix6.64/include

(options for being multi-threaded)
setenv TEEM_PTHREAD
setenv TEEM_LINK_SHARED
setenv PATH ${PATH}:/home/sci/gk/usr/local/irix6.64/bin
setenv LD_LIBRARY64_PATH ${LD_LIBRARY64_PATH}:/home/sci/gk/usr/local/irix6.64/lib

vision:
setenv TEEM_ARCH solaris
setenv TEEM_PNG
setenv TEEM_ZLIB
setenv TEEM_BZIP2
setenv TEEM_BZIP2_LPATH -L/home/gk/lib
setenv TEEM_BZIP2_IPATH -I/home/gk/include
setenv TEEM_ZLIB_LPATH -L/home/gk/lib
setenv TEEM_ZLIB_IPATH -I/home/gk/include
setenv TEEM_PNG_LPATH -L/usr/local/lib
setenv TEEM_PNG_IPATH -I/usr/local/include


5) Create Unix-ish binary builds (without src or docs):
   for each TEEM_ARCH in:
   irix6.n32 linux.ia64 linux.amd64 linux.32 cygwin solaris darwin.32 darwin.64
-  ssh to some ARCH machine, copy teem-VERSION-src.tar.gz there if needed
-  setenv TEEM_XXX for all the externals that it makes sense to
      compile into the distributed statically linked binaries
setenv VERSION <<<version>>>
tar xzvf ~/rel/teem-${VERSION}-src.tar.gz
cd teem-${VERSION}-src; setenv TEEM_DEST `pwd`
cd src; make; cd ..
mv src/LICENSE.txt .
yes | rm -rf README.txt aix cygwin darwin.32 darwin.64 irix6.64 \
      irix6.n32 linux.32 linux.amd64 linux.ia64 solaris win32 src \
      CMake CMakeLists.txt CTestConfig.cmake DartConfig.cmake
cd ..
mv teem-${VERSION}-src teem-${VERSION}-${TEEM_ARCH}
tar czvf teem-${VERSION}-${TEEM_ARCH}.tar.gz teem-${VERSION}-${TEEM_ARCH}
mv -f teem-${VERSION}-${TEEM_ARCH}.tar.gz ~/rel
yes | rm -rf teem-${VERSION}-${TEEM_ARCH}

6) Create Windows binary builds.

7) put the builds on sourceforge:
cd ~/rel
sftp kindlmann@frs.sourceforge.net
cd uploads
mput *.tar.gz

9) update online documentation (which may be done more often than releases)
cd ~/teemdoc
cvs commit -m "pre-release doc update"

ssh kindlmann@shell.sf.net

cd teem/htdocs
cvs update
exit








for Deft:
cvs -d:ext:kindlmann@teem.cvs.sf.net:/cvsroot/teem init
cvs -d:ext:kindlmann@teem.cvs.sf.net:/cvsroot/teem import -m "initial import" Deft Deft start
