Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions releases/hotfix.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Operations
### See also

* [Hotfix versioning]({% link resources/versions.md %})
* [Major and minor releases]({% link releases/process.md %})
* [Releases]({% link releases/process.md %})

## Hotfixes

Expand Down Expand Up @@ -58,19 +58,19 @@ Also consider the timing of when the next release is scheduled. If the freeze or
### Process

**NOTE:** The processes below use these releases as examples:
- Current release `M.A.X`
- Next minor release `M.B.0` (where `B=A+1`)
- Next patch release `M.A.Y` (where `Y=X+1`)
- Current release `YY.MA.X`
- Next release `YY.MB.0` (where `MB=MA+2`)
- Next patch release `MM.MA.Y` (where `Y=X+1`)

Developers
{: .label .label-green}
1. Hotfix issues will be assigned to you
2. Create your branch from the `branch-M.A` branch
2. Create your branch from the `release/YY.MA` branch
3. Implement the fix succinctly
1. Change the minimal amount of code required
2. Update related documentation and unit tests
3. It is acceptable to implement a quick fix and open a new issue for a more in depth solution
4. Once complete, create a pull request targeting `branch-M.A`
4. Once complete, create a pull request targeting `release/YY.MA`
5. Notify the project lead

Project Leads
Expand All @@ -86,9 +86,9 @@ Operations
{: .label .label-purple}
1. Once notified by a Project Lead, review the pull request
2. Begin testing of conda and containers for correctness and functionality
3. Review documentation to ensure version numbers (updating to `M.A.Y`) and instructions are correct
4. Merge the developer's PR targeting `branch-M.A` after approval
5. Create a new PR from `branch-M.A` targeting `main`
3. Review documentation to ensure version numbers (updating to `YY.MA.Y`) and instructions are correct
4. Merge the developer's PR targeting `release/YY.MA` after approval
5. Create a new PR from `release/YY.MA` targeting `main`
Comment on lines +89 to +91
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the main section I have questions about... after we cut the official release, are the hotfix PRs that are merged into the release/YY.MAI see a couple scenarios here but need some clarification

    1. hotfix gets merged back into main via the forward merger
    1. cherry pick from release/YY.MA back into main
    1. separate forward-port (?) PR into main

@AyodeAwe you are probably the best person to help answer this.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hotfix process for 25.12 (for example):

  1. Create hotfix/25.12 branch from ^v25.12.00 (commit BEFORE the tag)
  2. Apply fix on hotfix branch
  3. Open PR: hotfix/25.12release/25.12 and merge
  4. Open PR: hotfix/25.12main and merge

Step 4 can also be to simply cherry pick from release/25.12 into main, I think it achieves the same outcome.

Also note that the forward merger bot does not act if it sees that the branch has already been released (i.e if it sees the release tag)

6. Merge the PR targeting `main` after review and approval
7. Monitor process of automated tools
8. Spot check deliverables to ensure correctness