Skip to content

Inflight Branch Process

Shane Neuville edited this page Apr 9, 2025 · 7 revisions

In Flight Branch Management

The process involves approving PRs and merging them into the test flight branch, conducting daily tests, and stabilizing the branch before merging it into the main branch.

Introduction:

We are implementing this process because too many PRs get lost in the shuffle while waiting for CI, and they don't get internally validated from our internal testing until too late. The point of this process is to shift reviewing to be the first step. Once a PR has passed that stage, we can merge it to the test flight branch, where it will have to pass CI and manual testing. Once that has all happened, we then merge it to the main branch. The hope here is that we will get more PRs in, and they will be better tested once they get to the main branch. This also lets us insulate the main branch until the in-flight branch has demonstrated that it isn't flakey.

Key Points:

  • PR Review Process: PRs are approved and merged into the in flight branch.
  • Merge Requirements: Branch has passed CI and internal testing before merging with main
  • Flakey Tests: Strategies to manage flakey tests and reduce their impact on our main branch.

What Branch Should my PR target?

  • For the most part all PRs should still just target main. We will just retarget your PR and merge it into the inflight branch
  • If a PR is fixing something that was only merged into one of the inflight branches, then it will target that branch. For example, once we have a candidate branch, the goal is to get the candidate branch green before merging to main. So, we will merge these PRs into the candidate branch until it is green.

Workflow

  • PRs are still all reviewed by a .NET MAUI Engineer before they are merged into the in-flight branch.
  • Once they are merged into the in-flight branch, this allows the PR to run on CI alongside all the other PRs and for the changes to be validated by internal testing earlier in the process.
  • We will move this branch to an (inflight/candidate) branch after one week, at which point the only PRs that will be accepted into inflight/candidate are PRs that are stabilizing the branch.
  • Once that PR/branch has passed all internal testing and is passing CI without being flakey, then we will merge into the main branch.
Clone this wiki locally