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 [2019/12/05 14:29] – adapt to new Git workflow (still WiP) tmuellerdev: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 +=== 2. Cut the release version ===
-  * b) Successful build and clean regtest of the gfortran sdbg, sopt, popt, pdbg, ssmp, and psmp versions +
-  * c) Check the generated executables with the H2O-32 benchmark input, e.g. using the script+
  
 <code> <code>
-cd cp2k/benchmarks/QS +git checkout -b support/v20XX.Y
-./check-release-comparison.py+
 </code> </code>
  
-The final energies of all MD runs should agree by 10<sup>-10</sup>. +Edit the ''cp2k_version'' string in [[src>src/cp2k_info.F]] (⚠️ remove the  ''Development Version'').
- +
-=== 3. Create a new branch from the current master using ===+
  
 <code> <code>
-git checkout -b support/vX.Y+tools/build_utils/get_revision_number src >REVISION 
 +git add REVISION src/cp2k_info.F 
 +git commit -m "Cut release version 20XX.Y"
 </code> </code>
  
-=== 4Apply release specific changes ===+Example: https://github.com/cp2k/cp2k/commit/056df93
  
-  * a) Update the version in src/cp2k_info.F (comment/uncomment release/branch line, update release number and year), +=== 3. Tag the release and push to GitHub ===
-  * b) Update the version in tools/doxify/Doxyfile.template +
-  * c) Provide Java version of [[http://sourceforge.net/projects/saxon|saxon]] for manual generation +
-  * d) Create a file cp2k/REVISION with the revision number of the release branch add it:+
  
 <code> <code>
-tools/build_utils/get_revision_number src >REVISION +git tag -m "Cut release version 20XX.Y-a v20XX.Y 
-git add REVISION +git push upstream_rw support/v20XX.Y v20XX.Y
-git commit -m "Store the revision number of the release branchREVISION src/cp2k_info.F tools/doxify/Doxyfile.template+
 </code> </code>
  
-=== 5Compile the release branch version and run one or more regression tests ===+=== 4Create tar ball and upload to new GitHub draft release ===
  
-The reference outputs can be retrieved from the branched CP2K trunk version: 
 <code> <code>
-cp -a ../trunk/LAST-Linux-x86-64-gfortran-regtest-pdbg/ . +pip3 install git-archive-all 
-cp2k/tools/regtesting/do_regtest -c cp2k/tools/regtesting/regtest_conf/Linux-x86-64-gfortran-regtest.pdbg.conf +git-archive-all ./cp2k-20XX.Y.tar.bz2
-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>
  
-=== 6. Create a new manual on "cp2k.org" === +=== 5. Create and upload binaries and Docker images ===
- +
-  * a) Login to "sham.cp2k.org" (94.130.188.107) +
-  * b) Create a new folder ''/var/www/cp2k.org/manual/cp2k-X_Y-branch'' and logout +
-  * c) Add a new link in the cp2k/tools/manual/index.html file and commit that change +
-  * d) Create and upload the new manual:+
  
 <code> <code>
-cd cp2k/tools/manual +cd cp2k/tools/docker 
-./update_manual Linux-x86-64-gfortran-regtest pdbg mkrack@sham.cp2k.org:/var/www/cp2k.org/manual/cp2k-X_Y-branch+./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.
 +docker push cp2k/cp2k:latest
 </code> </code>
  
-=== 7Tag the release and push both tag and branch to GitHub ===+=== 6Create a new manual on "cp2k.org" ===
  
 <code> <code>
-git tag --m "CP2K release X.Y.O" vX.Y.0 +cd cp2k/tools/docker 
-git push --atomic upstream vX.Y.0 support/vX.Y+docker build -f ./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>
  
-=== 8Increment the version number of the development version (skip this for sub-releases) === +=== 7Update the main branch === 
-<code> + 
-git checkout master +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 .
-vim cp2k/src/cp2k_info.F cp2k/tools/doxify/Doxyfile.template +
-git commit - "Increment CP2K development version number" cp2k/src/cp2k_info.F cp2k/tools/doxify/Doxyfile.template +
-</code>+
  
-=== 9. Update the CP2K web page ===+=== 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]]
  
-=== 10. Dissemination ===+=== 9. 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!)
   * the Twitter-sphere via the Twitter account   * the Twitter-sphere via the Twitter account
  
 about the new CP2K release. about the new CP2K release.
- 
-For a new sub-release X.Y repeat 3-7, correspondingly. 
dev/release_checklist.txt · Last modified: 2024/01/01 23:40 by oschuett