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 [2014/12/22 11:03] – Update release protocol krackdev: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" 
  
-=== 4Copy the current CP2K version from the trunk using ===+Edit the ''cp2k_version'' string in [[src>src/cp2k_info.F]] (⚠️ remove the  ''Development Version''). 
 <code> <code>
-svn copy -m "Perform branching for CP2K release X.Y" \ +tools/build_utils/get_revision_number src >REVISION 
-    svn+ssh://mkrack@svn.code.sf.net/p/cp2k/code/trunk/cp2k\ +git add REVISION src/cp2k_info.F 
-    svn+ssh://mkrack@svn.code.sf.net/p/cp2k/code/branches/cp2k-X_Y-branch/cp2k +git commit -m "Cut release version 20XX.Y"
-</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 +
-  * c) Create 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 branchREVISION src +
-cd ..+
 </code> </code>
  
-=== 7Compile the release branch version and run one or more regression tests === +Example: https://github.com/cp2k/cp2k/commit/056df93 
-The reference outputs can be retrieved from the branched CP2K trunk version:+ 
 +=== 3Tag the release and push to GitHub === 
 <code> <code>
-cp -../trunk/LAST-Linux-x86-64-gfortran-regtest-pdbg/+git tag -m "Cut release version 20XX.Y" -a v20XX.Y 
-cp2k/tools/regtesting/do_regtest -c cp2k/tools/regtesting/regtest_conf/Linux-x86-64-gfortran-regtest.pdbg.conf +git push upstream_rw support/v20XX.Y v20XX.Y
-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+
 </code> </code>
  
-=== 8. Create new manual on "cp2k.org" === +=== 4. Create tar ball and upload to new GitHub draft release === 
-  * 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> <code>
-cd cp2k/tools/manual +pip3 install git-archive-all 
-./update_manual Linux-x86-64-gfortran-regtest pdbg mkrack@5.35.252.240:/var/www/cp2k.org/manual/cp2k-X_Y-branch+git-archive-all ./cp2k-20XX.Y.tar.bz2
 </code> </code>
  
-=== 9Export the release branch (checkout without .svn folders) using ===+=== 5Create and upload binaries and Docker images === 
 <code> <code>
-svn export http://svn.code.sf.net/p/cp2k/code/branches/cp2k-X_Y-branch/cp2k cp2k-X.Y.Z+cd cp2k/tools/docker 
 +./build_dockerhub_images.sh 
 +docker tag cp2k/cp2k:devZZZZZZZZ  cp2k/cp2k:20XX.Y 
 +docker tag cp2k/cp2k:devZZZZZZZZ  cp2k/cp2k:latest 
 +docker push cp2k/cp2k:20XX.Y 
 +docker push cp2k/cp2k:latest
 </code> </code>
  
-=== 10. Create a bzip2 tar file using ===+=== 6. Create a new manual on "cp2k.org" === 
 <code> <code>
-tar -cjf cp2k-X.Y.Z.tar.bz2 cp2k-X.Y.Z+cd cp2k/tools/docker 
 +docker build -./Dockerfile.test_manual  --build-arg GIT_COMMIT_SHA=$(git rev-parse HEAD) --build-arg ADD_EDIT_LINKS=no -t manual_img ../..
 +docker run -v "$(pwd)":/mnt manual_img cp -rv  /workspace/artifacts/manual /mnt/ 
 +scp -r manual sham:/var/www/cp2k.org/manual/cp2k-20XX_Y-branch
 </code> </code>
  
-=== 11Check the exported branch release (just compile it or even run a regtest) ===+=== 7Update the main branch ===
  
-=== 12Create statically linked sopt and ssmp versions ===+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 .
  
-=== 13Upload the tar file to sourceforge to make it appear in the list under "Files" for download using === +=== 8Update the CP2K web page ===
-<code> +
-tar -cjf cp2k-X_Y-branch_LAST-Linux-x86-64-gfortran-popt.tar.bz2 LAST-Linux-x86-64-gfortran-popt +
-scp cp2k-X_Y-branch_LAST-Linux-x86-64-gfortran-popt.tar.bz2 mkrack@frs.sourceforge.net:/home/frs/project/cp2k/testresults +
-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 +
-</code>+
  
-=== 14. Increment the version number of the development version in the files === 
-<code> 
-cp2k/src/cp2k_info.F 
-cp2k/tools/doxify/Doxyfile.template 
-cd cp2k 
-svn ci -m "Increment CP2K development version number" src/ tools/ 
-</code> 
- 
-=== 15. Update the CP2K web page === 
   * Add [[:news|News]] entry   * Add [[:news|News]] entry
   * Update [[:version_history|Version History]]   * Update [[:version_history|Version History]]
-  * Add a link to the new input reference manual under [[:docs|Documentation & Help]] +  * Update git tag on the [[:download#git_access|Download page]] 
-  * Update [[:download|download instructions]]+ 
 +=== 9. Dissemination ===
  
-=== 16. 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-16, correspondingly.+about the new CP2K release.
dev/release_checklist.txt · Last modified: 2024/01/01 23:40 by oschuett