Release Process#
Overview#
Summary of the RAPIDS release process.
Intended audience#
Project Leads
Operations
See also#
Git branching model#
RAPIDS uses a custom git branching model, adapted from OneFlow to leverage the tools GitHub provides and also focus on release-driven development.
Release Dates#
For all releases, there are a few key dates that need to be known well in advance:
Burn down dateCode freeze dateRelease date
The burn down date will always be several days before the code freeze date which in turn is several days before the release date. This is to ensure there is enough time to finish active development, and to handle any unknown bugs/issues.
Hotfixes#
Hotfixes have their own process and are described here.
Burn down#
Burn down is the process of locking down all issues slated for the release and moving issues not in this release to the following release. Additionally, all pending pull requests should be reviewed and aim to be merged before the code freeze date.
Timing#
For the selection of a burn down date, the general guidelines should be followed:
Choose a
burn down dateat least 3 business days before acode freeze dateConsult project leads to ensure key features will make the release with the anticipated date
Communicate the decided
burn down dateto the development team immediately to ensure they can meet the deadline
Burn down ends at 11:59 PM PT on the final day of the process.
Process#
NOTE: The processes below use the current release of YY.MA, the next release of YY.MB and future release YY.MC (where MB=MA+2, MC=MB+2) for examples.
Project Leads
Beginning of the
burn down dateremind development team to stop accepting new issues for theYY.MBrelease (unless they are critical bugs/issues)Work to merge existing pull requests targeting
YY.MBMove any pull requests or issues that are no longer a part of the
YY.MBrelease to theYY.MCproject board or backlog (for backlog remove the issue from the project board)
Operations
Beginning of the
burn down dateannounce the burn down ofrelease/YY.MBThe development branch will remain
mainCreate release
YY.MCproject boardNotify project leads process is complete
Also see the Burn down guide
Code freeze#
Code freeze is the process when the release undergoes thorough testing. Pull requests are no longer accepted into the development branch. An exception may be made for hotfix issues. All pull requests from Burn Down should be merged before Code Freeze begins or be moved to the next release.
Timing#
For the selection of a code freeze date, the general guidelines should be followed:
Choose a
code freeze dateat least 3 business days before therelease dateCommunicate the decided
code freeze dateto the development team immediately to ensure they can meet the deadline
Code freeze begins at 12:00AM PT the day immediately after Burn Down ends.
For example, if Burn down runs from Wednesday Feb 3rd until Tuesday Feb 9th, then Burn down ends at 11:59PM PT on Feb 9th and Code Freeze begins 12:00AM PT Feb 10th.
Process#
NOTE: The processes below use the current release of YY.MA, the next release of YY.MB and future release YY.MC (where MB=MA+2, MC=MB+2) for examples.
Generally the process for Code Freeze occurs around 10:00AM PT on the first day of Code Freeze.
Project Leads
Inform operations team of any new release artifacts (packages, wheels, containers) no later than 2 weeks prior to burndown
Move any open pull requests targeting
release/YY.MBto targetmaininstead.Wait for confirmation from operations on the branch switch
Continue
maindevelopmentRespond promptly to operations if any issues are found with the
YY.MBrelease
Operations
Beginning of the
code freeze dateannounce the code freeze ofrelease/YY.MBThe development branch will remain
mainCreate
YY.MBrelease tracking project boardNotify project leads process is complete
Releasing#
Timing#
For the selection of a release date, the general guidelines should be followed:
Choose a
release dateat least 3-4 weeks from the previousrelease dateConsult project leads to ensure key features will make the release with the anticipated date
Communicate the decided
release dateto the development team immediately to ensure they can meet the deadline
Process#
NOTE: The processes below use the current release of YY.MA, the next release of YY.MB and future release YY.MC (where MB=MA+2, MC=MB+2) for examples.
Project Leads
Beginning of the
release datework with developers to close all outstanding issues and PRsAssist operations team in testing and verifying documentation in release
YY.MBPRReview release
YY.MBfor approvalHelp operations team in spot checking the deliverables post-release
Operations
Beginning of the
release dateannounce the release ofrelease/YY.MBBegin testing of conda, containers, and notebooks for correctness and functionality
Work with development team to close outstanding PRs
Review documentation to ensure version numbers and instructions are correct
Enlist project reviewers to approve the release PR
Monitor process of automated tools
Spot check deliverables to ensure correctness