Reorganise the repository branches for v5: archive-v4 and dev (v5 code)
馃搮 UPDATED: 2026-09-16
Context and motivation
Version 5 will soon become the main development version of Fluent UI Blazor.
dev currently contains the version 4 codebase.
dev-v5 contains the upcoming version 5 codebase.
The repository will keep dev as its default branch and replace its content with the version 5 codebase.
The existing version 4 codebase will first be preserved in archive-v4.
Target branch structure
archive-v4: version 4 maintenance.
dev: default branch and active version 5 development.
Action plan
1. Prepare dev for the v4 archive
2. Create archive-v4
3. Prepare dev-v5 for its future dev name
4. Merge the v5 history and content into dev
## ---
git fetch origin
git switch dev-v5
git pull --ff-only origin dev-v5
git switch dev
git pull --ff-only origin dev
git merge dev-v5 --allow-unrelated-histories --no-commit
git restore --source=dev-v5 --staged --worktree -- .
git commit -m "Merge dev-v5 into dev and adopt its content"
## ---
# Identical content
git diff --exit-code dev-v5
# All commits in dev-v5 are accessible from dev
git merge-base --is-ancestor dev-v5 dev
# If both commands return the code 0, push dev:
git push origin dev
# Create a branch for the future PR
git switch -c merge-dev-v5-into-dev
git push -u origin merge-dev-v5-into-dev
# Create the PR
gh pr create --base dev --head merge-dev-v5-into-dev --title "Merge dev-v5 into dev and adopt its content" --body "Merge dev-v5 history into dev and adopt its current content."
# Merge it into dev
gh pr merge merge-dev-v5-into-dev --repo microsoft/fluentui-blazor --merge --delete-branch --admin
## ---
# Verify the result
git switch dev
git pull --ff-only origin dev
git merge-base --is-ancestor dev-v5 dev
5. Verify branch protection and repository settings
6. Verify pull requests
7. Update external services
8. Validate the migration
9. Remove obsolete branches
git fetch origin
git switch main
git pull --ff-only origin main
git merge origin/dev --no-commit --no-ff
git restore --source=origin/dev --staged --worktree -- .
git commit -m "Merge dev into main and adopt its content"
# Validations
git diff --exit-code HEAD origin/dev
git merge-base --is-ancestor origin/dev main
git push origin main
10. Notify contributors
11. Resume development
12. Rollback readiness
Reorganise the repository branches for v5:
archive-v4anddev(v5 code)馃搮 UPDATED: 2026-09-16
Context and motivation
Version 5 will soon become the main development version of Fluent UI Blazor.
devcurrently contains the version 4 codebase.dev-v5contains the upcoming version 5 codebase.The repository will keep
devas its default branch and replace its content with the version 5 codebase.The existing version 4 codebase will first be preserved in
archive-v4.Target branch structure
archive-v4: version 4 maintenance.dev: default branch and active version 5 development.Action plan
1. Prepare
devfor the v4 archivedevanddev-v5.devtoarchive-v4.archive-v4as the v4 maintenance branch.2. Create
archive-v4archive-v4from the latest commit ondev:git switch -c archive-v4archive-v4to the Microsoft repository.devandarchive-v4point to the same commit before continuing.archive-v4against accidental deletion or force pushes.3. Prepare
dev-v5for its futuredevnamedev-v5todev.devas the v5 development branch.dev-v5references in documentation, contribution instructions, scripts, badges, and links.dev-v5after the final preparation changes are merged.4. Merge the v5 history and content into
devdevanddev-v5branches in a dedicated clean clone.dev-v5intodevwith--allow-unrelated-historiesbecause the branches have no common ancestor.dev-v5before committing.devcontent is identical todev-v5.dev, using an approved temporary protection bypass if required.5. Verify branch protection and repository settings
devremains the GitHub default branch.devfor v5 development.archive-v4for v4 maintenance.dev - Restrict deletionsruleset still applies correctly.dev-v5only when it is ready to be deleted.6. Verify pull requests
devtoarchive-v4.dev-v5todev.7. Update external services
devas the Azure Static Web Appsproduction_branch.dev.archive-v4.8. Validate the migration
archive-v4.dev.devstill has the exact content ofdev-v5.dev-v5history is an ancestor of the newdevhistory.9. Remove obsolete branches
dev-v5after all pull requests have been retargeted and validation has completed.mainas the release branch for version 5devandarchive-v4.10. Notify contributors
devremains the default branch and now contains version 5.archive-v4is the version 4 maintenance branch.git fetch --pruneand update their local branches.devandarchive-v4from the Microsoft repository and publish them to their forks.dev.11. Resume development
archive-v4.devfor all new v5 development.12. Rollback readiness
archive-v4unchanged as the preserved v4 state.dev-v5until the migration has been fully validated.devhistory.