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
dev:release_checklist [2015/10/29 10:55] – Remove note as this issue has been fixed 129.129.214.140dev:release_checklist [2024/01/01 23:40] (current) 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>+
  
-=== 9Export the release branch (checkout without .svn folders) using === +=== 3Tag the release and push to GitHub ===
-<code> +
-svn export http://svn.code.sf.net/p/cp2k/code/branches/cp2k-X_Y-branch/cp2k cp2k-X.Y.Z +
-</code>+
  
-=== 10. Create a bzip2 tar file using === 
 <code> <code>
-tar -cjf cp2k-X.Y.Z.tar.bz2 cp2k-X.Y.Z+git tag -m "Cut release version 20XX.Y" -a v20XX.Y 
 +git push upstream_rw support/v20XX.Y v20XX.Y
 </code> </code>
  
-=== 11Check the exported branch release === +=== 4Create tar ball and upload to new GitHub draft 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 to [[src>docs/versions.md]] and [[src>docs/index.md]], and update the development version in [[src>src/cp2k_info.F]]. Example: https://github.com/cp2k/cp2k/commit/0904149 . 
 + 
 +=== 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.1446116136.txt.gz · Last modified: 2020/08/21 10:14 (external edit)