chore(runway): cherry-pick chore(ci): derive RC slack notification changelog from git ancestry#28683
Conversation
…angelog from git ancestry (#28676) ## **Description** RC Slack notifications previously parsed **CHANGELOG.md** with `@metamask/auto-changelog`. It wasn't working because the release changelog is on a different branch and do not follow the format we want for the slack notification. This change builds the “What’s in this RC” section from **git** instead: - **`A`** = `git merge-base HEAD <base>` (default **`origin/main`**, overridable via **`CHANGELOG_MERGE_BASE_REF`**) - **`B`** = **`HEAD`** - List commits with **`git log --ancestry-path A..B`** so only commits on the path between the fork point and the RC tip are included. The reusable Slack workflow checkout is updated from **`fetch-depth: 1`** to **`fetch-depth: 0`** so **`merge-base`** has enough history on the runner. ## **Changelog** CHANGELOG entry: null ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/INFRA-3482 https://consensyssoftware.atlassian.net/browse/MCWP-442 ## **Manual testing steps** ```gherkin Feature: RC Slack notification changelog Scenario: Verify git-based commit list on a release branch Given a clone with full history and a remote tracking branch (e.g. origin/main) When CHANGELOG_MERGE_BASE_REF is unset or set to origin/main and the script runs with SLACK_BOT_TOKEN and TEST_CHANNEL Then the Slack message lists commits from git log --ancestry-path $(git merge-base HEAD origin/main)..HEAD and respects the entry cap Scenario: GitHub Actions reusable workflow Given the slack-rc-notification workflow runs after an RC build When the checkout uses fetch-depth 0 Then merge-base and ancestry-path succeed and the notification posts without shallow-clone errors ``` ## **Screenshots/Recordings** ### **Before** <img width="571" height="221" alt="image" src="https://github.com/user-attachments/assets/abf62ebf-3fa9-4ecd-a35f-3ec98aa1586d" /> ### **After** Message preview [link](https://app.slack.com/block-kit-builder/T02P98BKE#{%22blocks%22:[{%22type%22:%22header%22,%22text%22:{%22type%22:%22plain_text%22,%22text%22:%22%F0%9F%9A%80%20Mobile%20RC%20Build%20v7.73.0%20(iOS%204400%20/%20Android%204400)%22,%22emoji%22:true}},{%22type%22:%22section%22,%22fields%22:[{%22type%22:%22mrkdwn%22,%22text%22:%22*Version:*\n7.73.0%22},{%22type%22:%22mrkdwn%22,%22text%22:%22*Build%20Number:*\niOS%204400%20/%20Android%204400%22}]},{%22type%22:%22section%22,%22text%22:{%22type%22:%22mrkdwn%22,%22text%22:%22*%F0%9F%93%A6%20Download%20Links:*%22}},{%22type%22:%22section%22,%22fields%22:[{%22type%22:%22mrkdwn%22,%22text%22:%22*Android%20APK:*\n_Not%20available_%22},{%22type%22:%22mrkdwn%22,%22text%22:%22*iOS%20Build:*\n_Check%20TestFlight_%22}]},{%22type%22:%22divider%22},{%22type%22:%22section%22,%22text%22:{%22type%22:%22mrkdwn%22,%22text%22:%22*%F0%9F%93%8B%20What's%20in%20this%20RC:*\n%E2%80%A2%20%605e54464545%60%20chore(runway):%20cherry-pick%20feat(predict):%20track%20mmpay%20submitted%20event%20with%20payment%20token%20address%20(%3Chttps://github.com/MetaMask/metamask-mobile/pull/28598|#28598%3E)\n%E2%80%A2%20%601dc0621c4b%60%20chore(runway):%20cherry-pick%20fix(bridge):%20harden%20token%20hooks%20against%20malformed%20API%20responses%20cp-7.73.0%20(%3Chttps://github.com/MetaMask/metamask-mobile/pull/28537|#28537%3E)\n%E2%80%A2%20%60d6c3b9a527%60%20chore(runway):%20cherry-pick%20fix(perps):%20extract%20payment%20token%20init%20into%20useInitPerpsPaymentToken%20hook%20and%20move%20it%20to%20the%20parent%20cp-7.73.0%20(%3Chttps://github.com/MetaMask/metamask-mobile/pull/28579|#28579%3E)\n%E2%80%A2%20%603993d6c45b%60%20chore(runway):%20cherry-pick%20fix:%20update%20account%20status%20screen%20with%20new%20ui%20design%20system%20(%3Chttps://github.com/MetaMask/metamask-mobile/pull/28541|#28541%3E)\n%E2%80%A2%20%60849de28bc5%60%20fix:%20unit%20test%20to%20align%20ramps%20selector%20test%20mock%20%20(%3Chttps://github.com/MetaMask/metamask-mobile/pull/28585|#28585%3E)\n%E2%80%A2%20%60a9bb8ee57e%60%20Auto%20rc%20trigger%20commit%20--%20This%20is%20an%20empty%20commit\n%E2%80%A2%20%60aef5f19d78%60%20ci:%20cherry%20pick%2028202%20(%3Chttps://github.com/MetaMask/metamask-mobile/pull/28559|#28559%3E)\n%E2%80%A2%20%60dac8f5a525%60%20chore:cherry%20pick%2028490%20(%3Chttps://github.com/MetaMask/metamask-mobile/pull/28556|#28556%3E)\n%E2%80%A2%20%60e7967a1867%60%20chore:%20cherry%20pick%2028423%20(%3Chttps://github.com/MetaMask/metamask-mobile/pull/28540|#28540%3E)\n%E2%80%A2%20%60f69bf23caf%60%20chore(runway):%20cherry-pick%206334093%20(%3Chttps://github.com/MetaMask/metamask-mobile/pull/28523|#28523%3E)\n%E2%80%A2%20%60f1772829aa%60%20cherry%20pick%2028368%20(%3Chttps://github.com/MetaMask/metamask-mobile/pull/28535|#28535%3E)\n%E2%80%A2%20%60422d3986cb%60%20chore:%20use%20push%20EAS%20directly%20(%3Chttps://github.com/MetaMask/metamask-mobile/pull/28362|#28362%3E)%20(%3Chttps://github.com/MetaMask/metamask-mobile/pull/28550|#28550%3E)\n%E2%80%A2%20%60435fa92b80%60%20chore(runway):%20cherry-pick%20fix:%20backfill-consent-event%20cp-7.73.0%20(%3Chttps://github.com/MetaMask/metamask-mobile/pull/28530|#28530%3E)\n%E2%80%A2%20%60317287eed0%60%20chore(runway):%20cherry-pick%20fix(predict):%20reset%20active%20order%20state%20on%20payment%20token%20clear%20and%20suppress%20stale%20balance%20alert%20cp-7.73.0%20(%3Chttps://github.com/MetaMask/metamask-mobile/pull/28529|#28529%3E)\n%E2%80%A2%20%6083e68c0f30%60%20chore(runway):%20cherry-pick%20refactor(onboarding):%20migrate%20OAuthRehydration%20to%20design%20system%20cp-7.73.0%20(%3Chttps://github.com/MetaMask/metamask-mobile/pull/28528|#28528%3E)\n%E2%80%A2%20%60a49e807209%60%20chore(release):%20merge%20stable%20into%20release/7.73.0%20%20(%3Chttps://github.com/MetaMask/metamask-mobile/pull/28510|#28510%3E)\n%E2%80%A2%20%60eb8a937d63%60%20chore:%20merge%20stable%20into%20release/7.73.0%20(stable%20sync)%22}}]}) ---
|
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection:
Neither file touches any app source code, React Native components, controllers, navigation, state management, or any code path exercised by E2E or performance tests. These changes only affect the post-RC-build Slack notification mechanism. No E2E tests or performance tests are warranted. Performance Test Selection: |
|



Description
RC Slack notifications previously parsed CHANGELOG.md with
@metamask/auto-changelog. It wasn't working because the releasechangelog is on a different branch and do not follow the format we want
for the slack notification. This change builds the “What’s in this RC”
section from git instead:
A=git merge-base HEAD <base>(defaultorigin/main,overridable via
CHANGELOG_MERGE_BASE_REF)B=HEADgit log --ancestry-path A..Bso only commitson the path between the fork point and the RC tip are included.
The reusable Slack workflow checkout is updated from
fetch-depth: 1tofetch-depth: 0somerge-basehas enough history onthe runner.
Changelog
CHANGELOG entry: null
Related issues
Fixes:
https://consensyssoftware.atlassian.net/browse/INFRA-3482
https://consensyssoftware.atlassian.net/browse/MCWP-442
Manual testing steps
Screenshots/Recordings
Before
After
Message preview
link
--- 96ee8a5