This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
dev:release_checklist [2018/06/12 13:40] 129.129.214.74 Add sdbg |
dev:release_checklist [2019/12/06 09:55] (current) tmueller |
||
---|---|---|---|
Line 5: | Line 5: | ||
* a) Clean status for all dashboard regression testers | * 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 | * 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 | + | * c) Check the generated executables with the H2O-32 benchmark input, e.g. using the script |
- | <code bash> | + | <code> |
- | #!/bin/sh | + | cd cp2k/benchmarks/QS |
- | cwd=$PWD | + | ./check-release-comparison.py |
- | cd cp2k/tests/QS/benchmark | + | |
- | # | + | |
- | ../../../tools/clean_cwd.sh | + | |
- | export OMP_NUM_THREADS=1 | + | |
- | 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=4 | + | |
- | 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=8 | + | |
- | 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=8 | + | |
- | ../../../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> | </code> | ||
+ | |||
The final energies of all MD runs should agree by 10<sup>-10</sup>. | 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 === | + | === 3. Create a new branch from the current master using === |
<code> | <code> | ||
- | svn mkdir svn+ssh://mkrack@svn.code.sf.net/p/cp2k/code/branches/cp2k-X_Y-branch | + | git checkout -b support/vX.Y |
</code> | </code> | ||
- | Description text: "Create folder for CP2K release branch X.Y" | ||
- | === 4. Copy the current CP2K version from the trunk using === | + | === 4. Apply release specific changes === |
+ | |||
+ | * 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 | ||
+ | * 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> | ||
- | svn copy -m "Perform branching for CP2K release X.Y" \ | + | tools/build_utils/get_revision_number src >REVISION |
- | svn+ssh://mkrack@svn.code.sf.net/p/cp2k/code/trunk/cp2k\ | + | git add REVISION |
- | svn+ssh://mkrack@svn.code.sf.net/p/cp2k/code/branches/cp2k-X_Y-branch/cp2k | + | git commit -m "Store the revision number of the release branch" REVISION src/cp2k_info.F tools/doxify/Doxyfile.template |
- | </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, update release number and year), | + | |
- | * b) Provide Java version of [[http://sourceforge.net/projects/saxon|saxon]] for manual generation | + | |
- | * c) Create 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> | </code> | ||
- | === 7. Compile the release branch version and run one or more regression tests === | + | === 5. Compile the release branch version and run one or more regression tests === |
The reference outputs can be retrieved from the branched CP2K trunk version: | The reference outputs can be retrieved from the branched CP2K trunk version: | ||
<code> | <code> | ||
Line 79: | Line 43: | ||
</code> | </code> | ||
- | === 8. Create a new manual on "cp2k.org" === | + | === 6. Create a new manual on "cp2k.org" === |
* a) Login to "sham.cp2k.org" (94.130.188.107) | * 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 | * 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 | * c) Add a new link in the cp2k/tools/manual/index.html file and commit that change | ||
* d) Create and upload the new manual: | * d) Create and upload the new manual: | ||
+ | |||
<code> | <code> | ||
cd cp2k/tools/manual | cd cp2k/tools/manual | ||
- | ./update_manual Linux-x86-64-gfortran-regtest pdbg mkrack@94.130.188.107:/var/www/cp2k.org/manual/cp2k-X_Y-branch | + | ./update_manual Linux-x86-64-gfortran-regtest pdbg mkrack@sham.cp2k.org:/var/www/cp2k.org/manual/cp2k-X_Y-branch |
</code> | </code> | ||
- | === 9. Export the release branch (checkout without .svn folders) using === | + | === 7. Tag the release === |
- | <code> | + | |
- | svn export http://svn.code.sf.net/p/cp2k/code/branches/cp2k-X_Y-branch/cp2k cp2k-X.Y | + | |
- | </code> | + | |
- | === 10. Create a bzip2 tar file using === | ||
<code> | <code> | ||
- | tar -cjf cp2k-X.Y.tar.bz2 cp2k-X.Y | + | git tag -a -m "CP2K release X.Y.O" vX.Y.0 |
</code> | </code> | ||
- | === 11. Check the exported branch release === | + | === 8. Increment the version number of the development version (skip this for sub-releases) === |
- | Create statically linked ''sopt'' and ''ssmp'' versions: | + | |
- | <code> | + | |
- | ln -s cp2k-X.Y cp2k | + | |
- | cd cp2k/makefiles | + | |
- | make -j ARCH=Linux-x86-64-gfortran VERSION=ssmp | + | |
- | make -j ARCH=Linux-x86-64-gfortran VERSION=sopt | + | |
- | make -j ARCH=Linux-x86-64-gfortran VERSION=sdbg | + | |
- | cd ../.. | + | |
- | </code> | + | |
- | === 12. Upload the tar files to sourceforge to make it appear in the list under "Files" for download using === | ||
<code> | <code> | ||
- | scp cp2k-X.Y/exe/Linux-x86-64-gfortran/cp2k.sopt mkrack@frs.sourceforge.net:/home/frs/project/cp2k/precompiled/cp2k-X.Y-Linux-x86_64.sopt | + | git checkout master |
- | scp cp2k-X.Y/exe/Linux-x86-64-gfortran/cp2k.ssmp mkrack@frs.sourceforge.net:/home/frs/project/cp2k/precompiled/cp2k-X.Y-Linux-x86_64.ssmp | + | vim cp2k/src/cp2k_info.F cp2k/tools/doxify/Doxyfile.template |
- | scp cp2k-X.Y/exe/Linux-x86-64-gfortran/cp2k.sdbg mkrack@frs.sourceforge.net:/home/frs/project/cp2k/precompiled/cp2k-X.Y-Linux-x86_64.sdbg | + | git commit - "Increment CP2K development version number" cp2k/src/cp2k_info.F cp2k/tools/doxify/Doxyfile.template |
- | scp cp2k-X.Y.tar.bz2 mkrack@frs.sourceforge.net:/home/frs/project/cp2k/cp2k-X.Y.tar.bz2 | + | |
</code> | </code> | ||
- | === 13. Increment the version number of the development version in the files (skip this for sub-releases) === | + | === 9. Push all branches to Github === |
+ | |||
+ | 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). | ||
<code> | <code> | ||
- | cp2k/src/cp2k_info.F | + | git push --atomic upstream support/vX.Y master vX.Y.0 |
- | cp2k/tools/doxify/Doxyfile.template | + | |
- | cd cp2k | + | |
- | svn ci -m "Increment CP2K development version number" src/ tools/ | + | |
</code> | </code> | ||
- | === 14. Create a git tag and push it to github === | + | 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 === | ||
- | === 15. Update the CP2K web page === | ||
* Add [[:news|News]] entry | * Add [[:news|News]] entry | ||
* Update [[:version_history|Version History]] | * Update [[:version_history|Version History]] | ||
- | === 16. Dissemination === | + | === 11. 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 | ||
+ | * 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 6-15, correspondingly. | + | For a new sub-release X.Y repeat 3-7, correspondingly. |