User Tools

Site Tools


dev:release_checklist

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
dev:release_checklist [2015/10/28 13:57] oschuettdev:release_checklist [2024/01/01 20:52] oschuett
Line 1: Line 1:
-====== Protocol for the creation of a CP2K release (branch) version ======+====== Release Checklist ======
  
-=== 1. Agreement about a new release branch X.Y among the CP2K developers === +=== 1. Check that the dashboard is green and there are no other blocking issues === 
-=== 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+
  
-<code bash> +=== 2. Cut the release version ===
-#!/bin/sh +
-cwd=$PWD +
-cd cp2k/tests/QS/benchmark +
-+
-../../../tools/clean_cwd.sh +
-export OMP_NUM_THREADS=+
-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=+
-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=+
-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=+
-              ../../../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 +
-</code> +
-The final energies of all MD runs should agree by 10<sup>-10</sup>.+
  
-=== 3. Create a new branch directory on the SVN server using === 
 <code> <code>
-svn mkdir svn+ssh://mkrack@svn.code.sf.net/p/cp2k/code/branches/cp2k-X_Y-branch+git checkout -b support/v20XX.Y
 </code> </code>
-Description text: "Create folder for CP2K release branch X.Y" 
  
-=== 4. Copy the current CP2K version from the trunk using === +Edit the ''cp2k_version'' string in [[src>src/cp2k_info.F]] (⚠️ remove the  ''Development Version'').
-<code> +
-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 +
-</code> +
-=== 5. Check the release version out using === +
-<code> +
-svn co svn+ssh://mkrack@svn.code.sf.net/p/cp2k/code/branches/cp2k-X_Y-branch cp2k-X_Y-branch +
-</code> +
-===  6. Apply release specific changes === +
-  * a) Change cp2k_info.F (comment/uncomment release/branch line), +
-  * b) Provide Java version of [[http://sourceforge.net/projects/saxon|saxon]] for manual generation +
-  * cCreate a file cp2k/REVISION with the revision number of the release branch and commit the changes: +
-<code> +
-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 .+
-</code>+
  
-=== 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: 
 <code> <code>
-cp -a ../trunk/LAST-Linux-x86-64-gfortran-regtest-pdbg/+tools/build_utils/get_revision_number src >REVISION 
-cp2k/tools/regtesting/do_regtest -c cp2k/tools/regtesting/regtest_conf/Linux-x86-64-gfortran-regtest.pdbg.conf +git add REVISION src/cp2k_info.F 
-cp -a ../trunk/LAST-Linux-x86-64-gfortran-regtest-ssmp/ . +git commit -m "Cut release version 20XX.Y"
-cp2k/tools/regtesting/do_regtest -c cp2k/tools/regtesting/regtest_conf/Linux-x86-64-gfortran-regtest.ssmp.conf+
 </code> </code>
  
-=== 8. Create a new manual on "cp2k.org" === +Example: https://github.com/cp2k/cp2k/commit/056df93
-  * 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: +
-<code> +
-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 +
-</code>+
  
-<note important> +=== 3. Tag the release and push to GitHub ===
-Don't forget to adopt the google search within the novel index.html +
-</note>+
  
-=== 9. Export the release branch (checkout without .svn folders) using === 
 <code> <code>
-svn export http://svn.code.sf.net/p/cp2k/code/branches/cp2k-X_Y-branch/cp2k cp2k-X.Y.Z+git tag -m "Cut release version 20XX.Y" -a v20XX.
 +git push upstream_rw support/v20XX.Y v20XX.Y
 </code> </code>
  
-=== 10. Create a bzip2 tar file using === +=== 4. Create tar ball and upload to new GitHub draft release ===
-<code> +
-tar -cjf cp2k-X.Y.Z.tar.bz2 cp2k-X.Y.Z +
-</code>+
  
-=== 11. Check the exported branch release === 
-Create statically linked ''sopt'' and ''ssmp'' versions: 
 <code> <code>
-ln -s cp2k-X.Y.Z cp2k +pip3 install git-archive-all 
-cd cp2k/makefiles +git-archive-all ./cp2k-20XX.Y.tar.bz2
-make -j ARCH=Linux-x86-64-gfortran-static VERSION=ssmp +
-make -j ARCH=Linux-x86-64-gfortran-static VERSION=sopt +
-</code> +
-Create a ''popt'' version and run a regression test to generate the reference outputs for uploading: +
-<code> +
-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+
 </code> </code>
  
-=== 12Upload the tar file to sourceforge to make it appear in the list under "Files" for download using ===+=== 5Create and upload binaries and Docker images === 
 <code> <code>
-tar -cjf cp2k-X_Y-branch_LAST-Linux-x86-64-gfortran-popt.tar.bz2 LAST-Linux-x86-64-gfortran-popt +cd cp2k/tools/docker 
-scp cp2k-X_Y-branch_LAST-Linux-x86-64-gfortran-popt.tar.bz2 mkrack@frs.sourceforge.net:/home/frs/project/cp2k/testresults +./build_dockerhub_images.sh 
-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 +docker tag cp2k/cp2k:devZZZZZZZZ  cp2k/cp2k:20XX.Y 
-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 +docker tag cp2k/cp2k:devZZZZZZZZ  cp2k/cp2k:latest 
-scp cp2k-X.Y.Z.tar.bz2 mkrack@frs.sourceforge.net:/home/frs/project/cp2k/cp2k-X.Y.Z.tar.bz2+docker push cp2k/cp2k:20XX.Y 
 +docker push cp2k/cp2k:latest
 </code> </code>
  
-=== 13Increment the version number of the development version in the files (skip this for sub-releases) ===+=== 6Create a new manual on "cp2k.org" === 
 <code> <code>
-cp2k/src/cp2k_info.F +cd cp2k/tools/docker 
-cp2k/tools/doxify/Doxyfile.template +docker build -f ./Dockerfile.test_manual  --build-arg GIT_COMMIT_SHA=$(git rev-parse HEAD) --build-arg ADD_EDIT_LINKS=no -t manual_img ../../ 
-cd cp2k +docker run -"$(pwd)":/mnt manual_img cp -rv  /workspace/artifacts/manual /mnt/ 
-svn ci -"Increment CP2K development version numbersrctools/+scp -r manual sham:/var/www/cp2k.org/manual/cp2k-20XX_Y-branch
 </code> </code>
  
-=== 14. Update the CP2K web page ===+=== 7. Update the main branch === 
 + 
 +Change back to the main branch to add a new link in the [[src>tools/manual/index.html]] and update the development version in [[src>src/cp2k_info.F]]. Example: https://github.com/cp2k/cp2k/commit/1509dbb . 
 + 
 +=== 8. Update the CP2K web page === 
   * Add [[:news|News]] entry   * Add [[:news|News]] entry
   * Update [[:version_history|Version History]]   * Update [[:version_history|Version History]]
 +  * Update git tag on the [[:download#git_access|Download page]]
 +
 +=== 9. Dissemination ===
  
-=== 15. Dissemination === 
 Inform the Inform the
 +
   * CP2K developers by email   * CP2K developers by email
-  * CP2K users via the CP2K mailing list +  * CP2K users via the CP2K mailing list ([[https://groups.google.com/g/cp2k/c/ydyIJh2BPoE|Example]] - ⚠️ check greeting!) 
-about the new CP2K release.+  the Twitter-sphere via the Twitter account
  
-For a new sub-release X.Y.Z repeat 6-15, correspondingly.+about the new CP2K release.
dev/release_checklist.txt · Last modified: 2024/01/01 23:40 by oschuett