From 5d9136616bf871738de94987f6f18c2f2835d5c5 Mon Sep 17 00:00:00 2001 From: Rene Gassmoeller Date: Tue, 27 Jun 2023 15:51:09 -0400 Subject: [PATCH 1/4] Renamed release-tasklist --- contrib/release/{release-tasklist => release-tasklist.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename contrib/release/{release-tasklist => release-tasklist.md} (100%) diff --git a/contrib/release/release-tasklist b/contrib/release/release-tasklist.md similarity index 100% rename from contrib/release/release-tasklist rename to contrib/release/release-tasklist.md From 669ce0e0b333ba538d47fcf5f638e9c79ae059d5 Mon Sep 17 00:00:00 2001 From: Rene Gassmoeller Date: Tue, 27 Jun 2023 16:07:22 -0400 Subject: [PATCH 2/4] Start converting release tasklist to markdown --- contrib/release/release-tasklist.md | 267 ++++++++++++++-------------- 1 file changed, 136 insertions(+), 131 deletions(-) diff --git a/contrib/release/release-tasklist.md b/contrib/release/release-tasklist.md index e377bbb9916..e4e89d2c795 100644 --- a/contrib/release/release-tasklist.md +++ b/contrib/release/release-tasklist.md @@ -1,134 +1,139 @@ -- Tasklist: - . leading up to a release: - . send out an email about problems or outstanding patches - . go through the list of TODOs in the source code and see what can be done - . make sure the description of the interfaces that need to be updated - are up to date in the manual - . update the used deal.II version for the Docker container in contrib/docker/docker/Dockerfile - and in the manual - . check that README.md and http://aspect.dealii.org/ReadMe.html are okay - and the links to the mailinglists are working (also in manual.pdf) - . run (and be patient): - cd benchmarks && make -f check.mk BUILD=$BUILDDIR -j4 - cd cookbooks && make -f check.mk BUILD=$BUILDDIR -j4 - . determine new version roughly following semantic versioning: http://semver.org/ - - format is X.Y.Z for a release, X.Y.Z-pre for the dev version or X.Y.Z-rcW for release candidates - - backwards incompatible changes require incrementing X, adding features incrementing Y - . setup: - export OLDVER=2.0.0;export VER=2.1.0;export VERSHORT=2.1;export NEXTVER=2.2.0-pre - export DEALSRCDIR=/ssd/deal-git/ - . fix doxygen errors: - find include -name "*h" -print | xargs -n 1 $DEALSRCDIR/contrib/utilities/checkdoxygen.py - and commit. - . manual, check for missing labels: - . cd doc - . make manual.pdf - . grep undefined manual/manual.log # try to remove some - . make aspect.tag - . and check for warnings - . fix formatting, copyright years: - find . -name "*.h" -print | while read file;do $DEALSRCDIR/contrib/utilities/wrapcomments.py $file >temp;mv temp $file;done - . note: we started ignoring the rewrapping of comments, but we should still fix wrong indentation or other problems - ./contrib/utilities/indent - ./contrib/release/update_copyright.sh - git commit -a -m "doxygen formatting, comment wrapping" - # create a pull-request - . create branch for main PR to update changes.h in doc/modules: - git checkout -b post-release-$VER - cd doc/modules; rm -f changes/*~; ./increment_version.sh $OLDVER $VER;cd ../.. - cd contrib/release;./bump_version.sh $NEXTVER; cd .. - git commit -m "release task: update version and changes.h" - # create a PR - . create a branch, bump version (note, make sure the PR above is included) - git checkout post-release-$VER && \ - git checkout -b aspect-$VERSHORT && \ - cd contrib/release && ./bump_version.sh $VER && cd ../.. && \ - git commit -m "release task: update version info" - . compile aspect, make sure you have a symlink in the main directory for the next step - - make sure the WorldBuilder is found! (git submodule init) - . update doc/manual/parameters.tex and documentation: - cd doc && ./update_parameters.sh && make manual.pdf && cp manual.pdf manual-$VER.pdf && cd .. && \ - git add doc/manual/parameters.tex && \ - git commit -m "release task: update manual" - . Tag an RC: - export TAG=$VER-rc1 - cd contrib/release && ./bump_version.sh $TAG && cd ../.. && \ - git commit -m "version $TAG" && \ - git tag -s v$TAG -m "version $TAG" - . Tag the release: - export TAG=$VER - cd contrib/release && ./bump_version.sh $TAG && cd ../.. && \ - git commit -m "version $TAG" && \ - git tag -s v$TAG -m "version $TAG" - . create a tar file: - cd doc && make manual.pdf && cp manual.pdf ../aspect-manual-$TAG.pdf && cd .. - export PREFIX=aspect-$TAG && rm -rf $PREFIX.tar.gz && \ - git archive --format=tar.gz --prefix=$PREFIX/ HEAD >temp.tar.gz && \ - rm -fr $PREFIX/ && \ - tar xf temp.tar.gz && \ - cd contrib/WorldBuilder/ && \ - git archive --format=tar.gz --prefix=$PREFIX/contrib/WorldBuilder/ HEAD >temp.tar.gz && \ - cd ../.. && \ - tar xf contrib/WorldBuilder/temp.tar.gz && \ - tar czf $PREFIX.tar.gz $PREFIX/ && \ - rm -rf contrib/WorldBuilder/temp.tar.gz - - . final testing by extracting tarball, compiling, and running: - tar xf $PREFIX.tar.gz - cd $PREFIX - docker run --rm -it -v `pwd`:/home/dealii/aspect \ - tjhei/dealii:v9.2.0-full-v9.2.0-r2-gcc5 /bin/bash - - mkdir build; cd build - cmake -G "Ninja" -D ASPECT_RUN_ALL_TESTS=ON -D \ - ASPECT_PRECOMPILE_HEADERS=ON ~/aspect - ninja; ctest -j 8 -V - - . make public (branch and tag): - git push cig aspect-$VERSHORT - git push cig v$TAG - . sign: - gpg --detach-sign --armor aspect-$TAG.tar.gz - gpg --detach-sign --armor aspect-manual-$TAG.pdf - sha1sum aspect-$TAG.tar.gz aspect-manual-$TAG.pdf >sha1sum-$TAG.txt - . create a release on github, upload .tar.gz and manual-$VER.pdf - . update website (www repo): - - header.include: add link to changes - - index.html: add news entry - - cite.html: change to current version (2x) - . create zenodo release for source code: - - https://zenodo.org/deposit?page=1&size=20 - - title: ASPECT v2.0.0 - - license: GPL 2 - - check CIG comments: https://github.com/geodynamics/best_practices/blob/master/ZenodoBestPractices.md - - cig community! - - update zenodo badge in README.md to newest version (see badge button on the right of zenodo page) - - add zenodo badge also to the release on github (on top, see 2.0.1 for an example) - - readme / release notes: add zenodo DOI button - - manual/manual.bib: add new zenodo entry - . create figshare DOI for manual (just upload a new version as the same entry) - - update manual/manual.bib entry - . update doc/manual/manual.bib with src and manual doi - . update aspect.geodynamics.org/cite.html and citing.html in www repo: - - add new version in citing.html, search for "temp;mv temp $file;done + . note: we started ignoring the rewrapping of comments, but we should still fix wrong indentation or other problems + ./contrib/utilities/indent + ./contrib/release/update_copyright.sh + git commit -a -m "doxygen formatting, comment wrapping" + # create a pull-request +. create branch for main PR to update changes.h in doc/modules: + git checkout -b post-release-$VER + cd doc/modules; rm -f changes/*~; ./increment_version.sh $OLDVER $VER;cd ../.. + cd contrib/release;./bump_version.sh $NEXTVER; cd .. + git commit -m "release task: update version and changes.h" + # create a PR +. create a branch, bump version (note, make sure the PR above is included) + git checkout post-release-$VER && \ + git checkout -b aspect-$VERSHORT && \ + cd contrib/release && ./bump_version.sh $VER && cd ../.. && \ + git commit -m "release task: update version info" +. compile aspect, make sure you have a symlink in the main directory for the next step + - make sure the WorldBuilder is found! (git submodule init) +. update doc/manual/parameters.tex and documentation: + cd doc && ./update_parameters.sh && make manual.pdf && cp manual.pdf manual-$VER.pdf && cd .. && \ + git add doc/manual/parameters.tex && \ + git commit -m "release task: update manual" +. Tag an RC: + export TAG=$VER-rc1 + cd contrib/release && ./bump_version.sh $TAG && cd ../.. && \ + git commit -m "version $TAG" && \ + git tag -s v$TAG -m "version $TAG" +. Tag the release: + export TAG=$VER + cd contrib/release && ./bump_version.sh $TAG && cd ../.. && \ + git commit -m "version $TAG" && \ + git tag -s v$TAG -m "version $TAG" +. create a tar file: + cd doc && make manual.pdf && cp manual.pdf ../aspect-manual-$TAG.pdf && cd .. + export PREFIX=aspect-$TAG && rm -rf $PREFIX.tar.gz && \ + git archive --format=tar.gz --prefix=$PREFIX/ HEAD >temp.tar.gz && \ + rm -fr $PREFIX/ && \ + tar xf temp.tar.gz && \ + cd contrib/WorldBuilder/ && \ + git archive --format=tar.gz --prefix=$PREFIX/contrib/WorldBuilder/ HEAD >temp.tar.gz && \ + cd ../.. && \ + tar xf contrib/WorldBuilder/temp.tar.gz && \ + tar czf $PREFIX.tar.gz $PREFIX/ && \ + rm -rf contrib/WorldBuilder/temp.tar.gz + +. final testing by extracting tarball, compiling, and running: + tar xf $PREFIX.tar.gz + cd $PREFIX + docker run --rm -it -v `pwd`:/home/dealii/aspect \ + tjhei/dealii:v9.2.0-full-v9.2.0-r2-gcc5 /bin/bash + + mkdir build; cd build + cmake -G "Ninja" -D ASPECT_RUN_ALL_TESTS=ON -D \ + ASPECT_PRECOMPILE_HEADERS=ON ~/aspect + ninja; ctest -j 8 -V + +. make public (branch and tag): + git push cig aspect-$VERSHORT + git push cig v$TAG +. sign: + gpg --detach-sign --armor aspect-$TAG.tar.gz + gpg --detach-sign --armor aspect-manual-$TAG.pdf + sha1sum aspect-$TAG.tar.gz aspect-manual-$TAG.pdf >sha1sum-$TAG.txt +. create a release on github, upload .tar.gz and manual-$VER.pdf +. update website (www repo): + - header.include: add link to changes + - index.html: add news entry + - cite.html: change to current version (2x) +. create zenodo release for source code: + - https://zenodo.org/deposit?page=1&size=20 + - title: ASPECT v2.0.0 + - license: GPL 2 + - check CIG comments: https://github.com/geodynamics/best_practices/blob/master/ZenodoBestPractices.md + - cig community! + - update zenodo badge in README.md to newest version (see badge button on the right of zenodo page) + - add zenodo badge also to the release on github (on top, see 2.0.1 for an example) + - readme / release notes: add zenodo DOI button + - manual/manual.bib: add new zenodo entry +. create figshare DOI for manual (just upload a new version as the same entry) + - update manual/manual.bib entry +. update doc/manual/manual.bib with src and manual doi +. update aspect.geodynamics.org/cite.html and citing.html in www repo: + - add new version in citing.html, search for " Date: Wed, 28 Jun 2023 16:10:58 -0400 Subject: [PATCH 3/4] Finish converting release tasklist --- contrib/release/release-tasklist.md | 235 +++++++++++++++++----------- 1 file changed, 146 insertions(+), 89 deletions(-) diff --git a/contrib/release/release-tasklist.md b/contrib/release/release-tasklist.md index e4e89d2c795..6fc81f1366d 100644 --- a/contrib/release/release-tasklist.md +++ b/contrib/release/release-tasklist.md @@ -1,107 +1,164 @@ # Release Tasklist -- leading up to a release: - - send out an email about problems or outstanding patches - - go through the list of TODOs in the source code and see what can be done - - make sure the description of the interfaces that need to be updated + +## Leading up to a release +- send out an email about problems or outstanding patches +- go through the list of TODOs in the source code and see what can be done +- make sure the description of the interfaces that need to be updated are up to date in the manual - - update the used deal.II version for the Docker container in `contrib/docker/docker/Dockerfile` +- update the used deal.II version for the Docker container in `contrib/docker/docker/Dockerfile` and in the manual - - check that `README.md` and https://aspect.geodynamics.org/ is up-to-date +- check that `README.md` and https://aspect.geodynamics.org/ is up-to-date and the links are working - - run (and be patient): +- run (and be patient): + ``` - cd benchmarks && make -f check.mk BUILD=$BUILDDIR -j4 - cd cookbooks && make -f check.mk BUILD=$BUILDDIR -j4 + cd benchmarks && make -f check.mk BUILD=$BUILDDIR -j4 + cd cookbooks && make -f check.mk BUILD=$BUILDDIR -j4 ``` + - determine new version roughly following semantic versioning: http://semver.org/ - format is X.Y.Z for a release, X.Y.Z-pre for the dev version or X.Y.Z-rcW for release candidates - backwards incompatible changes require incrementing X, adding features incrementing Y + - setup: -``` - export OLDVER=2.0.0;export VER=2.1.0;export VERSHORT=2.1;export NEXTVER=2.2.0-pre - # Make sure DEALSRCDIR is set to correct path - export DEALSRCDIR=$DEAL_II_DIR -``` + + ``` + export OLDVER=2.0.0 + export VER=2.1.0 + export VERSHORT=2.1 + export NEXTVER=2.2.0-pre + # Make sure DEALSRCDIR is set to correct path + export DEALSRCDIR=$DEAL_II_DIR + ``` + - fix doxygen errors: - find include -name "*h" -print | xargs -n 1 $DEALSRCDIR/contrib/utilities/checkdoxygen.py + + ``` + find include -name "*h" -print | xargs -n 1 $DEALSRCDIR/contrib/utilities/checkdoxygen.py + ``` + and commit. -. manual, check for missing labels: - . cd doc - . make manual.pdf - . grep undefined manual/manual.log # try to remove some - . make aspect.tag - . and check for warnings -. fix formatting, copyright years: - find . -name "*.h" -print | while read file;do $DEALSRCDIR/contrib/utilities/wrapcomments.py $file >temp;mv temp $file;done - . note: we started ignoring the rewrapping of comments, but we should still fix wrong indentation or other problems - ./contrib/utilities/indent - ./contrib/release/update_copyright.sh - git commit -a -m "doxygen formatting, comment wrapping" - # create a pull-request -. create branch for main PR to update changes.h in doc/modules: - git checkout -b post-release-$VER - cd doc/modules; rm -f changes/*~; ./increment_version.sh $OLDVER $VER;cd ../.. - cd contrib/release;./bump_version.sh $NEXTVER; cd .. - git commit -m "release task: update version and changes.h" - # create a PR -. create a branch, bump version (note, make sure the PR above is included) - git checkout post-release-$VER && \ - git checkout -b aspect-$VERSHORT && \ - cd contrib/release && ./bump_version.sh $VER && cd ../.. && \ - git commit -m "release task: update version info" -. compile aspect, make sure you have a symlink in the main directory for the next step - - make sure the WorldBuilder is found! (git submodule init) -. update doc/manual/parameters.tex and documentation: - cd doc && ./update_parameters.sh && make manual.pdf && cp manual.pdf manual-$VER.pdf && cd .. && \ - git add doc/manual/parameters.tex && \ - git commit -m "release task: update manual" -. Tag an RC: - export TAG=$VER-rc1 - cd contrib/release && ./bump_version.sh $TAG && cd ../.. && \ - git commit -m "version $TAG" && \ - git tag -s v$TAG -m "version $TAG" -. Tag the release: - export TAG=$VER - cd contrib/release && ./bump_version.sh $TAG && cd ../.. && \ - git commit -m "version $TAG" && \ - git tag -s v$TAG -m "version $TAG" -. create a tar file: - cd doc && make manual.pdf && cp manual.pdf ../aspect-manual-$TAG.pdf && cd .. - export PREFIX=aspect-$TAG && rm -rf $PREFIX.tar.gz && \ - git archive --format=tar.gz --prefix=$PREFIX/ HEAD >temp.tar.gz && \ - rm -fr $PREFIX/ && \ - tar xf temp.tar.gz && \ - cd contrib/WorldBuilder/ && \ - git archive --format=tar.gz --prefix=$PREFIX/contrib/WorldBuilder/ HEAD >temp.tar.gz && \ - cd ../.. && \ - tar xf contrib/WorldBuilder/temp.tar.gz && \ - tar czf $PREFIX.tar.gz $PREFIX/ && \ - rm -rf contrib/WorldBuilder/temp.tar.gz - -. final testing by extracting tarball, compiling, and running: - tar xf $PREFIX.tar.gz - cd $PREFIX - docker run --rm -it -v `pwd`:/home/dealii/aspect \ - tjhei/dealii:v9.2.0-full-v9.2.0-r2-gcc5 /bin/bash - - mkdir build; cd build - cmake -G "Ninja" -D ASPECT_RUN_ALL_TESTS=ON -D \ - ASPECT_PRECOMPILE_HEADERS=ON ~/aspect - ninja; ctest -j 8 -V - -. make public (branch and tag): - git push cig aspect-$VERSHORT - git push cig v$TAG -. sign: - gpg --detach-sign --armor aspect-$TAG.tar.gz - gpg --detach-sign --armor aspect-manual-$TAG.pdf - sha1sum aspect-$TAG.tar.gz aspect-manual-$TAG.pdf >sha1sum-$TAG.txt -. create a release on github, upload .tar.gz and manual-$VER.pdf -. update website (www repo): +- manual, check for missing labels: + + ``` + cd doc + make manual.pdf + grep undefined manual/manual.log # try to fix some + make aspect.tag + ``` + + and check for warnings +- fix formatting, copyright years: + + ``` + find . -name "*.h" -print | while read file;do $DEALSRCDIR/contrib/utilities/wrapcomments.py $file >temp;mv temp $file;done + ``` +- note: we started ignoring the rewrapping of comments, but we should still fix wrong indentation or other problems + + ``` + ./contrib/utilities/indent + ./contrib/release/update_copyright.sh + git commit -a -m "doxygen formatting, comment wrapping" + ``` + +## Create a pull-request +- create branch for main PR to update changes.h in doc/modules: + + ``` + git checkout -b post-release-$VER + cd doc/modules; rm -f changes/*~; ./increment_version.sh $OLDVER $VER;cd ../.. + cd contrib/release;./bump_version.sh $NEXTVER; cd .. + git commit -m "release task: update version and changes.h" + ``` + +- create a branch, bump version (note, make sure the PR above is included): + + ``` + git checkout post-release-$VER && \ + git checkout -b aspect-$VERSHORT && \ + cd contrib/release && ./bump_version.sh $VER && cd ../.. && \ + git commit -m "release task: update version info" + ``` + +- compile aspect, make sure you have a symlink in the main directory for the next step + - make sure the WorldBuilder is using the included version + +- update doc/manual/parameters.tex and documentation: + + ``` + cd doc && ./update_parameters.sh && make manual.pdf && cp manual.pdf manual-$VER.pdf && cd .. && \ + git add doc/manual/parameters.tex && \ + git commit -m "release task: update manual" + ``` + +- Tag a release candidate (RC): + + ``` + export TAG=$VER-rc1 + cd contrib/release && ./bump_version.sh $TAG && cd ../.. && \ + git commit -m "version $TAG" && \ + git tag -s v$TAG -m "version $TAG" + ``` + +- Tag the release: + + ``` + export TAG=$VER + cd contrib/release && ./bump_version.sh $TAG && cd ../.. && \ + git commit -m "version $TAG" && \ + git tag -s v$TAG -m "version $TAG" + ``` + +- create a tar file: + ``` + cd doc && make manual.pdf && cp manual.pdf ../aspect-manual-$TAG.pdf && cd .. + export PREFIX=aspect-$TAG && rm -rf $PREFIX.tar.gz && \ + git archive --format=tar.gz --prefix=$PREFIX/ HEAD >temp.tar.gz && \ + rm -fr $PREFIX/ && \ + tar xf temp.tar.gz && \ + cd contrib/WorldBuilder/ && \ + git archive --format=tar.gz --prefix=$PREFIX/contrib/WorldBuilder/ HEAD >temp.tar.gz && \ + cd ../.. && \ + tar xf contrib/WorldBuilder/temp.tar.gz && \ + tar czf $PREFIX.tar.gz $PREFIX/ && \ + rm -rf contrib/WorldBuilder/temp.tar.gz + ``` + +- final testing by extracting tarball, compiling, and running: + + ``` + tar xf $PREFIX.tar.gz + cd $PREFIX + docker run --rm -it -v `pwd`:/home/dealii/aspect \ + tjhei/dealii:v9.2.0-full-v9.2.0-r2-gcc5 /bin/bash + + mkdir build; cd build + cmake -G "Ninja" -D ASPECT_RUN_ALL_TESTS=ON ~/aspect + ninja + ctest -j 8 -V + ``` + +- make public (branch and tag): + + ``` + git push upstream aspect-$VERSHORT + git push upstream v$TAG + ``` + +- sign: + + ``` + gpg --detach-sign --armor aspect-$TAG.tar.gz + gpg --detach-sign --armor aspect-manual-$TAG.pdf + sha1sum aspect-$TAG.tar.gz aspect-manual-$TAG.pdf >sha1sum-$TAG.txt + ``` + +- create a release on github, upload .tar.gz and manual-$VER.pdf +- update website (www branch): - header.include: add link to changes - index.html: add news entry - cite.html: change to current version (2x) -. create zenodo release for source code: +- create zenodo release for source code: - https://zenodo.org/deposit?page=1&size=20 - title: ASPECT v2.0.0 - license: GPL 2 From 9cd84a8abafd98b7c8230c435b8cc09c1e225dd0 Mon Sep 17 00:00:00 2001 From: Rene Gassmoeller Date: Wed, 28 Jun 2023 16:11:31 -0400 Subject: [PATCH 4/4] Include release tasklist in documentation --- doc/sphinx/user/extending/index.md | 1 + doc/sphinx/user/extending/release-tasklist-link.md | 2 ++ 2 files changed, 3 insertions(+) create mode 100644 doc/sphinx/user/extending/release-tasklist-link.md diff --git a/doc/sphinx/user/extending/index.md b/doc/sphinx/user/extending/index.md index 38689ab31d8..cb8af411b61 100644 --- a/doc/sphinx/user/extending/index.md +++ b/doc/sphinx/user/extending/index.md @@ -165,4 +165,5 @@ extending-solver.md testing/index.md contributing.md future-plans.md +release-tasklist-link.md ::: diff --git a/doc/sphinx/user/extending/release-tasklist-link.md b/doc/sphinx/user/extending/release-tasklist-link.md new file mode 100644 index 00000000000..76e58b6ac90 --- /dev/null +++ b/doc/sphinx/user/extending/release-tasklist-link.md @@ -0,0 +1,2 @@ +```{include} /../../contrib/release/release-tasklist.md +```