aspect
aspect copied to clipboard
aspect 2.4.0 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
- [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:
and commit.find include -name "*h" -print | xargs -n 1 $DEALSRCDIR/contrib/utilities/checkdoxygen.py
- [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:
Note: we started ignoring the rewrapping of comments, but we should still fix wrong indentation or other problemsfind . -name "*.h" -print | while read file;do $DEALSRCDIR/contrib/utilities/wrapcomments.py $file >temp;mv temp $file;done
- [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)
. compile aspect, make sure you have a symlink in the main directory for the next stepgit 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"
- make sure the WorldBuilder is found! (git submodule init)
- [x] update doc/manual/parameters.tex and documentation:
. Tag an RC: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 the release: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"
. create a tar file:export TAG=$VER cd contrib/release && ./bump_version.sh $TAG && cd ../.. && \ git commit -m "version $TAG" && \ git tag -s v$TAG -m "version $TAG"
. final testing by extracting tarball, compiling, and running: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
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):
. sign:git push cig aspect-$VERSHORT git push cig v$TAG
. create a release on github, upload .tar.gz and manual-$VER.pdfgpg --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
- [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
andspack 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?
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?
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.
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?
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.
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.
Are you around tomorrow for the virtual user meeting? If so let's discuss then.
Should be. Sounds good.
Rene, do you have time to do "update the used deal.II version for the Docker container in docker/Dockerfile and in the manual" ?
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.
I can update the tjhei/candi one. Do we want 9.3.3?
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.
No need for another deal.II image. See #4910.
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
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).
Alright. We are ready to tag the release from my end, then.