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 [2020/08/21 10:15] – external edit 127.0.0.1dev: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 generated executables with the H2O-32 benchmark input, e.g. using the script+
  
-<code> +=== 2Cut the release version ===
-cd cp2k/benchmarks/QS +
-./check-release-comparison.py +
-</code> +
- +
-The final energies of all MD runs should agree by 10<sup>-10</sup>+
- +
-=== 3Create a new branch from the current master using ===+
  
 <code> <code>
-git checkout -b support/vX.Y+git checkout -b support/v20XX.Y
 </code> </code>
  
-=== 4. Apply release specific changes === +Edit the ''cp2k_version'' string in [[src>src/cp2k_info.F]] (⚠️ remove the  ''Development Version'').
- +
-  * a) Update the version in src/cp2k_info.F (comment/uncomment release/branch line, update release number and year), +
-  * b) Update the version in tools/doxify/Doxyfile.template +
-  * cProvide 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 tools/build_utils/get_revision_number src >REVISION
-git add REVISION +git add REVISION src/cp2k_info.F 
-git commit -m "Store the revision number of the release branchREVISION src/cp2k_info.F tools/doxify/Doxyfile.template+git commit -m "Cut release version 20XX.Y"
 </code> </code>
  
-=== 5Compile the release branch version and run one or more regression tests ===+Example: https://github.com/cp2k/cp2k/commit/056df93 
 + 
 +=== 3Tag the release and push to GitHub ===
  
-The reference outputs can be retrieved from the branched CP2K trunk version: 
 <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>
  
-=== 6. Create new manual on "cp2k.org" === +=== 4. Create tar ball and upload to new GitHub draft release ===
- +
-  * 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 +pip3 install git-archive-all 
-./update_manual Linux-x86-64-gfortran-regtest pdbg mkrack@sham.cp2k.org:/var/www/cp2k.org/manual/cp2k-X_Y-branch+git-archive-all ./cp2k-20XX.Y.tar.bz2
 </code> </code>
  
-=== 7Tag the release ===+=== 5Create and upload binaries and Docker images ===
  
 <code> <code>
-git tag -a -m "CP2K release X.Y.O" vX.Y.0+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.
 +docker push cp2k/cp2k:latest
 </code> </code>
  
-=== 8Increment the version number of the development version (skip this for sub-releases) ===+=== 6Create a new manual on "cp2k.org" ===
  
 <code> <code>
-git checkout master +cd cp2k/tools/docker 
-vim cp2k/src/cp2k_info.F 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 ../../ 
-git commit - "Increment CP2K development version numbercp2k/src/cp2k_info.F cp2k/tools/doxify/Doxyfile.template+docker run -"$(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>
  
-=== 9Push all branches to Github ===+=== 7Update the main branch ===
  
-This needs direct push access to master and will start the Github Actions Workflow to create Draft release for the tag and upload the complete source tarball there (including all submodules).+Change back to the main branch to add 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 .
  
-<code> +=== 8. Update the CP2K web page ===
-git push --atomic upstream support/vX.Y master vX.Y.0 +
-</code> +
- +
-After the workflow finishes, go to https://github.com/cp2k/cp2k/releases, add the release notes to the Draft release and publish the release. +
- +
-=== 10. 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]]
  
-=== 11. 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.1598004913.txt.gz · Last modified: 2020/08/21 10:15 by 127.0.0.1