User Tools

Site Tools


dev:release_checklist

Protocol for the creation of a CP2K release (branch) version

1. Agreement about a new release branch X.Y among the CP2K developers

2. Check if the following requirements for the release are fulfilled:

  • a) Clean status for all dashboard regression testers
  • b) Successful build and clean regtest of the gfortran sdbg, sopt, popt, pdbg, ssmp, and psmp versions
  • c) Check the SMP executables with H2O-32 benchmark input, e.g. using the script
#!/bin/sh
cwd=$PWD
cd cp2k/tests/QS/benchmark
#
../../../tools/clean_cwd.sh
export OMP_NUM_THREADS=1
mpiexec -np 8 ../../../exe/Linux-x86-64-gfortran/cp2k.popt H2O-32.inp >${cwd}/H2O-32-popt-8-1.out
#
../../../tools/clean_cwd.sh
export OMP_NUM_THREADS=1
mpiexec -np 8 ../../../exe/Linux-x86-64-gfortran/cp2k.psmp H2O-32.inp >${cwd}/H2O-32-psmp-8-1.out
#
../../../tools/clean_cwd.sh
export OMP_NUM_THREADS=2
mpiexec -np 4 ../../../exe/Linux-x86-64-gfortran/cp2k.psmp H2O-32.inp >${cwd}/H2O-32-psmp-4-2.out
#
../../../tools/clean_cwd.sh
export OMP_NUM_THREADS=4
mpiexec -np 2 ../../../exe/Linux-x86-64-gfortran/cp2k.psmp H2O-32.inp >${cwd}/H2O-32-psmp-2-4.out
#
../../../tools/clean_cwd.sh
export OMP_NUM_THREADS=8
mpiexec -np 1 ../../../exe/Linux-x86-64-gfortran/cp2k.psmp H2O-32.inp >${cwd}/H2O-32-psmp-1-8.out
#
../../../tools/clean_cwd.sh
export OMP_NUM_THREADS=8
              ../../../exe/Linux-x86-64-gfortran/cp2k.ssmp H2O-32.inp >${cwd}/H2O-32-ssmp-1-8.out
#
cd ${cwd}
#
for f in H2O-32-*.out; do echo -n $f; grep "ENERGY| Total FORCE_EVAL" $f | tail -1 | awk '{printf "%20.12f\n",$NF}'; done

The final energies of all MD runs should agree by 10-10.

3. Create a new branch directory on the SVN server using

svn mkdir svn+ssh://mkrack@svn.code.sf.net/p/cp2k/code/branches/cp2k-X_Y-branch

Description text: “Create folder for CP2K release branch X.Y”

4. Copy the current CP2K version from the trunk using

svn copy -m "Perform branching for CP2K release X.Y" \
    svn+ssh://mkrack@svn.code.sf.net/p/cp2k/code/trunk/cp2k\
    svn+ssh://mkrack@svn.code.sf.net/p/cp2k/code/branches/cp2k-X_Y-branch/cp2k

5. Check the release version out using

svn co svn+ssh://mkrack@svn.code.sf.net/p/cp2k/code/branches/cp2k-X_Y-branch cp2k-X_Y-branch

6. Apply release specific changes

  • a) Change cp2k_info.F (comment/uncomment release/branch line),
  • b) Provide Java version of saxon for manual generation
  • c) Create a file cp2k/REVISION with the revision number of the release branch and commit the changes:
cd cp2k-X_Y-branch/cp2k
tools/build_utils/get_revision_number >REVISION
svn add REVISION
svn ci -m "Store the revision number of the release branch" REVISION src
cd ..

7. Compile the release branch version and run one or more regression tests

The reference outputs can be retrieved from the branched CP2K trunk version:

cp -a ../trunk/LAST-Linux-x86-64-gfortran-regtest-pdbg/ .
cp2k/tools/regtesting/do_regtest -c cp2k/tools/regtesting/regtest_conf/Linux-x86-64-gfortran-regtest.pdbg.conf
cp -a ../trunk/LAST-Linux-x86-64-gfortran-regtest-ssmp/ .
cp2k/tools/regtesting/do_regtest -c cp2k/tools/regtesting/regtest_conf/Linux-x86-64-gfortran-regtest.ssmp.conf

8. Create a new manual on "cp2k.org"

  • a) Login to “cp2k.org”
  • b) Create a new folder manual/cp2k-X_Y-branch
  • c) Add a new link in the index.html file and logout
  • c) Create and upload the new manual:
cd cp2k/tools/manual
./update_manual Linux-x86-64-gfortran-regtest pdbg mkrack@5.35.252.240:/var/www/cp2k.org/manual/cp2k-X_Y-branch

9. Export the release branch (checkout without .svn folders) using

svn export http://svn.code.sf.net/p/cp2k/code/branches/cp2k-X_Y-branch/cp2k cp2k-X.Y.Z

10. Create a bzip2 tar file using

tar -cjf cp2k-X.Y.Z.tar.bz2 cp2k-X.Y.Z

11. Check the exported branch release

Create statically linked sopt and ssmp versions:

ln -s cp2k-X.Y.Z cp2k
cd cp2k/makefiles
make -j ARCH=Linux-x86-64-gfortran-static VERSION=ssmp
make -j ARCH=Linux-x86-64-gfortran-static VERSION=sopt

Create a popt version and run a regression test to generate the reference outputs for uploading:

make -j ARCH=Linux-x86-64-gfortran VERSION=popt
cd ../..
cp2k/tools/regtesting/do_regtest -c cp2k/tools/regtesting/regtest_conf/Linux-x86-64-gfortran.popt.conf -quick -nosvn

12. Upload the tar files to sourceforge to make it appear in the list under "Files" for download using

scp cp2k-X.Y.Z/exe/Linux-x86-64-gfortran-static/cp2k.sopt mkrack@frs.sourceforge.net:/home/frs/project/cp2k/precompiled/cp2k-X.Y.Z-Linux-x86_64.sopt
scp cp2k-X.Y.Z/exe/Linux-x86-64-gfortran-static/cp2k.ssmp mkrack@frs.sourceforge.net:/home/frs/project/cp2k/precompiled/cp2k-X.Y.Z-Linux-x86_64.ssmp
scp cp2k-X.Y.Z.tar.bz2 mkrack@frs.sourceforge.net:/home/frs/project/cp2k/cp2k-X.Y.Z.tar.bz2

13. Increment the version number of the development version in the files (skip this for sub-releases)

cp2k/src/cp2k_info.F
cp2k/tools/doxify/Doxyfile.template
cd cp2k
svn ci -m "Increment CP2K development version number" src/ tools/

14. Update the CP2K web page

15. Dissemination

Inform the

  • CP2K developers by email
  • CP2K users via the CP2K mailing list

about the new CP2K release.

For a new sub-release X.Y.Z repeat 6-15, correspondingly.

dev/release_checklist.txt · Last modified: 2015/12/22 14:10 by krack