Skip to content

Add GitHub Action to track forward-ports from stable branches to RC#4375

Merged
robin-drexler merged 1 commit into
2026-07-rcfrom
rc-port-tracker
Apr 29, 2026
Merged

Add GitHub Action to track forward-ports from stable branches to RC#4375
robin-drexler merged 1 commit into
2026-07-rcfrom
rc-port-tracker

Conversation

@robin-drexler
Copy link
Copy Markdown
Member

@robin-drexler robin-drexler commented Apr 28, 2026

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:

  • On PR opened against a stable branch (20XX-XX) → tag with needs-rc-port and post a comment with copy-paste reference snippets pointing at the current RC.
  • On PR merged into the RC branch (20XX-XX-rc) → parse the body for Forward-port of #X references, remove the label from each referenced PR, and post a Forward-ported in #Y confirmation 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:#d4a72c
Loading

Editable 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.

@github-actions
Copy link
Copy Markdown
Contributor

🚨🚨🚨 Docs migration in progress 🚨🚨🚨

We are actively migrating UI extension reference docs to MDX in the areas/platforms/shopify-dev zone of the monorepo. This impacts docs for the following surfaces:

During this migration, please be aware of the following:

.doc.ts files are being deprecated. Changes to .doc.ts files in this repo will not be reflected in the new MDX-based docs. If you need to update docs for a reference that has already been migrated, make your changes directly in the areas/platforms/shopify-dev zone of the monorepo instead.

Doc comments in .ts source files (the comment blocks above types and functions) are also affected. Generating docs from these comments currently requires a newer version of the @shopify/generate-docs library that isn't yet available. Updates to doc comments may not produce the expected output until the migration is complete.

Examples that previously lived in this repo are being moved to the areas/platforms/shopify-dev zone of the monorepo and should be authored there going forward.

What should I do?

  • If your PR includes changes to .doc.ts files, doc comments, or examples, please reach out to us in #devtools-proj-templated-refs so we can help ensure your updates are captured correctly.
  • If your PR is limited to source code changes (non-docs), you can ignore this notice.

Thanks for your patience while we complete the migration! 🙏

@robin-drexler robin-drexler marked this pull request as ready for review April 28, 2026 13:25
Copy link
Copy Markdown
Contributor

@andrewmcgov andrewmcgov left a comment

Choose a reason for hiding this comment

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

Thanks for adding this!

Will this still run on older branches even if the workflow is only in 2026-07-rc?

Comment thread .github/workflows/rc-port-tracker.yml Outdated
@robin-drexler
Copy link
Copy Markdown
Member Author

@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

@andrewmcgov
Copy link
Copy Markdown
Contributor

@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>
@robin-drexler robin-drexler merged commit 624c946 into 2026-07-rc Apr 29, 2026
5 checks passed
@robin-drexler robin-drexler mentioned this pull request Apr 29, 2026
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.

2 participants