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 git-flow to leverage the tools GitHub provides and also focus on release-driven development. From more details see our guide for our git branching methodology.
Migrating projects
For RAPIDS projects that are using another branching/development model, continue to develop with that approach until the next release. All development will happen on the main branch and new release branches of the format release/YY.MM will be created as part of the release process.
From this point forward you can follow the git branching & release model used by the RAPIDS team.
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 date - Consult 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.MB - Move 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.MB - The development branch will remain
main - Create release
YY.MCproject board - Notify 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 date - Communicate 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
maindevelopment - Respond promptly to operations if any issues are found with the
YY.MBrelease
Operations
- Beginning of the
code freeze dateannounce the code freeze ofrelease/YY.MB - The development branch will remain
main - Create
YY.MBrelease tracking project board - Notify 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 date - Consult 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 PRs - Assist operations team in testing and verifying documentation in release
YY.MBPR - Review release
YY.MBfor approval - Help operations team in spot checking the deliverables post-release
Operations
- Beginning of the
release dateannounce the release ofrelease/YY.MB - Begin 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