-
Notifications
You must be signed in to change notification settings - Fork 4
Release workflow
To signal the start of a new release, a release branch must be made.
To commit to a release branch see here.
Autoreduction releases are currently named inline with the upcoming cycle at ISIS. e.g. if the next cycle at ISIS is cycle_20_1
then the autoreduction release will be named Autoreduction-v20.1
Autoreduction software releases are currently in coordinated with ISIS facility cycles. We aim to release the most up to date version of the code base 2 weeks before an ISIS cycle starts and then have this solution deployed and tested on the production environment 1 week before the start of the cycle. The following steps that must take place during a release are, written in chronological order heading towards a release:
Let the development team know that a release branch is being created
This should be created from the current state of master and follow the naming convention defined above(git checkout -b Autoreduction-v20.1
. The first commit should be to update the version number of the software by incrementing it in the setup.py
file.
Assess the remaining 'in progress' issues in the repository and evaluate if they are critical enough that they must be in the release. Try to be strict with this decision as waiting for additional non-critical features to be developed could slow down the release process. Move all non-critical issues into the next sprint project and leave any critical issues in the current sprint.
Ensure that all team effort goes into resolving the remaining critical release issues where possible. These issues should be the top priority for all team members to complete. When these issue are complete they should be merged with the release branch.
Once all critical issues are merged, the release branch should be placed onto all development nodes and tested inline with the smoke testing documentation. Any issues that arise from this should be raised as git issues, if any of these issues are deemed critical then return to step 4.
The release branch should now be pulled onto all the production nodes and smoke tested there. Like step 5, any issues should be raised, and if critical, resolved.
When the production smoke testing is complete or during this smoke testing, customers are invited to participate in help with testing, where they will be able to test all aspects of the service not reliant on ISIS being in cycle. Prior to jobs with be manually submitted to enable customers to rerun reduction jobs etc.
Once all of the above steps are complete, we are ready to release.