Skip to content

chore(ci): derive RC slack notification changelog from git ancestry#28676

Merged
joaoloureirop merged 2 commits intomainfrom
chore/rc-build-cherry-pick-delta
Apr 10, 2026
Merged

chore(ci): derive RC slack notification changelog from git ancestry#28676
joaoloureirop merged 2 commits intomainfrom
chore/rc-build-cherry-pick-delta

Conversation

@joaoloureirop
Copy link
Copy Markdown
Contributor

@joaoloureirop joaoloureirop commented Apr 10, 2026

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

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

image

After

Message preview link


@github-actions
Copy link
Copy Markdown
Contributor

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.

@joaoloureirop joaoloureirop changed the title RC builds changelog since release cut chore(ci): derive RC Slack changelog from git ancestry Apr 10, 2026
@metamaskbot metamaskbot added the team-mobile-platform Mobile Platform team label Apr 10, 2026
@metamaskbot metamaskbot added the INVALID-PR-TEMPLATE PR's body doesn't match template label Apr 10, 2026
@joaoloureirop joaoloureirop marked this pull request as ready for review April 10, 2026 15:26
@joaoloureirop joaoloureirop requested a review from a team as a code owner April 10, 2026 15:26
@joaoloureirop joaoloureirop changed the title chore(ci): derive RC Slack changelog from git ancestry chore(ci): derive RC slack notification changelog from git ancestry Apr 10, 2026
@github-actions github-actions bot added the risk-low Low testing needed · Low bug introduction risk label Apr 10, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

  • Selected E2E tags: None (no tests recommended)
  • Selected Performance tags: None (no tests recommended)
  • Risk Level: low
  • AI Confidence: 97%
click to see 🤖 AI reasoning details

E2E Test Selection:
The two changed files are purely CI/notification infrastructure:

  1. .github/workflows/slack-rc-notification.yml: Only change is fetch-depth: 1fetch-depth: 0 to enable full git history fetching for the new git-based commit listing approach.

  2. scripts/slack-rc-notification.mjs: Refactored from CHANGELOG.md parsing to git history-based commit listing using git merge-base + git log --ancestry-path. Added dry-run mode, improved fail-open behavior, and updated Slack message formatting.

Neither file touches any app source code, test infrastructure, controllers, navigation, UI components, or any user-facing functionality. These changes only affect how the Slack RC notification message is generated and sent — a purely operational/DevOps concern. No E2E tests are needed to validate these changes, and there is no performance impact on the app.

Performance Test Selection:
No app code was changed. The modifications are limited to a GitHub Actions workflow (fetch-depth setting) and a Node.js script for generating Slack RC notifications. There is zero impact on app rendering, data loading, startup, or any other performance-sensitive area.

View GitHub Actions results

@sonarqubecloud
Copy link
Copy Markdown

@joaoloureirop joaoloureirop removed the INVALID-PR-TEMPLATE PR's body doesn't match template label Apr 10, 2026
@joaoloureirop joaoloureirop enabled auto-merge April 10, 2026 16:41
@metamaskbot metamaskbot added the INVALID-PR-TEMPLATE PR's body doesn't match template label Apr 10, 2026
@joaoloureirop joaoloureirop added this pull request to the merge queue Apr 10, 2026
Merged via the queue into main with commit 96ee8a5 Apr 10, 2026
68 checks passed
@joaoloureirop joaoloureirop deleted the chore/rc-build-cherry-pick-delta branch April 10, 2026 16:55
@github-actions github-actions bot locked and limited conversation to collaborators Apr 10, 2026
@metamaskbot metamaskbot added the release-7.74.0 Issue or pull request that will be included in release 7.74.0 label Apr 10, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

INVALID-PR-TEMPLATE PR's body doesn't match template release-7.74.0 Issue or pull request that will be included in release 7.74.0 risk-low Low testing needed · Low bug introduction risk size-M team-mobile-platform Mobile Platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants