Things to do with each teem release: -1) Bring documentation up-to-date with source tree make sure all the unrrdu pages agree with unu usage info? cp README.txt html/tree/ cp src/README.txt html/tree/src/ cp src/CHANGES.txt html/tree/src/ cp src/TODO.txt html/tree/src/ cp src/LICENSE.txt html/tree/src/ cd html; cvs commit -m blah 0) Check namespace safety a) Make sure all library symbols are properly prefixed. On linux, this should return nothing: cd teem/linux/lib nm libteem.so | grep -v "gcc2_compiled." | grep -v " U " | grep -v " A " \ | grep -v " air" | grep -v " _air" \ | grep -v " hest" | grep -v " _hest" \ | grep -v " biff" | grep -v " _biff" \ | grep -v " ell" | grep -v " _ell" \ | grep -v " nrrd" | grep -v " _nrrd" \ | grep -v " unrrdu" | grep -v " _unrrdu" \ | grep -v " dye" | grep -v " _dye" \ | grep -v " moss" | grep -v " _moss" \ | grep -v " gage" | grep -v " _gage" \ | grep -v " bane" | grep -v " _bane" \ | grep -v " limn" | grep -v " _limn" \ | grep -v " hoover" | grep -v " _hoover" \ | grep -v " mite" | grep -v " _mite" \ | grep -v " ten" | grep -v " _ten" \ | grep -v " echo" | grep -v " _echo" b) Make sure #defines in header files are properly prefixed: cd teem/inlude grep #define *.h | grep -v _export \ | grep -v " echo" | grep -v " ell" | grep -v " gage" \ | grep -v " AIR" | grep -v " _AIR" \ | grep -v " HEST" | grep -v " _HEST" \ | grep -v " BIFF" | grep -v " _BIFF" \ | grep -v " ELL" | grep -v " _ELL" \ | grep -v " NRRD" | grep -v " _NRRD" \ | grep -v " UNRRDU" | grep -v " _UNRRDU" \ | grep -v " DYE" | grep -v " _DYE" \ | grep -v " MOSS" | grep -v " _MOSS" \ | grep -v " GAGE" | grep -v " _GAGE" \ | grep -v " BANE" | grep -v " _BANE" \ | grep -v " LIMN" | grep -v " _LIMN" \ | grep -v " HOOVER" | grep -v " _HOOVER" \ | grep -v " MITE" | grep -v " _MITE" \ | grep -v " TEN" | grep -v " _TEN" \ | grep -v " ECHO" | grep -v " _ECHO" 1) 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) Make tgz snapshot of CVS repository 3) Checkout a tree into /usr/sci/projects/teem, and in this, "make teem/install" on all platforms that share the SCI facility. so that all SCItizens have access to teem. This should actually be maintained with a finer granularity than major teem releases. With major releases, update the "teem" symlink. mojojojo: setenv TEEM_ARCH darwin setenv TEEM_ZLIB setenv TEEM_BZIP2 setenv TEEM_BZIP2_LPATH -L/home/sci/gk/usr/darwin/lib setenv TEEM_BZIP2_IPATH -I/home/sci/gk/usr/include carrot: setenv TEEM_ARCH irix6.n32 setenv TEEM_ZLIB setenv TEEM_BZIP2 setenv TEEM_BZIP2_LPATH -L/home/sci/gk/usr/irix6.n32/lib setenv TEEM_BZIP2_IPATH -I/home/sci/gk/usr/include rapture: setenv TEEM_ARCH irix6.64 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 shot: setenv TEEM_ARCH linux setenv TEEM_ZLIB setenv TEEM_BZIP2 setenv TEEM_BZIP2_LPATH -L/home/sci/gk/usr/linux/lib setenv TEEM_BZIP2_IPATH -I/home/sci/gk/usr/include faith: setenv TEEM_ARCH solaris 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 4) Create source-only tgz: cvs checkout teem; cd teem find . -name CVS -exec rm -rf {} \; rm -rf html cd ..; mv teem teem-${VERSION} tar czvf teem-${VERSION}.tgz teem-${VERSION} 5) Create Unix-ish binary builds (without src or docs): for each TEEM_ARCH in "irix6.n32 irix6.64 linux cygwin solaris darwin": - ssh to some ARCH machine, copy teem-VERSION.tgz there if needed - setenv TEEM_XXX for all the externals that it makes sense to compile into the distributed statically linked binaries tar xzvf teem-${VERSION}.tgz cd teem-${VERSION}; setenv TEEM_DEST `pwd` alias GO "mv src/LICENSE.txt . ; rm -rf README.txt ; rm -rf cygwin/ ; rm -rf darwin/ ; rm -rf irix6.64/ ; rm -rf irix6.n32/ ; rm -rf linux/ ; rm -rf solaris/ ; rm -rf win32 ; rm -rf src" cd src; make; cd ..; GO; cd .. mv teem-${VERSION} teem-${VERSION}-${TEEM_ARCH} tar czvf teem-${VERSION}-${TEEM_ARCH}.tgz teem-${VERSION}-${TEEM_ARCH} 6) Create Windows binary builds. 7) Move all the binary builds to the web server 8) update online documentation (which may be done more often than releases) cvs -d /usr/sci/projects/teem/cvs co teemdoc; cd teemdoc mv html teem-html tar czvf teem-html.tgz teem-html scp teem-html.tgz faith.cs.utah.edu:/home/gk/web ssh faith.cs.utah.edu cd web; tar xzvf teem-html.tgz yes | rm -rf teem; mv teem-html teem yes | rm -rf teem-html* exit cd .. rm -rf teemdoc