-
Couldn't load subscription status.
- Fork 1.9k
Inflight Branch Process
To ensure a smooth development process, .NET MAUI follows a structured branching strategy with two active branches at all times:
- Current – The ongoing development branch where new features and fixes are continuously merged.
-
Candidate – The stabilization branch that prepares for merging into
main.
This system improves testing reliability and prevents unstable changes from affecting the main branch prematurely.
-
Sync inflight/current with main
- Regularly rebase inflight/current on main to keep it up to date.
-
Create inflight/candidate from inflight/current
- When
candidateis needed for stabilization, it is branched fromcurrent.
- When
-
Continue merging PRs into inflight/current
- While
candidatestabilizes, ongoing development continues incurrent.
- While
-
Merge inflight/candidate into main
- Once
candidateis stable, it gets merged intomain.
- Once
-
Delete inflight/candidate
- After merging, the
candidatebranch is removed.
- After merging, the
-
Rebase inflight/current on main
- Ensures
currentreflects all changes frommain.
- Ensures
-
Create new inflight/candidate from inflight/current
- The cycle repeats for the next set of releases.
Many PRs get lost while waiting for CI, delaying testing and validation. This workflow shifts the review process to the beginning, ensuring that:
- PRs are tested earlier in development.
- The main branch remains stable until inflight branches are fully validated.
- PRs move through the pipeline more efficiently with proper CI checks.
-
Most PRs should target
main, and the team will handle retargeting toinflight/currentif necessary. -
PRs addressing candidate stability should target
inflight/candidateuntil it is stable and ready to merge intomain. -
Syncfusion manages much of the monitoring and stabilization efforts for
candidate.
- Every PR is reviewed by a core team member before merging.
- Approved PRs are retargeted to
inflight/current, where CI testing runs. - Only stabilization-related PRs are merged into
inflight/candidate.
- The nightly feed depends on
mainandinflight/current, so fixing build errors here is critical. - If
inflight/candidatedoesn't require immediate fixes, prioritize stabilizingcurrentby addressing failing tests.
- If a PR breaks
candidateand takes too long to fix, revert it and resolve the issue separately. - When fixing a flakey test, check how it behaves in
main. If mergingcandidateintomaindoesn't change behavior, defer the fix tocurrent.
-
All PRs are reviewed by a .NET MAUI engineer before merging into
inflight/current. - Merged PRs undergo CI testing alongside other PRs and internal validation.
-
After one week,
inflight/currenttransitions intoinflight/candidate, where only stabilization PRs are accepted. -
Once
candidatepasses internal testing and CI, it merges intomain, ensuring a stable release.