From 1960842d1807369c7f9fa36a09c10dc0e5022d9b Mon Sep 17 00:00:00 2001 From: Matthias Maier Date: Mon, 19 Jun 2023 18:38:52 -0500 Subject: [PATCH] Update release tasks --- release-tasks | 564 ----------------------------------------------- release-tasks.md | 141 ++++++++++++ 2 files changed, 141 insertions(+), 564 deletions(-) delete mode 100644 release-tasks create mode 100644 release-tasks.md diff --git a/release-tasks b/release-tasks deleted file mode 100644 index b9c3889..0000000 --- a/release-tasks +++ /dev/null @@ -1,564 +0,0 @@ -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= - - * generate and install the documentation and examples - - make/ninja documentation - make/ninja examples - - * Download images: - - cd /doc/doxygen/deal.II - /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 - 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! diff --git a/release-tasks.md b/release-tasks.md new file mode 100644 index 0000000..a374694 --- /dev/null +++ b/release-tasks.md @@ -0,0 +1,141 @@ +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. + + - [ ] Update regression tester (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. + - [ ] Outstanding issues and pull-requests + Check issues and pull-requests for outstanding fixes. + Update release milestones https://github.com/dealii/dealii/milestone/12 + - [ ] cppcheck (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. + - [ ] codespell (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. + - [ ] clang-tidy (assigned:, pr:) + Run clang tidy via: + ```mkdir build && cd build``` + ```../contrib/utilities/run_clang_tidy.sh ../``` + and check that no warnings are reported. + - [ ] doxygen reflinks (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``` + NOTE: Do not use wrapcomments.py to actually reflow comments - the script causes too much churn with little value. + - [ ] doxygen (assigned:, pr:) + Check that doxygen produces no errors when generating the documentation. Also check that the tutorial dot graph gets generated. + - [ ] Copyright years (assigned:, pr:) + Run the copyright script: + ```./contrib/utilities/update-copyright``` + and make a pull request with a commit title "Update copyright years". + - [ ] Examples (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. + - [ ] Code Gallery (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. + - [ ] Update `.gitattributes` (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? + - [ ] Update authors (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. + - [ ] Changes file (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) + + - [ ] Create and push a release branch + * 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``` (Note: 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``` + Note: 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"``` + Note: 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` + - [ ] Github: Update branch properties + 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. + - [ ] Main branch: Update version + ```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``` + Note: 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. + + - [ ] Update `AUTHORS.md` and `LICENSE.md` (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`). + - [ ] Remove unfinished tutorial programs. (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`). + - [ ] Update deprecations (assigned:, pr:) + On the main branch, replace all occurrences of `DEAL_II_DEPRECATED_EARLY` by `DEAL_II_DEPRECATED` in the library. + Note: This is a time critical task so that we don't lose track what declarations have been deprecated (early) before or after this release. + - [ ] Update version dependencies (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`). + - [ ] Documentation check (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=``` + ```make documentation``` + ```cd /doc``` + ```for i in `find . | egrep '\.html$'` ; do perl /doc/doxygen/scripts/validate-xrefs.pl $i ; done``` -- 2.39.5