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/12/30 17:19] oschuettdev: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), +
-  * bCreate 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 branch" REVISION src/cp2k_info.F+git commit -m "Cut release version 20XX.Y"
 </code> </code>
  
-Example: https://github.com/cp2k/cp2k/commit/0bfbd41a7402152da7b86a103d5d95a4184367d9+Example: https://github.com/cp2k/cp2k/commit/056df93
  
-=== 5Compile the release branch version and run one or more regression tests ===+=== 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 +docker build -f ./Dockerfile.test_manual  --build-arg GIT_COMMIT_SHA=$(git rev-parse HEAD) --build-arg ADD_EDIT_LINKS=no -t manual_img ../../ 
-vim cp2k/tools/manual/index.html  +docker run -"$(pwd)":/mnt manual_img cp -rv  /workspace/artifacts/manual /mnt/ 
-git commit - "Increment CP2K development version numbercp2k/src/cp2k_info.F+scp -r manual sham:/var/www/cp2k.org/manual/cp2k-20XX_Y-branch
 </code> </code>
  
-Example: https://github.com/cp2k/cp2k/commit/2285224d061d2bfa6d43c73cbb105229de504238+=== 7Update the main branch ===
  
-=== 9. Push all branches to Github ===+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 .
  
-This needs direct push access to master and will start the Github Actions Workflow to create a Draft release for the tag and upload the complete source tarball there (including all submodules). +=== 8. Update the CP2K web page ===
- +
-<code> +
-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 ([[https://groups.google.com/g/cp2k/c/QUTFLcaOrBc/m/fOrH4ReoAwAJ?pli=1|Example]])+  * 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.1609348792.txt.gz · Last modified: 2020/12/30 17:19 by oschuett