Skip to content

Adopt arcade inter-branch merge workflow for main → net10.0 and main → net11.0#34144

Merged
PureWeen merged 7 commits intomainfrom
copilot/review-inter-branch-merge-workflow
Feb 21, 2026
Merged

Adopt arcade inter-branch merge workflow for main → net10.0 and main → net11.0#34144
PureWeen merged 7 commits intomainfrom
copilot/review-inter-branch-merge-workflow

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Feb 19, 2026

Note

Are you waiting for the changes in this PR to be merged?
It would be very helpful if you could test the resulting artifacts from this PR and let us know in a comment if this change resolves your issue. Thank you!

Adopts the shared dotnet/arcade inter-branch merge infrastructure (used by 20+ dotnet repos including runtime, aspnetcore, sdk, efcore, msbuild) to replace our custom weekly schedule-based workflow and manual merge script.

Changes

  • New .github/workflows/merge-main-to-net10.yml — merges mainnet10.0 using arcade
  • New .github/workflows/merge-main-to-net11.yml — merges mainnet11.0 using arcade
  • New github-merge-flow-net10.jsonc — config for main → net10.0
  • New github-merge-flow-net11.jsonc — config for main → net11.0
  • Removed .github/workflows/weekly-branch-merge.yml — replaced by above
  • Removed .github/scripts/MergeBranchAndCreatePR.ps1 — no longer needed

Why two workflows?

The arcade infrastructure supports one MergeToBranch per source branch per config file. To merge main into both net10.0 and net11.0 independently (not chained), we use two workflows with separate config files.

How it works

  1. A PR merges to main
  2. Both workflows trigger simultaneously
  3. Each creates (or updates) a merge PR: merge/main-to-net10.0net10.0 and merge/main-to-net11.0net11.0
  4. The merge PRs wait for human review — nothing is auto-merged
  5. ResetToTargetPaths auto-resets version files (global.json, eng/Versions.props, etc.) to avoid common conflicts

Triggers

Trigger Purpose
push to main Immediate — runs on every merge to main
schedule (daily 3 AM UTC) Safety net — catches missed push events
workflow_dispatch Manual — run on-demand from Actions UI

Comparison

Old New
Trigger Weekly cron (Mondays) On push + daily cron + manual
Merge topology Custom script Arcade shared infrastructure
Version file conflicts Manual resolution ResetToTargetPaths auto-resets
Maestro-only commits Creates PR anyway Skipped automatically
Notifications Default @-mentions -QuietComments suppresses noise
Existing PR handling Fails if PR exists Updates existing PR in place
Maintenance Custom MAUI-only script Centralized in arcade, shared across 20+ repos

Adopt the shared dotnet/arcade inter-branch merge infrastructure used by
16 dotnet repos (runtime, aspnetcore, sdk, efcore, msbuild, wpf, etc.).

Key improvements over weekly-branch-merge.yml:
- Event-driven (push) instead of schedule-based (weekly)
- ResetToTargetPaths auto-resets version files to avoid merge conflicts
- Centralized scripts maintained by dotnet/arcade team
- QuietComments reduces notification noise
- Skips PRs for Maestro-only commits
- Detailed PR body with merge/conflict resolution instructions

Merge flow: main → net10.0 → net11.0

Co-authored-by: PureWeen <5375137+PureWeen@users.noreply.github.com>
Copilot AI changed the title [WIP] Review merging workflow from dotnet/sdk repository Replace weekly branch merge with arcade inter-branch merge workflow Feb 19, 2026
Copilot AI requested a review from PureWeen February 19, 2026 21:12
PureWeen and others added 4 commits February 20, 2026 11:57
The arcade inter-branch merge workflow handles all merge automation.
The manual script is no longer needed.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Instead of chaining main→net10.0→net11.0, use two separate
workflows so both branches merge directly from main.
Each workflow has its own config file pointing to its target branch.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Matches the pattern used by dotnet/macios. If a push event
is missed or the workflow fails, the daily cron catches up.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Allows running merge workflows on-demand from the GitHub Actions UI.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@PureWeen PureWeen marked this pull request as ready for review February 20, 2026 18:28
Copilot AI review requested due to automatic review settings February 20, 2026 18:28
@PureWeen PureWeen changed the title Replace weekly branch merge with arcade inter-branch merge workflow Adopt arcade inter-branch merge workflow for main → net10.0 and main → net11.0 Feb 20, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR replaces the custom weekly schedule-based branch merge workflow with the shared dotnet/arcade inter-branch merge infrastructure, aligning MAUI with 16 other .NET repositories. The change moves from scheduled weekly merges to event-driven merges triggered on push to main, with added features like automatic version file conflict resolution and reduced GitHub notification noise.

