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
Next revisionBoth sides next revision
dev:release_checklist [2014/12/22 10:32] – Update release protocol krackdev:release_checklist [2023/07/22 12:02] 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" REVISION src/cp2k_info.F
-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/71f6a37 
-  * a) Login to "cp2k.org" + 
-  * b) Create a new folder ''manual/cp2k-X_Y-branch'' +=== 3. Tag the release and push to GitHub ===
-  * 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>+
  
-=== 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> <code>
-tar -cjf cp2k-X.Y.Z.tar.bz2 cp2k-X.Y.Z+pip3 install git-archive-all 
 +git-archive-all ./cp2k-20XX.Y.tar.bz2
 </code> </code>
  
-=== 11Check the exported branch release (just compile it or even run a regtest) ===+=== 5Create and upload binaries and Docker images ===
  
-=== 12. Create statically linked sopt and ssmp versions ===+=== 6. Create a new manual on "cp2k.org" ===
  
-=== 13. Upload the tar file to sourceforge to make it appear in the list under "Files" for download using === 
 <code> <code>
-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 +cd cp2k/tools/docker 
-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 build -./Dockerfile.test_manual  --build-arg GIT_COMMIT_SHA=$(git rev-parse HEAD) --build-arg ADD_EDIT_LINKS=no -t manual_img ../../ 
-scp cp2k-X.Y.Z.tar.bz2 mkrack@frs.sourceforge.net:/home/frs/project/cp2k/cp2k-X.Y.Z.tar.bz2+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>
  
-=== 14. Increment the version number of the development version in the files === +Add a new link in the [[src>tools/manual/index.html]] file and commit that change. 
-<code+ 
-cp2k/src/cp2k_info.+Example: https://github.com/cp2k/cp2k/commit/8ed2d75 
-cp2k/tools/doxify/Doxyfile.template + 
-cd cp2k +=== 7. Update the CP2K web page ===
-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]] 
 + 
 +=== 8. 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/3iY5NhOBLhk/m/f8-fgNiwBAAJ|Example 1]], [[https://groups.google.com/g/cp2k/c/U0vfewjRLSs| Example2]] - ⚠️ 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/08/06 14:45 by oschuett