aspect icon indicating copy to clipboard operation
aspect copied to clipboard

aspect 2.4.0 release

Open tjhei opened this issue 2 years ago • 14 comments

  • [ ] 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
  • [x] update the used deal.II version for the Docker container in docker/Dockerfile and in the manual
  • [x] check that README.md and https://aspect.geodynamics.org/ReadMe.html are okay and the links to the mailinglists are working (also in manual.pdf)
  • [x] run (and be patient):
      cd benchmarks && make -f check.mk BUILD=$BUILDDIR -j4
      cd cookbooks && make -f check.mk BUILD=$BUILDDIR -j4
    
  • [x] 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 for tasks below:
      export OLDVER=2.3.0;export VER=2.4.0;export VERSHORT=2.4;export NEXTVER=2.5.0-pre
      export DEALSRCDIR=/ssd/deal-git/
      export BUILDDIR=`pwd`
    
  • [x] fix doxygen errors:
      find include -name "*h" -print | xargs -n 1 $DEALSRCDIR/contrib/utilities/checkdoxygen.py
    
    and commit.
  • [x] manual, check for missing labels:
    cd doc
    make manual.pdf
    grep undefined manual/manual.log    # try to remove some
    make aspect.tag # check for warnings
    
  • [x] fix formatting:
      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
  • [x] copyight:
      ./contrib/release/update_copyright.sh
    
  • [x] create branch for master 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
    
  • [x] 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)
  • [x] 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 >$PREFIX.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 \
      	     dealii/dealii:v8.5.0-gcc-mpi-fulldepscandi-debugrelease /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
    
  • [x] 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
  • [x] update website (www repo):
    • header.include: add link to changes
    • index.html: add news entry
    • cite.html: change to current version (2x)
  • [x] 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!
  • [x] create figshare DOI for manual (just upload a new version as the same entry)
  • [X] reference new DOIs:
    • zenodo badge in README.md
    • zenodo badge at top of release notes on github
    • update doc/manual/manual.bib with src and manual doi
    • update doc/make_cite_html.py:
      • add new version, update doc/zenodo dois
    • run aspect/doc/ python3 make_cite_html.py add database.js to www
  • [ ] update http://geodynamics.org/cig/software/aspect/: update current release number create entry for the new release update the list of contributors
  • [ ] update docker image geodynamics/aspect:
    • modify docker/Dockerfile and docker/build.sh to checkout the release
      cd docker && ./build.sh
      docker push geodynamics/aspect:v$TAG
    
  • [x] update the spack installation package with the latest tarball, see https://github.com/spack/spack/pull/13830 for an example: spack checksum aspect and spack edit aspect
  • [ ] announce on
       [email protected]
       https://community.geodynamics.org/c/aspect
       [email protected]
    
  • [ ] celebrate!
  • [ ] TODO:
  • [x] test deal.II 9.4
  • [x] compile with deal.II master?

tjhei avatar Jun 03 '22 15:06 tjhei

Looks generally ok, did you take a look through the changelog to get to this list? Can we add to the particle optimizations that they only work with deal.II 9.4? Otherwise people might be confused. Also unless we include #4842 in the release branch, ASPECT 2.4.0 will not work with deal 9.4.0. Are we ok with that?

gassmoeller avatar Jun 03 '22 18:06 gassmoeller

I am happy to cherry-pick #4842. I haven't even picked the version to branch off from.

did you take a look through the changelog to get to this list?

I did, but I only looked at it very quickly.

tjhei avatar Jun 03 '22 18:06 tjhei

What do we do about the release? We are now accumulating important changes (deal 9.4 support) and bug fixes (for example for free surface + GMG). I think it would make sense to have these changes in the release, but backporting might become more effort than just releasing the current master. Thoughts?

tjhei avatar Jun 19 '22 14:06 tjhei

A potential solution would be to take the current master and just ignore the fact that we also have a draft html documentation. I don't see many features merged recently, that worry me in terms of stability.

tjhei avatar Jun 19 '22 17:06 tjhei

I agree, since we now have a release candidate for deal.II 9.4 we may as well make sure the current master is working well with that (I need to get another particle fix in), and then base the release of the current master. This will make the release more useful in the future.

Are you around tomorrow for the virtual user meeting? If so let's discuss then.

gassmoeller avatar Jun 20 '22 20:06 gassmoeller

Are you around tomorrow for the virtual user meeting? If so let's discuss then.

Should be. Sounds good.

tjhei avatar Jun 20 '22 20:06 tjhei

Rene, do you have time to do "update the used deal.II version for the Docker container in docker/Dockerfile and in the manual" ?

tjhei avatar Jul 11 '22 18:07 tjhei

It is not that easy unfortunately, because we do not have a deal.II docker image for 9.3.2 (only 9.3.0 is available on docker hub and that has the restart bug). We will need to build our own deal.II for the ASPECT docker container. I will see if I can get to it tomorrow.

gassmoeller avatar Jul 12 '22 13:07 gassmoeller

I can update the tjhei/candi one. Do we want 9.3.3?

tjhei avatar Jul 12 '22 17:07 tjhei

I do not know what changed between 9.3.2 and 9.3.3, but sure, let's go with 9.3.3 if possible. If you send me a link of a docker image for 9.3.2 or 9.3.3 I can update the ASPECT images and the Dockerfile.

gassmoeller avatar Jul 13 '22 15:07 gassmoeller

No need for another deal.II image. See #4910.

gassmoeller avatar Jul 13 '22 19:07 gassmoeller

The releases grew quite a bit:

-rw-r--r--  1 heister heister 16921695 Jun 30  2020 aspect-2.2.0.tar.gz
-rw-rw-r--  1 heister heister 30975742 Jul 21 18:36 aspect-2.3.0.tar.gz
-rw-rw-r--  1 heister heister 77020603 Jul 21 18:37 aspect-2.4.0-rc1.tar.gz

I assume this is because we don't include manual/doc/ but most large files now moved into cookbooks/doc/, benchmarks/doc/ etc. Do we care?

@bangerth @gassmoeller

tjhei avatar Jul 21 '22 22:07 tjhei

I do not think it is a problem. In fact I think it is an advantage to have the documentation source of the cookbooks in the cookbooks folder and as part of the release. It is easy for users to find that way (when they run the cookbooks).

gassmoeller avatar Jul 22 '22 12:07 gassmoeller

Alright. We are ready to tag the release from my end, then.

tjhei avatar Jul 22 '22 21:07 tjhei