pre-release checklist

part 1

First make sure that all necessary changes are already committed into the repository:

Make sure you have the right branch checked out and that no pending changes are in the working copy:

git status

If the new release should have any release notes, make sure these appear both in wwwroot/inc/upgrade.php and in README.

Update ChangeLog file to have the current date on the to-be version line.

Make sure that upgrade.php has the to-be version listed in $versionhistory and getUpgradeBatch(). It is normal to accumulate updates in getUpgradeBatch() long before the release, this way on the release day you will have nothing to do in upgrade.php. But if you had no changes to DB since the last release, you are likely to see there changes missing. Just make sure the new version is in both places anyway.

Bump up CODE_VERSION in wwwroot/inc/config.php. DON'T do this unless you really intend to make a release right now.

Demo data must be loadable without any errors (this is likely to be OK since this check is now in the Travis CI script):

mysql racktables_db < scripts/init-sample-racks.sql

The release being tested must detect and upgrade a database from the previous release(s) correctly. Load the database with one of the previous releases data, then upgrade it with the current upgrader, then dump the DB. Now compare to the previous dump, there must be no meaningful differences.

part 2 (unit testing)

The commands below need some proofreading because the test data files in the source code tree still use the racktables MySQL username, which I had for this reason used for the 0.20.12 release. Whatever is the agreed username, it probably should be consistent with what is in the SQL dumps. -- Denis

Setup a fresh database and grant access to the 'racktables_user' user. This will be used to create a sample data file that unit tests can utilize.

DROP DATABASE IF EXISTS racktables_unittest;
CREATE DATABASE racktables_unittest CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON racktables_unittest.* TO racktables_user@localhost IDENTIFIED BY 'MY_SECRET_PASSWORD';

Use the web interface to complete the installation. When prompted to set the admin password, enter 'admin'.

Hover the big green "download" button and watch the mouse hint featuring the right version number (sometimes it takes several minutes to see the update).

Tip: to update the banner text below the file list of the SF's "Files" section open a terminal connection to SF shell and edit the file /home/frs/project/racktables/README.md (once done, let the SF 5-10 minutes to start using the updated revision).

updating Mantis

In MantisBT mark the released version as released (Manage, Manage Projects, RackTables, Versions). Add the next version with the release date several months into the future.