RSN 47 - Changes to RAPIDS branching strategy in 25.08

Author RAPIDS Ops
Status

In Progress

Topic Development Process Change
RAPIDS Version v25.08+
Created 05 May 2025
Updated N/A

Overview

RAPIDS will be migrating to a new branching strategy for the 25.08 release. The new strategy will use a single long-lived branch called main, which all pull requests should target. In preparation for a release, a release branch will be created from main and any remaining pull requests for that release should be merged into the release branch.

Releases and hot fixes will be tagged from the release branch.

This new strategy will be piloted on several RAPIDS libraries (rapidsai/rmm, rapidsai/kvikio, and rapidsai/cugraph-gnn) during the 25.08 development cycle. Migrations will begin shortly after the 25.06 release. After the 25.08 release, the new strategy will be implemented across all RAPIDS libraries.

Impact

Below is a table comparing the current and new branching strategies. Here, the current release is YY.MM (e.g. 25.06) and we denote the next release as <YY.MM-next> (e.g. 25.08).

Aspect Current (25.06) New Branching Strategy (25.08+)
Default Branch Switched per release (e.g. branch-YY.MM, then branch-<YY.MM-next>) Always main (latest and greatest)
Feature PRs Target current default branch; retarget manually if moving to a different release Always target main. During release preparation, pull requests may need to be re-targeted to the release branch.
Release Branching No specific branch, branch-YY.MM is the release branch Create release/YY.MM for releases, used during burndown & code freeze
Burndown Process branch-<YY.MM-next> is created Bump main to <YY.MM-next>.00, tag v<YY.MM-next>.00a, create branch release/YY.MM, enable forward merges from release/YY.MMmain
Code Freeze Only admin-merges to branch-YY.MM Only admin-merges to release/YY.MM
Release Merge branch/YY.MMmain; tag vYY.MM.00 on main Merge release/YY.MMmain; disable forward-merges from release/YY.MMmain; tag vYY.MM.00 on release/YY.MM
Hotfixes Cherry-pick directly onto branch-YY.MM, follow release process Create branch hotfix/YY.MM from pre-tag commit on release/YY.MM, open PRs to release/YY.MM and main, follow release process
Tooling Ops-bot for forward-mergers, release scripts Minimal custom tooling; leverage standard GitHub workflows

External repositories that depend on RAPIDS shared-workflows should be updated to use the main branch or new tags for each release. The RAPIDS team will work with external repositories to ensure a smooth transition.