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 [2019/12/05 14:29] – adapt to new Git workflow (still WiP) tmuellerdev: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 +=== 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 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 .
-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