Project

General

Profile

Release checklist » History » Version 21

Paul Bauer, 04/16/2019 01:50 PM

1 1 Mark Abraham
h1. Release checklist
2 1 Mark Abraham
3 2 Mark Abraham
* add new redmine version targets
4 2 Mark Abraham
* bump bugs that won't get fixed in time to next version (or untag a version number)
5 11 Mark Abraham
* check the post-submit and nightly Jenkins matrices are building suitably well
6 2 Mark Abraham
* merge in appropriate branches from earlier releases
7 6 Mark Abraham
* if regressiontests changes with matching source changes are needed, do the cross-verify checks to see that things are working, and plan to submit the patches either early or the very last thing, to minimize mysterious Jenkins failures because an outdated parent is in use
8 2 Mark Abraham
* announce release schedule - give devs a week or two to fix things they intended to fix, provide links to gerrit and redmine pages for that branch/version
9 3 Mark Abraham
* bump shared object minor version for point releases
10 3 Mark Abraham
* consider bumping shared object major version for point releases - see cmake/gmxVersionInfo.cmake for policy
11 2 Mark Abraham
* check for new GROMACS papers that should be mentioned in source and manual
12 21 Paul Bauer
* create new versions of entries (for patch releases) or a complete new entry (for new major releases) on Zenodo and register the DOI for both of them
13 21 Paul Bauer
  - to ensure this, Paul Bauer has a login there for the GROMACS account
14 21 Paul Bauer
  - TODO share login details with others, and change linked email to one that can be used by several people
15 5 Mark Abraham
16 5 Mark Abraham
* run release workflow a few days in advance to check things work
17 5 Mark Abraham
  - this also builds the tarball correctly, when the RELEASE checkbox is ticked, which we need for updating the REGRESSIONTEST_MD5SUM in cmake/gmxVersionInfo.cmake
18 5 Mark Abraham
  - TODO automate this along the lines of the regressiontests auto-builder
