+++ /dev/null
-This file is internal information only. It lists the steps to be done when a
-new release shall be issued.
-
-***
-***
-*** Release preparation:
-***
-***
-
-
--3/ Send out notice to the mailinglist if anyone has outstanding
- issues or patches. This should happen at least a week before the
- release process starts. Ask for volunteer testers on Mac.
-
-Subject: Release preparations
-
-All,
-
-we would like to start the release process for deal.II 9.0.0 soon. Please
-let us know if you have any last minute things that need to be addressed
-(bugs, documentation issues, configuration problems, etc.).
-
-If you are running the current development version, please update your local
-working copy and test if everything compiles, especially if you are running a
-less common configuration (mac, old compilers, etc.).
-
-Thanks!
-
-
--2/ Check all issues and pull-request on github. Create a list to see if
- there are things that we intended to fix before the release.
-
-
--1/ Update the list of publications. Standard text for the email:
-
-Subject: Publications based on deal.II
-
-All,
-
-as you may know, we try to list all publications based on deal.II at
- http://dealii.org/publications.html
-We use this list to justify the effort we spend on writing this software, both
-to our universities as well as the funding agencies that support its
-development.
-
-In anticipation of the next release, we would like to update this page. If you
-have (or know of) a publication that uses deal.II for numerical results and
-that isn't already listed, please let us know so we can put it on there. For
-this purpose, publications also include MSc, Diploma or PhD theses, or
-anything else that may seem appropriate.
-
-We've made the process of submitting entries much simpler than in the past.
-Here are a number of ways you can let us know:
-
-* Open a new issue via
- https://github.com/dealii/publication-list/issues/new and just copy-paste
- either a bibtex entry, or just the reference information
-
-* If you want to save us a bit of work, follow the process here:
- https://github.com/dealii/publication-list/blob/master/README.md
-
-* Or email the information directly to me or one of the other principal
- developers.
-
-Thanks
-
-
- Send this as BCC to
- dealii@googlegroups.com
- aspect-devel@geodynamics.org
-
-
--1a/ Start release paper process with email to all current (principal)
- developers:
-
-Subject: 9.0 Release Paper
-
-All,
-Timo and I have started to work on a few things necessary for the next
-release. In particular, we would like to get the release paper started.
-
-To this end:
-* Please check out https://github.com/dealii/release-papers
-* If you think that you have contributed in a way that warrants co-authorship,
- please add yourself to the list of authors for the 9.0 paper
-* If you think that someone other than just us maintainers should be a
- co-author, please nominate that person here
-We think that these last two points are important -- we want the list of
-co-authors to reflect who actually contributed, rather than inherited
-rights in the project, because that makes it clear to current and future
-participants in the project that they can hope for formal recognition of
-their work in terms of things they can put on their CV.
-
-As far as content of the paper is concerned: I put together a list of
-possible topics -- please take a look.
-
-As far as the material I tentatively put into the paper: if you're willing
-to write a section, can you attach your name to it somehow in the next
-couple of days?
-
-Best
- Wolfgang & Timo
-
-
--1b/ update the authors list on the homepage authors.html by
- cross-referencing doc/news/changes.h
-
- Get the list using
- egrep '[0-9]+/[0-9]+/[0-9]+' doc/news/changes/*/* | \
- perl -p -e 's/^.*\(//g; s#, *[0-9/]+\)##g; s/, */\n/g;' | \
- sort |uniq
-
- Compare with the commit list:
- git log --date=short --format="%an %aE" v8.5.0..HEAD | grep -v 'dependabot\[bot\]' | sort | uniq
-
-
-
--1c/ The list of contributors to the current release should also be copied to
- the end of the release paper
-
- TODO
-
-0/ Do some basic testing as always
-
-0a/ Rerun cppcheck across the source files:
- cppcheck --force -j4 --enable=all -I./include/ ./source/*/*.cc >cppcheck-results.txt 2>&1
-
- and look for anything that should obviously be fixed.
-
-
-0c/ Fix formatting bugs reported by:
-
- cd include;
- find . -name "*.h" -print | while read file;do ../contrib/utilities/wrapcomments.py $file >temp;done
-
- [ NOTE: Do not use wrapcomments.py to actually reflow comments - the
- script causes too much churn with little value - Timo & Matthias 2019/05/13 ]
-
- Also check:
- grep -l '@ref[^"]*"[^"]*$' **/*.h
- grep -l '@ref$' **/*.h
-
- Push the corresponding changes.
-
-
-0d/ Check that doxygen produces no errors when generating offline docs.
- Especially check that the tutorial dot graph gets generated
-
-0e/ Run the copyright script:
- ./contrib/utilities/update-copyright
- and make a PR.
- Important: commit message needs to be "Update copyright years"
-
-0f/ update Trilinos and PETSc to the latest release on the tester and update the blurb at:
- doc/external-libs/trilinos.html
- doc/external-libs/petsc.html
-
-0g/ Run codespell: e.g., inside emacs' compilation-mode run
-
- codespell --disable-colors ./contrib/ ./cmake/ ./doc/ ./examples/ ./include/ ./source/
-
- or the same (without --disable-colors) in the terminal.
-
-0h/ Run ASPECT's test suite: see also https://github.com/dealii/dealii/pull/14092
-
-*** Caveat: for a minor version x.y.Z,
-*** 1-3 must be performed on the corresponding release branch, e.g. 'dealii-9.0'
-*** AND on HEAD
-
-
-1/ Create new changes file:
- - Also adjust the copyright dates
- - Run the following commands from above the source dir:
- mkdir build-doc
- cd build-doc
- cmake ../dealii -DDEAL_II_COMPONENT_DOCUMENTATION=ON
- make documentation
- cp doc/news/changes.h ../dealii/doc/news/8.5.0-vs-9.0.0.h
- cd ../dealii
- git checkout -b update-changes-file
- git add doc/news/8.5.0-vs-9.0.0.h
- git commit -m "Update the changelog file for the release." doc/news/8.5.0-vs-9.0.0.h
- git rm doc/news/changes/{major,minor,incompatibilities}/*
- git commit -m "Remove now obsolete files." doc/news/changes/{major,minor,incompatibilities}
- git push origin update-changes-file
- hub pull-request -m "Replace individual files by one changelog for the whole release."
- - Adjust the header of doc/news/header back so that it can
- serve as the running header for the next release cycle.
-
-1a/ Adjust doc/users/doxygen.html to link to the to-be-created TAG file.
- then do a pull request
-
-1b/ Review the generated changes.h file for dead links, duplicated entries,
- obsolete entries (e.g., commit 1 adds feature A, commit 2 fixes feature A), etc.
-
-4/ If a x.y.0 release, it is now time to create a release branch:
-
- git checkout -b dealii-9.1 # exactly 'dealii-X.Y' to remain consistent!
-
- # Update VERSION from 9.1.0-pre to 9.1.0-rc0
- #
- # Note: Please do not use "9.0.0" (or "9.0.0-rc1") directly because the
- # soname is derived from the current version number. Therefore, 9.0.0
- # must only be used for the final, tagged and distributed code.
-
- git commit -a -m "update VERSION"
-
- git push origin dealii-9.0 # where origin is the remote pointing to
- # github.com/dealii/dealii.git
-
- Note: Without a pull request!
-
-4a/ Check branch properties on github! Should be set automatically but
- nevertheless: push protection + mandatory test + mandatory number of
- reviews, best between 2 and 3
-
-5/ Update the VERSION from 9.0.0-pre to 9.1.0-pre on
- master. (Conservatively only increment the minor version even if the
- plan is to later release a major update -- it is always possible to
- convert 9.4 into 10.0 later, but one can't easily back down any more.)
-
- git checkout master
- git commit -a -m "Update VERSION"
-
- [ pull request for master branch ]
-
-5a/ On master, replace all occurrences of DEAL_II_DEPRECATE_EARLY by
- DEAL_II_DEPRECATE in the library. (This needs to happen here because
- if we forget it, we merge patches that add more
- DEAL_II_DEPRECATE_EARLY notes and we don't know any more which of
- these were meant to be converted for the following release.)
-
-6/ Update the official tester to test on the release branch dealii-9.3
-
- An empty checkout in a folder 'dealii-9.3' can be obtained via
-
- git clone --branch dealii-9.3 git://github.com/dealii/dealii.git deal-9.3
-
-6a/ On mainline, do something like this to require the current dev version
- for the tutorials and in the documentation:
-
- perl -pi -e 's/deal.II 9.3.0/deal.II 10.0.0/g;' examples/*/CMakeLists.txt
-
- also check doc/users/* and tests/*:
-
- grep "FIND_PACKAGE(deal.II" -r doc/ tests/
-
- git commit -a -m "Require the current version of deal.II."
- [ pull request ]
-
-
-7/ Create an AUTHORS.md file in the top-level directory of the branch that
- contains a text-only copy of the authors.html file from the website.
- You can start from
- lynx -dump -nolist https://www.dealii.org/authors.html >AUTHORS
- and format it like this:
- https://github.com/dealii/dealii/blob/dealii-9.0/AUTHORS
-
- Update LICENSE.md to point to the AUTHORS.md file:
-
- "[...] refers to the people listed in the file AUTHORS.md."
-
- git add AUTHORS.md
- git commit -a -m "update AUTHORS.md"
-
- git push origin dealii-9.0
-
- Note: Without a pull request!
-
-
-7a/ Send prerelease announcement to dealii@googlegroups.com
-
-Subject: dealii-9.3.0 release candidate 1
-
-Dear all,
-
-We have tagged a first release candidate for the upcoming deal.II 9.3.0 release.
-You can find the sources and a generated offline documentation here:
-
- https://github.com/dealii/dealii/releases/tag/v9.3.0-rc1
-
-Alternatively, you can switch to the dealii-9.3 branch in your local git repository
-
- git remote update
- git checkout v9.3.0-rc1
-
-It would be great if you could test it on your machine with your typical configuration!
-If no further regressions show up, we will release Saturday May 29. The release
-progress is tracked in the following GitHub issue:
-
- https://github.com/dealii/dealii/issues/12117
-
-Thanks!
-
-David, Matthias, Peter
-on behalf of the deal.II developer team
-
-
-
-8/ Remove unfinished tutorial programs.
- For 9.0, these are steps 47, 50
- For 9.1, these are none
-
- a) Delete directories on the branch:
-
- cd examples
- git rm -r step-47 step-50
- git commit -a -m "removed unfinished steps (release tasks step 8)."
-
- b) These steps should also not be listed on the branch in
- doc/doxygen/tutorial/tutorial.h.in
-
- [ pull request ]
-
-
- c) Make sure all images are moved to the homepage repository. See:
- https://svnhp.dealii.org/trunk/homepage/images/steps/readme.txt
-
-
-9/ Write up a short release note and save it as release-papers/x.y/announce
-9a/ Write the release paper in the release-papers/ subdirectory
-
-10/ Test the branch thoroughly:
-
- a) Run a full testsuite run locally,
-
- b) Have a look at the test results on cdash
-
- c) Configure, build and run all examples by hand (the testsuite only
- runs a subset of it):
-
- cd [install]/examples
- for i in step-* ; do \
- (cd $i ; cmake -DDEAL_II_DIR=../.. . ; make ; make run) ; done
-
- This step will require looking at the output and checking whether
- anything untoward is happening.
-
-10a/ Do the same for the code gallery examples: They should at the
- very least compile. If possible, also run them to make sure they
- don't trip up any exceptions.
-
-11/ In a clean source directory of the dealii-9.0 branch, do
- git clone https://github.com/dealii/code-gallery.git
- mkdir builddoc
- cd builddoc
- cmake -DDEAL_II_COMPONENT_DOCUMENTATION=ON -DCMAKE_INSTALL_PREFIX=$PWD/../installeddoc ../
- make -j 10 documentation
- cd ../installeddoc/doc
- for i in `find . | egrep '\.html$'` ; do \
- perl ../../doc/doxygen/scripts/validate-xrefs.pl $i ; done
-
- If some of the deleted tutorial programs were linked to somewhere
- else, resolve the unresolved links by adding corresponding files
- to the doc/doxygen/headers directory. The content of such files
- looks like shown here:
- svn cat http://www.dealii.org/svn/dealii/branches/releases/Branch-7-0/deal.II/doc/doxygen/headers/step-32.h
-
-11a/ Check that .gitattributes is up to date. In particular do all the
- quick tests work?
-
-[ some time with bugfixing and commits on the release branch ]
-
-
-***
-***
-*** Publish a release, or release candidate.
-***
-***
-
-
-12/ Push the button:
-
- a) Change VERSION to 9.0.0 for a release and to 9.0.0-rc1 for a release
- candidate and commit:
- git commit -m "update VERSION for release"
-
- b) (Signed) tag the commit with:
-
- # for the final release:
- git tag -s -m "deal.II Version 9.0.0" v9.0.0
- # or alternatively for a release candidate:
- git tag -s -m "deal.II Pre-Release Version 9.0.0-rc1" v9.0.0-rc1
-
- You need a working gnupg key for this. (You should have anyway :-P)
-
- c) Push changes to github:
-
- # where origin is the remote pointing to github.com/dealii/dealii.git
- git push origin dealii-9.0
- git push origin v9.0.0
-
-
-13/ Create the tar files:
-
- a) github automatically generates a source tarball from the current
- repository state, see https://github.com/dealii/dealii/releases
-
- b) Download the source tarball from github, verify that its contents is
- what we expect, e.g.
-
- # in a clean git repository:
- git checkout v9.0.0 # or git checkout v9.0.0-rc1
- rm -r *
- tar --strip-components=1 -xvf dealii-9.0.0.tar.gz (or dealii-9.0.0-rc1.tar.gz)
- git status
-
- Now, the last git status will only record some deleted files but
- must not show any modified file contents!
-
- Cryptographically sign it (detached, armored signature):
-
- gpg --detach-sign --armor dealii-9.0.0.tar.gz
-
- c) Create full offline_doc tarball
-
- * check out the code-gallery at the correct path
-
- * install MathJax locally and export the path, for example
-
- export MATHJAX_ROOT="/usr/share/mathjax"
-
- * Generate and install the documentation from a clean working
- directory containing the tagged release and configure with:
-
- cmake -DDOCUMENTATION=ON -DDEAL_II_DOXYGEN_USE_MATHJAX=ON -DDEAL_II_DOXYGEN_USE_ONLINE_MATHJAX=OFF -DDEAL_II_COMPILE_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=<install>
-
- * generate and install the documentation and examples
-
- make/ninja documentation
- make/ninja examples
-
- * Download images:
-
- cd <install>/doc/doxygen/deal.II
- <source dir>/contrib/utilities/make_offline_doc.sh
-
- * (in the same directory) copy mathjax and fix includes:
-
- cp -r "$MATHJAX_ROOT" mathjax
- sed -i -e "s#$MATHJAX_ROOT#mathjax#" **/*.html
-
- * Grep the documentation for "full path leaks", for example grep for your
- user name and the git repository location and fix up all remaining
- locations (in particular deal.tag)
-
- d) Create dealii-9.1.0-offline_documentation.tar.gz (or for a
- prerelease: dealii-9.1.0-rc1-offline_documentation.tar.gz)
-
- cd <install>
- tar --numeric-owner --owner=0 --group=0 -cvf dealii-9.2.0-offline_documentation.tar doc examples
- gzip dealii-9.2.0-offline_documentation.tar
-
- e) Also sign it:
-
- gpg --detach-sign --armor dealii-9.1.0-offline_documentation.tar.gz
-
-
-14a/ Create a pre-release on github:
-
- https://github.com/dealii/dealii/tags
-
- Select the just uploaded v9.0.0-rc1 tag and click on "add release notes"
-
- Tag: v9.0.0-rc1 Existing tag
- Release title: deal.II pre-release version 9.0.0-rc1
-
- Description: ""
-
- Attach dealii-9.0.0-rc1.tar.gz (yes, once again)
- Attach dealii-9.0.0-rc1.tar.gz.asc
- Attach dealii-9.0.0-rc1-offline_documentation.tar.gz
- Attach dealii-9.0.0-rc1-offline_documentation.tar.gz.asc
-
-14b/ Create a release on github:
-
- https://github.com/dealii/dealii/releases/new
-
- Tag: dealii-9.0.0 Existing tag
- Release title: deal.II version 9.0.0
-
- Description:
- [Short version of release notes as found in announce-8.2]
- A full list of changes can be found at
- http://www.dealii.org/developer/doxygen/deal.II/changes_between_8_2_1_and_8_3.html
-
- Attach dealii-9.0.0.tar.gz (yes, once again)
- Attach dealii-9.0.0.tar.gz.asc
- Attach dealii-9.0.0-offline_documentation.tar.gz
- Attach dealii-9.0.0-offline_documentation.tar.gz.asc
-
-
-***
-*** Caveat: Every further commit on an actual release at this point forces
-*** an increase in the patch number, i.e. 9.0.0 -> 8.2.1.
-***
-*** Go back to 12/ until a release is tagged
-***
-
-
-15/ Generate the documentation on the webserver.
- Guido: Man nehme scripts/make_documentation.sh aus unserem privaten SVN-Repository und ersetze in der cmake-Zeile "Git ..." durch "X.Y.Z"
-
-16/ Adjust header.include on homepage:
- change links to the documentation of the most recent version
- change the link to the changes_after_X_Y_Z.html file
- (possibly other items -- please update this list)
-
-
-17a/ Ask Luca for Mac packages. Those can be added as additional download
- options to the freshly created release. Mention new naming convention
- "dealii-9.0.0-.*" for attachments
-
-17b/ Update dealii in Spack (Denis)
- https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/dealii/package.py
-
-17c/ Update dealii in Candi (Uwe)
- https://github.com/dealii/candi/blob/master/candi.cfg
-
-17d/ Update dealii in the Gentoo Science overlay (Matthias)
- https://gitweb.gentoo.org/proj/sci.git/tree/sci-libs/dealii
-
-17e/ Update dealii in Ubuntu/Debian (Matthias)
- https://salsa.debian.org/science-team/deal.ii
-
-17f/ Update dealii in Archlinux AUR (David)
- https://aur.archlinux.org/packages/deal-ii/
-
-17g/ Update dealii virtualbox images (Timo)
-
-18/ Finish writing the announcement
-
-
-18b/ Adjust news.html in the deal.II homepage repo: new entry for the
- release using the link to the copied changes.h file from above; commit.
- Rotate the news entry also in the short news blurb on the front page in
- index.html
-
-19/ announce the release by sending an email to announce-list (file in this
- directory) with subject:
- Finite Element Software deal.II Version 9.0.0 released
-
-
-19a/ Send a note to the Facebook and Google+ accounts
-
-
-19b/ Update various wikipedia pages:
- http://en.wikipedia.org/wiki/Deal.II
- https://en.wikipedia.org/wiki/List_of_finite_element_software_packages
-
-
-19d/ Send thank-you email and list the people already referenced in step -1b above
- Sample text:
-
-I would like to follow up on the announcement of this release by publicly
-saying again how much we appreciate the many contributions from those who
-have sent it code, bug reports, fixed grammar and typos, or have helped in
-any other way. Many thanks!
-
-The ChangeLog lists at least the following people to whom thanks are due
-(though I am certain that I am forgetting someone):
-
-
-20/ Celebrate!
--- /dev/null
+Copy and paste the following markdown list into a deal.II Issue:
+
+## Pre-Release testing, QA and final code changes:
+
+The following is a list of ouststanding QA tests that should be checked before proceeding with a release. In order to duplicated efforts, add your a tag `@name` with your name after `assigned:` and link corresponding pull requests after `pr:`. finally, tick of the box when the task is done.
+
+ - [ ] <b>Update regression tester</b> (assigned:, pr: —)
+ Check and (if necessary) update testing infrastructure so that at least one configuration runs with the latest versions of external dependencies and compilers.
+ - [ ] <b>Outstanding issues and pull-requests</b>
+ Check issues and pull-requests for outstanding fixes.
+ Update release milestones https://github.com/dealii/dealii/milestone/12
+ - [ ] <b>cppcheck</b> (assigned:, pr:)
+ Run `cppcheck` across all source files:
+ ```cppcheck --force -j4 --enable=all -I./include/ ./source/*/*.cc >cppcheck-results.txt 2>&1```
+ and look for anything that should obviously be fixed.
+ - [ ] <b>codespell</b> (assigned:, pr:)
+ Run `codespell` across all source files:
+ ```codespell ./contrib/ ./cmake/ ./doc/ ./examples/ ./include/ ./source/```
+ and look for typos and spelling mistakes that should be fixed.
+ - [ ] <b>clang-tidy</b> (assigned:, pr:)
+ Run clang tidy via:
+ ```mkdir build && cd build```
+ ```../contrib/utilities/run_clang_tidy.sh ../```
+ and check that no warnings are reported.
+ - [ ] <b>doxygen reflinks</b> (assigned:, pr:)
+ Check doxygen commands and reflinks:
+ ```cd include```
+ ```find . -iname "*h" -exec ../contrib/utilities/wrapcomments.py {} \; > /dev/null```
+ Also check:
+ ```grep -l '@ref[^"]*"[^"]*$' **/*.h```
+ ```grep -l '@ref$' **/*.h```
+ <b>NOTE:</b> Do not use wrapcomments.py to actually reflow comments - the script causes too much churn with little value.
+ - [ ] <b>doxygen</b> (assigned:, pr:)
+ Check that doxygen produces no errors when generating the documentation. Also check that the tutorial dot graph gets generated.
+ - [ ] <b>Copyright years</b> (assigned:, pr:)
+ Run the copyright script:
+ ```./contrib/utilities/update-copyright```
+ and make a pull request with a commit title "Update copyright years".
+ - [ ] <b>Examples</b> (assigned:, pr:)
+ Configure, build and run all examples by hand:
+ ```cd examples```
+ ```for i in step-* ; do (cd $i ; cmake -DDEAL_II_DIR=../.. . ; make ; make run) ; done```
+ This step will require looking at the output and checking whether
+ anything untoward is happening.
+ - [ ] <b>Code Gallery</b> (assigned:, pr: —)
+ Do the same for the code gallery examples: They should at the very least compile. If possible, also run them to make sure they don't trip up any exceptions.
+ - [ ] <b>Update `.gitattributes`</b> (assigned:, pr:)
+ Check that `.gitattributes` is up to date by using `git archive` and checking that the contents is meaningful. In particular, do `quicktests` still run?
+ - [ ] <b>Update authors</b> (assigned:, pr: —)
+ Update the authors list on the homepage authors.html by cross-referencing `doc/news/changes.h` and the git commit history:
+ ```egrep '[0-9]+/[0-9]+/[0-9]+' doc/news/changes/*/* | perl -p -e 's/^.*\(//g; s#, *[0-9/]+\)##g; s/, */\n/g;' | sort | uniq```
+ Compare with the git commit history between the last release and current master:
+ ```git log --date=short --format="%an %aE" v9.4.0..HEAD | grep -v 'dependabot\[bot\]' | sort | uniq```
+ The list of contributors to the current release should also be copied to the end of the release paper.
+ - [ ] <b>Changes file</b> (assigned:, pr:)
+ This step should happen immediately before branching off so that the changes file does not need to get updated again.
+ * Create a new changes files by running the following commands:
+ ```mkdir build-doc && cd build-doc```
+ ```cmake -DDOCUMENTATION=ON ../```
+ ```make documentation```
+ ```cp doc/news/changes.h ../doc/news/9.4.0-vs-9.5.0.h```
+ ```cd ../```
+ * Manually check `doc/news/9.4.0-vs-9.5.0.h` for dead links, duplicated entries, obsolete entries (e.g., commit 1 adds feature A, commit 2 fixes feature A), etc. Update `@page` title and copyright year.
+ * Then,
+ ```git checkout -b update-changes-file```
+ ```git add doc/news/9.4.0-vs-9.5.0.h```
+ ```git commit -m "Update the changelog file for the release."```
+ ```git rm doc/news/changes/{major,minor,incompatibilities}/*
+ ```git commit -m "Remove now obsolete files."```
+ ```touch doc/news/changes/{major,minor,incompatibilities}/20230623dummy```
+ ```git add doc/news/changes/{major,minor,incompatibilities}/20230623dummy```
+ ```git commit -m "Add dummy files."```
+ * Adjust `doc/users/doxygen.html` to link to the to-be-created TAG file.
+ * Make a pull request
+
+
+## Branching off the release branch:
+
+The following steps have to be done by a single developer (with admin privileges on the https://github.com/dealii/dealii repository)
+
+ - [ ] <b>Create and push a release branch</b>
+ * Verify that the local `master` branch is up to date and create local branch:
+ ```git checkout master && git pull```
+ ```git status```
+ ```git checkout -b dealii-9.5``` (<b>Note:</b> exactly `dealii-9.5` to remain consistent!)
+ * Update `VERSION` file from `9.5.0-pre` to `9.5.0-rc0`:
+ ```echo 9.5.0-rc0 > VERSION```
+ <b>Note:</b> Please do not use `9.5.0`, or `9.5.0-rc1`, directly because the soname is derived from the current version number. Therefore, 9.5.0 chould only be used for the final, tagged and distributed code.
+ ```git commit -a -m "update VERSION"```
+ <b>Note:</b> This commit is done without a pull request! We use the `update VERSION` commits to tag releases and release candidates and therefore should be plain commits on the release branch.
+ * Push the branch to github (assuming `origin` points to github):
+ ```git push origin dealii-9.5`
+ - [ ] <b>Github: Update branch properties</b>
+ Check branch properties on github! This should be set automatically but nevertheless make sure that the following options are set: push protection + mandatory test + mandatory number of reviews, best between 2 and 3.
+ - [ ] <b>Main branch: Update version</b>
+ ```git checkout master```
+ ```git checkout -b update_version```
+ * Update the `VERSION` file from `9.5.0-pre` to `9.6.0-pre`.
+ ```echo 9.6.0-rc0 > VERSION```
+ <b>Note:</b> Conservatively only increment the minor version even if the plan is to later release a major update — it is always possible to convert 9.4 into 10.0 later, but one can't easily back down any more.
+ * ```git commit -a -m "Update VERSION"```
+ * Make a pull request against main branch (`master`).
+
+## Post-Branching tasks and cleanup:
+
+The following is a list of ouststanding tasks that have to happen on the release branch before we can tag a release (candidate). In order to duplicated efforts, add your a tag `@name` with your name after `assigned:` and link corresponding pull requests after `pr:`. finally, tick of the box when the task is done.
+
+ - [ ] <b>Update `AUTHORS.md` and `LICENSE.md`</b> (assigned:, pr:)
+ * Create an `AUTHORS.md` file in the top-level directory of the branch that contains a text-only copy of the authors.html file from the website. You can start from lynx -dump -nolist https://www.dealii.org/authors.html >AUTHORS and format it like this: https://github.com/dealii/dealii/blob/dealii-9.0/AUTHORS
+ * Update `LICENSE.md` to point to the AUTHORS.md file:
+ ```[...] refers to the people listed in the file AUTHORS.md.```
+ * ```git add AUTHORS.md LICENSE.md```
+ ```git commit -a -m "update AUTHORS.md and LICENSE.md"```
+ * Make a pull request against release branch (`dealii-9.5`).
+ - [ ] <b>Remove unfinished tutorial programs.</b> (assigned:, pr:)
+ * Delete directories on the release branch:
+ ```cd examples```
+ ```git rm -r step-... ...```
+ * These steps should also not be listed on the branch in `doc/doxygen/tutorial/tutorial.h.in`
+ * ```git commit -a -m "remove unfinished example steps"```
+ * Make a pull request against the release branch (`dealii-9.5`).
+ - [ ] <b>Update deprecations</b> (assigned:, pr:)
+ On the main branch, replace all occurrences of `DEAL_II_DEPRECATED_EARLY` by `DEAL_II_DEPRECATED` in the library.
+ <b>Note:</b> This is a time critical task so that we don't lose track what declarations have been deprecated (early) before or after this release.
+ - [ ] <b>Update version dependencies</b> (assigned:, pr:)
+ * On mainline, do something like this to require the current dev version for the tutorials and in the documentation:
+ ```perl -pi -e 's/deal.II 9.5.0/deal.II 9.6.0/g;' examples/*/CMakeLists.txt```
+ * Also check `doc/users/*` and `tests/*`:
+ ```grep "FIND_PACKAGE(deal.II" -r doc/ tests/```
+ * ```git commit -a -m "Require the current version of deal.II."```
+ * Make a pull request against main branch (`master`).
+ - [ ] <b>Documentation check</b> (assigned:, pr:)
+ Ensure once more that the documentation is generated cleanly:
+ * Ensure that the code gallery is in place:
+ ```git clone https://github.com/dealii/code-gallery.git```
+ * Generate documentation
+ ```mkdir build && cd build```
+ ```cmake -DDOCUMENTATION=ON -DDEAL_II_DOXYGEN_USE_MATHJAX=ON -DCMAKE_INSTALL_PREFIX=<install>```
+ ```make documentation```
+ ```cd <install>/doc```
+ ```for i in `find . | egrep '\.html$'` ; do perl <source>/doc/doxygen/scripts/validate-xrefs.pl $i ; done```