Skip to content

feat(ci): auto forward-port v5 merge-train PRs to next - #24848

Merged
PhilWindle merged 1 commit into
nextfrom
pw/auto-forward-port-v5-merge-trains
Jul 22, 2026
Merged

feat(ci): auto forward-port v5 merge-train PRs to next#24848
PhilWindle merged 1 commit into
nextfrom
pw/auto-forward-port-v5-merge-trains

Conversation

@PhilWindle

Copy link
Copy Markdown
Contributor

Problem

next was cut from a reshaped snapshot of v5-next, so the daily whole-branch merge (port-v5-next-to-next.yml) fights ~300 byte-level false conflicts against next's reshaped history and never converges. Genuinely-new v5 work is a small, recent set, but it drowns in that noise.

Change

Replace the whole-branch merge with per-PR forward-porting, reusing the existing port-to-nextbackport.ymlport-to-next-staging pipeline:

  • auto-port-v5-merge-trains.yml (new): on open, label every PR into a merge-train/*-v5 branch with port-to-next, so backport.yml cherry-picks it individually when it merges. Opt out by removing the label before merge.
  • backport_to_staging.sh: skip empty cherry-picks (change already in next — e.g. a next→release backport bounced back) instead of reporting a false conflict; and when the target is next, skip release-line artifacts (release bumps, per-release upgrade/deploy scripts, regenerated fixtures, v5-merge plumbing).
  • port-v5-next-to-next.yml: disable the superseded daily schedule; keep workflow_dispatch as a manual drift-check.

Individual-PR granularity keeps each conflict small (one PR against next, resolved by the existing ClaudeBox path) instead of one unreviewable 300-file blob.

New release lines need their train pattern added to the labeler (e.g. merge-train/*-v6).

@PhilWindle
PhilWindle requested a review from charlielye as a code owner July 21, 2026 16:12
This was referenced Jul 21, 2026
# shellcheck disable=SC2254
case "$f" in $g) matched=1; break ;; esac
done
[[ $matched -eq 0 ]] && { ALL_EXCLUDED=0; break; }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ok so this looks for at least one file that needs to be ported.

## Problem

`next` was cut from a reshaped snapshot of `v5-next`, so the daily whole-branch merge (`port-v5-next-to-next.yml`) fights ~300 byte-level false conflicts against `next`'s reshaped history and never converges. Genuinely-new v5 work is a small, recent set, but it drowns in that noise.

## Change

Replace the whole-branch merge with per-PR forward-porting, reusing the existing `port-to-next` → `backport.yml` → `port-to-next-staging` pipeline:

- **`auto-port-v5-merge-trains.yml`** (new): on open, label every PR into a `merge-train/*-v5` branch with `port-to-next`, so `backport.yml` cherry-picks it individually when it merges. Opt out by removing the label before merge.
- **`backport_to_staging.sh`**: skip empty cherry-picks (change already in `next` — e.g. a next→release backport bounced back) instead of reporting a false conflict; and when the target is `next`, skip release-line artifacts (release bumps, per-release upgrade/deploy scripts, regenerated fixtures, v5-merge plumbing).
- **`port-v5-next-to-next.yml`**: disable the superseded daily schedule; keep `workflow_dispatch` as a manual drift-check.

Individual-PR granularity keeps each conflict small (one PR against `next`, resolved by the existing ClaudeBox path) instead of one unreviewable 300-file blob.

New release lines need their train pattern added to the labeler (e.g. `merge-train/*-v6`).
@AztecBot
AztecBot force-pushed the pw/auto-forward-port-v5-merge-trains branch from a6ed8c2 to 010569d Compare July 22, 2026 11:02
@PhilWindle
PhilWindle added this pull request to the merge queue Jul 22, 2026
Merged via the queue into next with commit cc4f066 Jul 22, 2026
19 checks passed
@PhilWindle
PhilWindle deleted the pw/auto-forward-port-v5-merge-trains branch July 22, 2026 11:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants