From 3d1ea6b2e3227354d64222fb55fbe033b5779202 Mon Sep 17 00:00:00 2001 From: Matthias Maier Date: Tue, 27 Jun 2023 17:49:25 -0500 Subject: [PATCH] update release tasks --- release-tasks.md | 94 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 90 insertions(+), 4 deletions(-) diff --git a/release-tasks.md b/release-tasks.md index 7f8ddaa..d14548c 100644 --- a/release-tasks.md +++ b/release-tasks.md @@ -2,7 +2,7 @@ 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. +The following is a list of ouststanding QA tests that should be checked before proceeding with a release. In order to avoid 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. @@ -77,7 +77,7 @@ The following is a list of ouststanding QA tests that should be checked before p ## 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) +The following steps have to be done by a single developer (with admin privileges on the [repository](https://github.com/dealii/dealii)) - [ ] Create and push a release branch * Verify that the local `master` branch is up to date and create local branch: @@ -86,7 +86,7 @@ The following steps have to be done by a single developer (with admin privileges ```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. + 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 should 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): @@ -104,7 +104,7 @@ The following steps have to be done by a single developer (with admin privileges ## 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. +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 avoid 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 @@ -140,3 +140,89 @@ The following is a list of ouststanding tasks that have to happen on the release ```make documentation``` ```cd /doc``` ```for i in `find . | egrep '\.html$'` ; do perl /doc/doxygen/scripts/validate-xrefs.pl $i ; done``` + + +## Create a release: + +The following steps have to be done by a single developer (with admin privileges on the [repository](https://github.com/dealii/dealii)) + + - [ ] Push the button + * Update `VERSION` file from `9.5.0-rc0` to `9.5.0-rc1` (or `9.5.0` for the final release): + ```echo 9.5.0-rc1 > VERSION``` + ```git commit -a -m "update VERSION for release"``` + 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. + * Create a signed tag for the commit: + ```git tag -s -m "deal.II Pre-Release Version 9.5.0-rc1" v9.5.0-rc1``` + or alternatively for a release: + ```git tag -s -m "deal.II Version 9.5.0" v9.5.0``` + You need a working gnupg key for this. (You should have anyway :-P) + * Push the changes to github (assuming `origin` points to github): + ```git push origin dealii-9.5 v9.5.0-rc1``` + - [ ] Create and sign tar archive + * Github automatically generates a source tarball from the current repository state, see https://github.com/dealii/dealii/releases + * Download the source tarball from github, verify that its contents is what we expect, e.g., by doing the following in a clean repository: + ```git checkout v9.5.0-rc1``` + ```tar --strip-components=1 -xvf dealii-9.5.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! + * Sign it: + ```gpg --detach-sign --armor dealii-9.5.0-rc1.tar.gz``` + - [ ] Create and sign documentation tar archive + * Check out the code-gallery at the correct path + * Install MathJax locally and export the path, for example on Debian/Gentoo: + ```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=``` + ```make documentation``` + ```make examples``` + * Download images: + ```/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) + * Create `dealii-9.5.0-rc1-offline_documentation.tar.gz`: + ```cd ``` + ```tar --numeric-owner --owner=0 --group=0 -cvf dealii-9.5.0-rc1-offline_documentation.tar doc examples``` + ```gzip dealii-9.2.0-offline_documentation.tar``` + * And sign it: + ```gpg --detach-sign --armor dealii-9.5.0-rc1-offline_documentation.tar.gz``` + - [ ] Create a (pre-)release on github + * Got to https://github.com/dealii/dealii/tags and select the just uploaded v9.5.0-rc1 tag and click on "add release notes". Use the following information: + ```Tag: v9.0.0-rc1 existing tag``` + ```Release title: deal.II pre-release version 9.0.0-rc1``` + ```Description: ""``` + Note: For a release use: + ```Tag: dealii-9.5.0 existing tag``` + ```Release title: deal.II version 9.5.0``` + ```Description: [Short version of release notes as found in announce-9.5]``` + ```A full list of changes can be found at``` + ```https://www.dealii.org/developer/doxygen/deal.II/changes_between_9_4_0_and_9_5_0.html``` + * Attach `dealii-9.5.0-rc1.tar.gz` (yes, once again), `dealii-9.5.0-rc1.tar.gz.asc`, `dealii-9.5.0-rc1-offline_documentation.tar.gz`, `dealii-9.5.0-rc1-offline_documentation.tar.gz.asc`. + +## Post (Pre-)release steps: + +The following is a list of ouststanding tasks that have to happen after we tagged a release (candidate). In order to avoid 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. + + - [ ] Generate the documentation on the webserver + - [ ] Adjust `header.include` on the homepage + Change links to the documentation of the most recent version; change the link to the changes_after_X_Y_Z.html file. + - [ ] Adjust `news.html` on the homepage + * add a new entry for the release using the link to the copied changes.h file from above + * also rotate the news entry in the short news blurbb on the fron page in `index.html` + - [ ] Generate MAC bundles and attach to current (pre-)release + - [ ] Update deal.II package in Spack + - [ ] Update deal.II package in Candi + - [ ] Update deal.II package in Gentoo + - [ ] Update deal.II package in Ubuntu/Debian and generate PPA for Ubuntu LTS + - [ ] Update deal.II package in Archlinux AUR + - [ ] Update deal.II Virtualbox Images + - [ ] Release announcements + * [ ] on the user mailing list + * [ ] on social media (facebook, twitter) + * [ ] send a news item to NADigest + - [ ] Update wikipedia pages + * https://en.wikipedia.org/wiki/Deal.II + * https://en.wikipedia.org/wiki/List_of_finite_element_software_packages -- 2.39.5