Here is the checklist when freezing a version of gdcm:

* First stage, checkings:
  1/ Un*x:
    Notation: we here assume you have a cvs tree in GDCMHOME directory.
    cvs -d:pserver:anonymous@cvs.creatis.insa-lyon.fr:2402/cvs/public login
    cvs -d:pserver:anonymous@cvs.creatis.insa-lyon.fr:2402/cvs/public co gdcm
    cd gdcm
    export GDCMHOME=`pwd`
    cvs -d:pserver:anonymous@cvs.creatis.insa-lyon.fr:2402/cvs/public co gdcmData

    1a/ check the full compilation is effective:
       ./autogen.sh --enable-vtk --enable-python --enable-doxygen
       make
        
    1b/ check the python test suite is clean:
       cd gdcmPython
       export PYTHONPATH=`pwd`/..
       ln -s .libs/pygdcm.so _gdcm.so
       ln -s .libs/vtkgdcmPython.so .
       python testSuite.py

    1c/ check the setup.py distutil script is operational and then validate
        its produced packages through the test suite, in all following cases
       - Direct installation:
         cd $GDCMHOME
         python setup.py install --prefix=/tmp
         cd /tmp/lib/python2.2/site-packages/
         ln -s $GDCMHOME/gdcmData .
         export PYTHONPATH=`pwd`
         cd gdcmPython/
         python testSuite.py
         cd $GDCMHOME
         \rm -fr build /tmp/lib
       - Binary distribution:
         cd $GDCMHOME
         make clean
            [ or you migth get some complains about the function 
              PyVTKClass_vtkGdcmReaderNew being multiply defined: this is
              because of the loose definition of vtkSources in setup.py
              in which the usage of the glob function will produce a link
              stage with multiple occurences of vtkGdcmReaderPython.o)].
         python setup.py bdist --formats=rpm
         su
         rpm -Uvh dist/gdcmPython-0.*.i386.rpm
         cd /usr/lib/python2.2/site-packages/
         ln -s $GDCMHOME/gdcmData .
         cd gdcmPython
         python testSuite.py
         rpm --erase gdcmPython
       - Source distribution and then binary distribution (out of build 
         source distro):
         cd $GDCMHOME
         [make clean (see above) ]
         python setup.py sdist
         cd /tmp
         tar zxvf $GDCMHOME/dist/gdcmPython-*.tar.gz
         cd gdcmPython-*/
         python setup.py bdist --formats=rpm
         cd dist
         As root, repeat above installation with rpm and test.
         
  2/ Windoze:
    Notation: we consider that GDCMHOME is the directory obtained from the
    following checkout.
    cvs -d:pserver:anonymous@cvs.creatis.insa-lyon.fr:2402/cvs/public login
    cvs -d:pserver:anonymous@cvs.creatis.insa-lyon.fr:2402/cvs/public co gdcm
    cd gdcm
    cvs -d:pserver:anonymous@cvs.creatis.insa-lyon.fr:2402/cvs/public co gdcmData

    2a/ compile all projects in the gdcm.dsw workspace.

    2b/ set the PYTHONPATH environement variable to the gdcm/gdcmPython
       directory
       check the python test suite is clean (python testSuite.py)
       cd gdcmPython
       python testSuite.py

    2c/ check the setup.py distutil script is operational and then validate
        its produced packages through the test suite, in all following cases
       - Direct installation:
         cd $(GDCMHOME)
         python setup.py install --prefix="c:\tmp"
         cd /tmp/Lib/site-packages/
         copy $(GDCMDATAHOME) .
         export PYTHONPATH="c:\tmp\Lib\site-packages"
         cd gdcmPython/
         python testSuite.py
         remove $(GDCMHOME)\build directory
       - Binary distribution:
         cd $(GDCMHOME)
         python setup.py bdist --formats=wininst
         install $(GDCMHOME)\dist\gdcmPython-xxx.win32-py2.2.exe
         cd $(PYTHONHOME)\Lib\site-packages\
         Check out gdcmData
         cd gdcmPython
         clean up PYTHONPATH
         python testSuite.py
         remove $(GDCMHOME)\build directory
       - Source distribution and then binary distribution (out of build
         source distro):
         cd $(GDCMHOME)
         python setup.py sdist --formats=zip
         unzip $(GDCMHOME)\dist\gdcmPython-xxx.zip in TMPHOME directory
         cd $(TMPHOME)
         cd gdcmPython-*/
         python setup.py bdist --formats=wininst
         As root, repeat above installation with exe and test.
         
* Second stage: preparing packaging:
  - Update the version number in configure.in (AM_INIT_AUTOMAKE)
  - Update the version number in setup.py (version entry in setup object).

* Third stage: packaging
  1/ Un*x
    1a/  Packaging at the C/C++/Python level (i.e. exports both libraries,
        include files and python package)
      - Make sure you have a ~/.rpmmacros file containing the line
            %_topdir <somedirectoryPath>
        and that <somedirectoryPath> exists and contains the subdirs
        BUILD, SOURCES, RPMS/i386, SRPMS, SPECS
      - cd $(GDCMHOME)
      - ./autogen.sh --enable-vtk --enable-python --enable-doxygen
      - make release  (generates gdcm-x.y.z.tar.gz)
      - rpm -ta gdcm-x.y.z.tar.gz
      - collect the result in <somedirectoryPath>/RPMS/i386/ and
        <somedirectoryPath>/SRPMS.
    1b/ Packaging at the python level:
         cd $(GDCMHOME)
         python setup.py sdist
         python setup.py bdist --formats=rpm
         collect both source distro and binary distro

  2/ Un*x
    2a/ Packaging at the python level:
         cd $(GDCMHOME)
         python setup.py sdist --formats=zip
         python setup.py bdist --formats=wininst
         collect both source distro and binary distro