19 5 Mark Abraham
20 13 Mark Abraham
* put stuff on the FTP site only when ready to make the release announcement, as some distros automatically scan URLs for tarballs
21 7 Mark Abraham
* upload source tarball to FTP site, give correct permissions, check link works - TODO automate the stuff below into a Jenkins job that we trigger manually after the release workflow is satisfactory
22 4 Mark Abraham
23 11 Mark Abraham
Here's a script to help automate that on Jenkins
24 1 Mark Abraham
<pre>
25 11 Mark Abraham
#!/bin/bash
26 1 Mark Abraham
27 11 Mark Abraham
# Jenkins is able to work out what the version is for the
28 11 Mark Abraham
# Release_workflow_master, so we can put that to use for the publish
29 11 Mark Abraham
# workflow, too.
30 1 Mark Abraham
31 11 Mark Abraham
major=2018
32 11 Mark Abraham
patch=2
33 4 Mark Abraham
34 11 Mark Abraham
#suffix=
35 11 Mark Abraham
#suffix=-rc1
36 11 Mark Abraham
suffix=.$patch
37 11 Mark Abraham
version=$major$suffix
38 4 Mark Abraham
39 11 Mark Abraham
website_tarball="Website-${version}.zip"
40 11 Mark Abraham
regressiontests_tarball="regressiontests-${version}.tar.gz"
41 11 Mark Abraham
source_tarball="gromacs-${version}.tar.gz"
42 11 Mark Abraham
download="wget -N" 
43 11 Mark Abraham
44 1 Mark Abraham
upload="rsync -avP --chmod=u+rwX,g+rwX,o+rX"
45 17 Paul Bauer
deploymentlocation=mark@www.gromacs.org:/var/www/manual
46 11 Mark Abraham
$download "http://jenkins.gromacs.org/job/Release_workflow_master/Website/*zip*/Website.zip"
47 11 Mark Abraham
originalpwd=$PWD
48 11 Mark Abraham
cp Website.zip ${website_tarball}
49 1 Mark Abraham
# Unpack the website tarball
50 1 Mark Abraham
(
51 1 Mark Abraham
    cd /tmp
52 11 Mark Abraham
    unzip -o -u $originalpwd/${website_tarball} #>& /dev/null
53 11 Mark Abraham
    echo "done unzip"
54 11 Mark Abraham
    ls Website/*
55 1 Mark Abraham
    $upload Website/* Website/.[a-z]* $deploymentlocation/${version}/
56 11 Mark Abraham
    echo "done upload"
57 1 Mark Abraham
    cp Website/manual*pdf $originalpwd
58 4 Mark Abraham
    #rm -rf Website
59 4 Mark Abraham
)
60 4 Mark Abraham
61 11 Mark Abraham
# Get the various tarballs and manual to the ftp server. Note that the
62 11 Mark Abraham
# GROMACS source repo has gerrit.gromacs.org in the URL for the
63 11 Mark Abraham
# regressiontest tarball download, but actually the requests are
64 11 Mark Abraham
# redirected to ftp.gromacs.org server.
65 11 Mark Abraham
$download http://jenkins.gromacs.org/job/Regressiontests_package_master/lastSuccessfulBuild/artifact/regressiontests/$regressiontests_tarball
66 11 Mark Abraham
$download http://jenkins.gromacs.org/job/Source_package_master/lastSuccessfulBuild/artifact/build/$source_tarball
67 11 Mark Abraham
upload="rsync -avP --chmod=u+rw,g+rw,o+r" 
68 11 Mark Abraham
destination=mark@ftp.gromacs.org:/srv/ftp
69 11 Mark Abraham
$upload $source_tarball $destination/gromacs/
70 11 Mark Abraham
$upload manual-${version}.pdf $destination/manual/
71 11 Mark Abraham
$upload $regressiontests_tarball $destination/regressiontests/
72 11 Mark Abraham
73 11 Mark Abraham
# Echo these to the terminal for convenient double checking
74 11 Mark Abraham
md5sum $source_tarball
75 11 Mark Abraham
md5sum $regressiontests_tarball
76 1 Mark Abraham
</pre>
77 1 Mark Abraham
78 12 Mark Abraham
* update symlinks for current version in www at /var/www/documentation
79 10 Mark Abraham
* update News on front of GROMACS web page - http://www.gromacs.org/
80 10 Mark Abraham
* TODO make notes of what goes into the commit for the new version and the one that follows the tagged commit
81 10 Mark Abraham
    - check the contents of the release notes, particuarly for commits since the last release that have no
82 5 Mark Abraham
      release notes yet, e.g. with @git log --oneline@ vs @git log --oneline -- docs/release-notes@
83 5 Mark Abraham
    - tag the commit from which the tarball was made, and do explicit upload to gerrit.gromacs.org repo
84 5 Mark Abraham
    - update REGRESSIONTEST_BRANCH if needed (major release)
85 5 Mark Abraham
    - sometimes bump GMX_VERSION_* variables
86 5 Mark Abraham
    - bumps to release notes index.rst and directory structure
87 3 Mark Abraham
88 3 Mark Abraham
* once the gerrit change is submitted and the release email sent, make tag of the correct form in local repo
89 14 Mark Abraham
* bump version in cmake/gmxVersionInfo.cmake in the commit following the tag (look at previous release commits) - prepare this commit in advance, finalize any TODO on the day
90 14 Mark Abraham
* add new stub file for release notes for next version, and entry in index.rst in commit to follow teh release commit
91 3 Mark Abraham
* git push --tags to gerrit repo
92 2 Mark Abraham
* later, check tags propagate to gromacs and github
93 16 Paul Bauer
94 16 Paul Bauer
* get main manual.gromacs.org website documentation from bitbucket repository: https://bitbucket.org/tcblab/gromacs-deployment/src/master/
95 16 Paul Bauer
* edit index.rst to include new version/updated point release
96 16 Paul Bauer
* check that top-level-make-and-deploy.sh script does what it should do and if necessary update the script (example below)
97 16 Paul Bauer
<pre>
98 16 Paul Bauer
#!/bin/bash
99 16 Paul Bauer
set -x
100 16 Paul Bauer
user=pbauer
101 16 Paul Bauer
102 18 Paul Bauer
deploymentlocation=${user}@www:/var/www/manual
103 16 Paul Bauer
104 16 Paul Bauer
# Re-make the top-level documentation for all versions
105 16 Paul Bauer
make html
106 16 Paul Bauer
107 16 Paul Bauer
# Ensure useful read permissions when placing on a server
108 16 Paul Bauer
upload="rsync -avP --chmod=u+rwX,g+rwX,o+rX"
109 16 Paul Bauer
$upload -av _build/html/ $deploymentlocation/ --exclude _sources --exclude .buildinfo --exclude objects.inv
110 16 Paul Bauer
</pre>
111 19 Paul Bauer
* run script in top level of bitbucket repository
112 16 Paul Bauer
* check that website has been updated correctly
113 21 Paul Bauer
* upload source code archive and manual to their respective entries on Zenodo, check that entries are correct and publish
114 16 Paul Bauer
115 2 Mark Abraham
* post on gmx-users and gmx-announce.
116 3 Mark Abraham
* post on Google+ and Facebook pages
117 2 Mark Abraham
* thank gmx-developers
118 2 Mark Abraham
* bump/close/update open redmine issues
119 2 Mark Abraham
* close completed redmine versions
120 2 Mark Abraham
* beer
121 2 Mark Abraham
122 20 Mark Abraham
If we need to update the HTTP redirections from gerrit.gromacs.org to actually download regressiontests tarballs from ftp.gromacs.org, then someone needs to ssh into gerrit.gromacs.org, sudo edit @/etc/apache2/sites-enabled/regressiontests_redirections@ accordingly, and (ideally when gerrit is quiet) @service apache2 restart@.
123 2 Mark Abraham
124 1 Mark Abraham
TODO some recent examples of post-release emails
125 15 Mark Abraham
126 15 Mark Abraham
127 15 Mark Abraham
To make this work, mark and pbauer are members of www group on www.gromacs.org (which is still running some old OS that can support the old WWW server software), and ftpadmins on ftp.gromacs.org, and the respective directories have write permissions for that group. TODO update the above logic to make sure that rsync sets the group attributes to those groups.