Release Checklist - CSOIreland/PxStat GitHub Wiki
Checklist to perform a Release
Step 1. SVN
- Merge the Branch into the Trunk
- Right-click the
TortoiseSVN>>Check for modificationsagainst the SVN Trunk to list all changes - Update the Client version X.Y.Z in the file
client\js\app.constant.js:
const C_APP_VERSION = "X.Y.Z";
- Diff (merge where appropriate) the Server configuration files in the
server\PxStat\Web.*.config - Diff (merge where appropriate) the Server configuration files in the
server\PxStat\appsettings.*.json - Update the Server version X.Y.Z in the file
server\PxStat\Properties\AssemblyInfo.cs:
[assembly: AssemblyVersion("X.Y.Z")]
[assembly: AssemblyFileVersion("X.Y.Z")]
- Commit any above change into Trunk
- Create a Tag against the relevant version
- Create a Branch against the next relevant version
Step 2. Deployment
N.B. The following procedure must be repeated for every environment, starting from Test. If successful, then proceed with the Live one.
N.B. Take a backup of the currently deployed system.
Server Code
- Enable the maintenance mode by setting the property
API_Config.API_MAINTENANCEtotruein the appsettings.json. This is highly recommended for theLiveenvironment to freeze the application and avoid any issue during the upgrade of all Tiers (Server, Database, Client). - Publish the
servercompiled code using Visual Studio from the SVN Tag in the relevant environment
Upgrade / Migration
- Build the
upgradeprogram using Visual Studio from the SVN Tag in the relevant environment - Execute the
upgradeprogram and follow instructions on screen
Client Code
- Delete the source code in the relevant environment
- Export the
clientsource code from the SVN Tag in the relevant environment
Step 3. Verification
- Disable the maintenance mode by setting the property
API_Config.API_MAINTENANCEtofalsein the appsettings.json of the publishedLiveenvironment to unfreeze the application. - Check each environment is up and running
- Check the Application version in the page footer is updated as expected
Step 4. GitHub
- Delete the content of the
client,server,db,upgradefolder in the GitHub repository - Export the content of the
client,server,db,upgradefolder from SVN Tag in the GitHub repository - Right-click
TortoiseGit>>Check for modificationsagainst the GitHub repository to list all changes - Diff (merge where appropriate) the following Client files:
client\index.html(Pay attention to retain the white label Favicons)client\Web.configclient\js\env\app.env.js
- Diff (merge where appropriate) the following Server files:
server\Web.configserver\Web.Test.configserver\Web.Live.configserver\appsettings.jsonserver\appsettings.Test.jsonserver\appsettings.Live.jsonserver\log4net.jsonserver\log4net.Test.jsonserver\log4net.Live.json- N.B. Double-check the above files to ensure that all sensitive information have been stripped/anonymised (i.e. usernames, passwords, IP addresses, etc...)
- Diff (merge where appropriate) the following UnitTest files:
server\PxStatCore.Test\appsettings.json- N.B. Double-check the above
appsettings.jsonto ensure that all sensitive information have been stripped/anonymised (i.e. usernames, passwords, IP addresses, etc...)
- Add / Delete any relevant file where appropriate across the
client,server,dbfolder - Commit the GitHub changes and list the Issues into the commit message
- Push the GitHub changes
- N.B. This operation is irreversible, DO NOT push unless 100% sure of having stripped/anonymised all sensitive information.
- Create a new Release and list all the Issues with the label
testedagainst the relevant Milestone.
- Group the Issues by their type for better visibility: Enhancement, Bug, Security Vulnerability if any are present.
- Add the label
releasedto all the above Issues and mark them asclosed. - Close the relevant Milestone and create the next one.