Add GitHub Action to track forward-ports from stable branches to RC#4375
Conversation
🚨🚨🚨 Docs migration in progress 🚨🚨🚨We are actively migrating UI extension reference docs to MDX in the
During this migration, please be aware of the following:
Doc comments in Examples that previously lived in this repo are being moved to the What should I do?
Thanks for your patience while we complete the migration! 🙏 |
1b63916 to
18a338c
Compare
18a338c to
0554d53
Compare
andrewmcgov
left a comment
There was a problem hiding this comment.
Thanks for adding this!
Will this still run on older branches even if the workflow is only in 2026-07-rc?
|
@andrewmcgov I'm not sure... For now I've actually built it in a way what it only flags PRs if you are adding to the latest stable branch because I want to avoid that people get pinged for every PR when they backport e.g. a bugfix a bunch of versions |
0554d53 to
2297ab9
Compare
|
@robin-drexler I think thats fine - the bulk of work right now will only be on the latest versions |
Tags PRs against stable branches (20XX-XX) with `needs-rc-port` and auto-removes the label when a PR merging into the current RC branch references it via "Forward-port of #X" in its body. Co-authored-by: Wendy Liu <wendy.liu@shopify.com>
2297ab9 to
7e7ae4d
Compare
Summary
Sometimes folks merge PRs to a stable branch (e.g.
2026-04) but forget to forward-port to the current RC (2026-07-rc). When the RC becomes the next stable, those changes could get silently missing and it is a lot of effort to find them close to the release. We can't catch this by comparing commits either sicne the RC has often diverged enough that the patch is genuinely different.This adds a GitHub Action that does two things:
20XX-XX) → tag withneeds-rc-portand post a comment with copy-paste reference snippets pointing at the current RC.20XX-XX-rc) → parse the body forForward-port of #Xreferences, remove the label from each referenced PR, and post aForward-ported in #Yconfirmation comment back on the original.Open debt is just
is:pr label:needs-rc-port. If a change is genuinely stable-only, a maintainer can drop the label by hand.Once we have the labels, we can build tooling and dashboards to catch missed PRs earlier and ping folks to take care of them.
Flow
--- config: theme: neutral --- flowchart TD A([PR opened against stable branch e.g. 2026-04]) --> B[Bot adds needs-rc-port label] B --> C[Bot posts comment with reference templates] C --> D[PR merged into stable branch] D --> E{Forward-port needed?} E -->|yes| F[Author opens forward-port PR<br/>against current RC e.g. 2026-07-rc] F --> G[PR body includes: Forward-port of #X] G --> H[Forward-port PR merged] H --> I[Bot parses body, finds referenced PR] I --> J[Bot removes needs-rc-port label] J --> K[Bot posts: Forward-ported in #Y] E -->|no, stable-only change| L[Maintainer removes label manually] style B fill:#fff4cc,stroke:#d4a72c style C fill:#fff4cc,stroke:#d4a72c style I fill:#fff4cc,stroke:#d4a72c style J fill:#fff4cc,stroke:#d4a72c style K fill:#fff4cc,stroke:#d4a72cEditable on mermaid.shopify.io: https://mermaid.shopify.io/edit#pako:eNqNk0FP4zAQhf_KKL2AVAOqKpAixIq2FFpAQhWHXaU9OPY4iXDsynaoorb_HccJbHtBPeSU78178ybZRkxzjOKIELJUTCtRZPFSAbgcS4xBYeUMlUsV3gupNyynxsH7pIEA7s-StwXoNSrkQDNaKOvAOppKhNRQxXLAi-wCBleDa3I1XJ0DIXcwSkbaAeXcegPklhhG1tqPlTRFuWpHjwI6DuhaW2eB6bJE5WBTuBwMCjSoGILDci2pQ9sJx0E4aYKVaDIfrFBOH6fq0ElAH7ZTbTbU8DZEEwn5n32LPDTIrka7g2lyX7lcm7CvBXEoelvcpuby7rsCVhnTRF2MD_e_8Yt2ztPg_NiETDWvfUQmK442hqMsWkDvbyd5DJKnZHrs2y3ZQU8BmrWtUWPRhvl9EIXydf-0xr2yk8yCZB4kBkv9ib-dZR7o5_9nOU4c2obev9Vhe0r3u_qJVrIG_w2pDHfwkrz6upx_0PxYBzMoqaqolLWf006yrvbXG_k9pIx7QoghY33rjP7AuMeH9GbADsHxqeDsVHB-Kvj8Oxj1I3-xkhY8irdR-M_8_8dR0Eq6aL__Ata5KYk
🎩
I'm afraid we'll have to merge it to test it. I'm not aware of a way to easily test this without creating a fork etc.
Since this is low risk and impact, I think it's fine to merge, test and adjust.