Changes:

  • Replaces scheduled weekly merge workflow with two event-driven arcade-based workflows
  • Adds configuration files for merge automation with version file auto-reset capabilities
  • Removes custom PowerShell merge script (contrary to PR description stating it's kept)

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
.github/workflows/merge-main-to-net10.yml New workflow using arcade infrastructure to merge main → net10.0 on push events
.github/workflows/merge-main-to-net11.yml New workflow using arcade infrastructure to merge main → net11.0 on push events
github-merge-flow-net10.jsonc Configuration for main → net10.0 merge with version file reset paths
github-merge-flow-net11.jsonc Configuration for main → net11.0 merge with version file reset paths
.github/workflows/weekly-branch-merge.yml Removed weekly scheduled merge workflow
.github/scripts/MergeBranchAndCreatePR.ps1 Removed custom merge script (contradicts PR description claiming it's kept)
Comments suppressed due to low confidence (1)

.github/scripts/MergeBranchAndCreatePR.ps1:1

  • The PR description states "Kept .github/scripts/MergeBranchAndCreatePR.ps1 — still available for manual/ad-hoc merges", but the diff shows this entire file is being removed. Either the PR description needs to be updated to reflect that the script is being removed, or the script should be kept if it's truly needed for manual merges. Please clarify the intention and update accordingly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Member

@jonathanpeppers jonathanpeppers left a comment

Choose a reason for hiding this comment

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

AI 🤖 seems OK with this:

Thanks for moving this to the arcade inter-branch merge flow. The implementation looks aligned with the stated goal (split workflows for main→net10.0 and main→net11.0, remove the old weekly/script path, and use push + cron + manual triggers).

Minor follow-up:

The old manual source/target/dry-run flexibility is gone with the script removal. If intentional, it would help to call out that operational tradeoff in the PR description.

Doesn't seem like we'd need dry-run.

@PureWeen PureWeen merged commit 5219b88 into main Feb 21, 2026
27 checks passed
@PureWeen PureWeen deleted the copilot/review-inter-branch-merge-workflow branch February 21, 2026 05:09
TamilarasanSF4853 pushed a commit to TamilarasanSF4853/maui that referenced this pull request Mar 2, 2026
…→ net11.0 (dotnet#34144)

<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

Adopts the shared `dotnet/arcade` inter-branch merge infrastructure
(used by 20+ dotnet repos including runtime, aspnetcore, sdk, efcore,
msbuild) to replace our custom weekly schedule-based workflow and manual
merge script.

### Changes

- **New** `.github/workflows/merge-main-to-net10.yml` — merges `main` →
`net10.0` using arcade
- **New** `.github/workflows/merge-main-to-net11.yml` — merges `main` →
`net11.0` using arcade
- **New** `github-merge-flow-net10.jsonc` — config for main → net10.0
- **New** `github-merge-flow-net11.jsonc` — config for main → net11.0
- **Removed** `.github/workflows/weekly-branch-merge.yml` — replaced by
above
- **Removed** `.github/scripts/MergeBranchAndCreatePR.ps1` — no longer
needed

### Why two workflows?

The arcade infrastructure supports one `MergeToBranch` per source branch
per config file. To merge `main` into both `net10.0` and `net11.0`
independently (not chained), we use two workflows with separate config
files.

### How it works

1. A PR merges to `main`
2. Both workflows trigger simultaneously
3. Each creates (or updates) a merge PR: `merge/main-to-net10.0` →
`net10.0` and `merge/main-to-net11.0` → `net11.0`
4. The merge PRs wait for human review — nothing is auto-merged
5. `ResetToTargetPaths` auto-resets version files (`global.json`,
`eng/Versions.props`, etc.) to avoid common conflicts

### Triggers

| Trigger | Purpose |
|---|---|
| `push` to `main` | Immediate — runs on every merge to main |
| `schedule` (daily 3 AM UTC) | Safety net — catches missed push events
|
| `workflow_dispatch` | Manual — run on-demand from Actions UI |

### Comparison

| | Old | New |
|---|---|---|
| Trigger | Weekly cron (Mondays) | On push + daily cron + manual |
| Merge topology | Custom script | Arcade shared infrastructure |
| Version file conflicts | Manual resolution | `ResetToTargetPaths`
auto-resets |
| Maestro-only commits | Creates PR anyway | Skipped automatically |
| Notifications | Default @-mentions | `-QuietComments` suppresses noise
|
| Existing PR handling | Fails if PR exists | Updates existing PR in
place |
| Maintenance | Custom MAUI-only script | Centralized in arcade, shared
across 20+ repos |

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: PureWeen <5375137+PureWeen@users.noreply.github.com>
Co-authored-by: Shane Neuville <shneuvil@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions github-actions bot locked and limited conversation to collaborators Mar 23, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants