1 Here is the checklist when freezing a version of gdcm:
3 * First stage, checkings:
5 Notation: we here assume you have a cvs tree in GDCMHOME directory.
6 cvs -d:pserver:anonymous@cvs.creatis.insa-lyon.fr:2402/cvs/public login
7 cvs -d:pserver:anonymous@cvs.creatis.insa-lyon.fr:2402/cvs/public co gdcm
10 cvs -d:pserver:anonymous@cvs.creatis.insa-lyon.fr:2402/cvs/public co gdcmData
12 1a/ check the full compilation is effective:
13 ./autogen.sh --enable-vtk --enable-python --enable-doxygen
16 1b/ check the python test suite is clean:
18 export PYTHONPATH=`pwd`/..
19 ln -s .libs/pygdcm.so _gdcm.so
20 ln -s .libs/vtkgdcmPython.so .
23 1c/ check the setup.py distutil script is operational and then validate
24 its produced packages through the test suite, in all following cases
25 - Direct installation:
27 python setup.py install --prefix=/tmp
28 cd /tmp/lib/python2.2/site-packages/
29 ln -s $GDCMHOME/gdcmData .
30 export PYTHONPATH=`pwd`
34 \rm -fr build /tmp/lib
35 - Binary distribution:
38 [ or you migth get some complains about the function
39 PyVTKClass_vtkGdcmReaderNew being multiply defined: this is
40 because of the loose definition of vtkSources in setup.py
41 in which the usage of the glob function will produce a link
42 stage with multiple occurences of vtkGdcmReaderPython.o)].
43 python setup.py bdist --formats=rpm
45 rpm -Uvh dist/gdcmPython-0.*.i386.rpm
46 cd /usr/lib/python2.2/site-packages/
47 ln -s $GDCMHOME/gdcmData .
50 rpm --erase gdcmPython
51 - Source distribution and then binary distribution (out of build
54 [make clean (see above) ]
57 tar zxvf $GDCMHOME/dist/gdcmPython-*.tar.gz
59 python setup.py bdist --formats=rpm
61 As root, repeat above installation with rpm and test.
64 Notation: we consider that GDCMHOME is the directory obtained from the
66 cvs -d:pserver:anonymous@cvs.creatis.insa-lyon.fr:2402/cvs/public login
67 cvs -d:pserver:anonymous@cvs.creatis.insa-lyon.fr:2402/cvs/public co gdcm
69 cvs -d:pserver:anonymous@cvs.creatis.insa-lyon.fr:2402/cvs/public co gdcmData
71 2a/ compile all projects in the gdcm.dsw workspace.
73 2b/ set the PYTHONPATH environement variable to the gdcm/gdcmPython
75 check the python test suite is clean (python testSuite.py)
79 2c/ check the setup.py distutil script is operational and then validate
80 its produced packages through the test suite, in all following cases
81 - Direct installation:
83 python setup.py install --prefix="c:\tmp"
84 cd /tmp/Lib/site-packages/
85 copy $(GDCMDATAHOME) .
86 export PYTHONPATH="c:\tmp\Lib\site-packages"
89 remove $(GDCMHOME)\build directory
90 - Binary distribution:
92 python setup.py bdist --formats=wininst
93 install $(GDCMHOME)\dist\gdcmPython-xxx.win32-py2.2.exe
94 cd $(PYTHONHOME)\Lib\site-packages\
99 remove $(GDCMHOME)\build directory
100 - Source distribution and then binary distribution (out of build
103 python setup.py sdist --formats=zip
104 unzip $(GDCMHOME)\dist\gdcmPython-xxx.zip in TMPHOME directory
107 python setup.py bdist --formats=wininst
108 As root, repeat above installation with exe and test.
110 * Second stage: preparing packaging:
111 - Update the version number in configure.in (AM_INIT_AUTOMAKE)
112 - Update the version number in setup.py (version entry in setup object).
114 * Third stage: packaging
116 1a/ Packaging at the C/C++/Python level (i.e. exports both libraries,
117 include files and python package)
118 - Make sure you have a ~/.rpmmacros file containing the line
119 %_topdir <somedirectoryPath>
120 and that <somedirectoryPath> exists and contains the subdirs
121 BUILD, SOURCES, RPMS/i386, SRPMS, SPECS
123 - ./autogen.sh --enable-vtk --enable-python --enable-doxygen
124 - make release (generates gdcm-x.y.z.tar.gz)
125 - rpm -ta gdcm-x.y.z.tar.gz
126 - collect the result in <somedirectoryPath>/RPMS/i386/ and
127 <somedirectoryPath>/SRPMS.
128 1b/ Packaging at the python level:
130 python setup.py sdist
131 python setup.py bdist --formats=rpm
132 collect both source distro and binary distro
135 2a/ Packaging at the python level:
137 python setup.py sdist --formats=zip
138 python setup.py bdist --formats=wininst
139 collect both source distro and binary distro