Commit 13e2756
authored
release: 7.64.0 (#25409)
# 🚀 v7.64.0 Testing & Release Quality Process
Hi Team,
As part of our new **MetaMask Release Quality Process**, here’s a quick
overview of the key processes, testing strategies, and milestones to
ensure a smooth and high-quality deployment.
---
## 📋 Key Processes
### Testing Strategy
- **Developer Teams:**
Conduct regression and exploratory testing for your functional areas,
including automated and manual tests for critical workflows.
- **QA Team:**
Focus on exploratory testing across the wallet, prioritize high-impact
areas, and triage any Sentry errors found during testing.
- **Customer Success Team:**
Validate new functionalities and provide feedback to support release
monitoring.
### GitHub Signoff
- Each team must **sign off on the Release Candidate (RC)** via GitHub
by the end of the validation timeline (**Tuesday EOD PT**).
- Ensure all tests outlined in the Testing Plan are executed, and any
identified issues are addressed.
### Issue Resolution
- **Resolve all Release Blockers** (Sev0 and Sev1) by **Tuesday EOD
PT**.
- For unresolved blockers, PRs may be reverted, or feature flags
disabled to maintain release quality and timelines.
### Cherry-Picking Criteria
- Only **critical fixes** meeting outlined criteria will be
cherry-picked.
- Developers must ensure these fixes are thoroughly reviewed, tested,
and merged by **Tuesday EOD PT**.
---
## 🗓️ Timeline and Milestones
1. **Today (Friday):** Begin Release Candidate validation.
2. **Tuesday EOD PT:** Finalize RC with all fixes and cherry-picks.
3. **Wednesday:** Buffer day for final checks.
4. **Thursday:** Submit release to app stores and begin rollout to 1% of
users.
5. **Monday:** Scale deployment to 10%.
6. **Tuesday:** Full rollout to 100%.
---
## ✅ Signoff Checklist
Each team is responsible for signing off via GitHub. Use the checkbox
below to track signoff completion:
# Team sign-off checklist
- [x] Accounts Framework
- [x] Assets
- [x] Bots Team
- [x] Card
- [x] Confirmations
- [x] Core Platform
- [x] Design System
- [x] Earn
- [x] Mobile Platform
- [x] Mobile UX
- [x] Network Enablement
- [x] Onboarding
- [x] Perps
- [x] Predict
- [x] Product Safety
- [x] Ramp
- [x] Rewards
- [x] Shield
- [x] Swaps and Bridge
- [ ] team-new-networks
- [x] Transactions
- [x] Wallet Integrations
This process is a major step forward in ensuring release stability and
quality. Let’s stay aligned and make this release a success! 🚀
Feel free to reach out if you have questions or need clarification.
Many thanks in advance
# Reference
- Testing plan sheet -
https://docs.google.com/spreadsheets/d/1tsoodlAlyvEUpkkcNcbZ4PM9HuC9cEM80RZeoVv5OCQ/edit?gid=404070372#gid=404070372
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> **Medium Risk**
> Medium risk due to broad CI/workflow and build automation changes (new
outputs, event-condition logic, build triggers/notifications) plus app
config changes that could affect pipelines and debug networking; runtime
product code changes appear limited and mostly additive.
>
> **Overview**
> Cuts the `7.64.0` release by bumping Android version
(`versionName`/`versionCode`) and adding a full `7.64.0` section to
`CHANGELOG.md` (updating the compare links accordingly).
>
> Updates CI/test automation: expands Smart E2E selection to also emit
*performance test tags* and display them in step summaries/comments;
migrates various E2E tool paths from `e2e/tools` to `tests/tools`,
adjusts Detox to run smoke API specs from `tests/smoke/api-specs`, and
temporarily broadens tag sharding search base to repo root.
>
> Improves release/build workflows by adding a reusable `build.yml`,
making Bitrise BrowserStack build workflows accept an overridable
`branch_name`, hardening `ci.yml` for `merge_group` events (skip some
jobs and treat `skipped` appropriately), and adding Slack notifications
for RC builds (with Node setup + dependency install to support the new
script).
>
> Housekeeping/config updates include new Cursor rules/docs, adding
`.env` to `.gitignore`, depcheck ignore list tweaks, appium/appwright
patches for chromedriver auto-download/webviews, `push-eas-update` env
flag adjustments (including disabling LavaMoat in CI), Android debug
network security config for user cert trust, a new optional
`infuraNetworkClientId` on network banner actions, and removal of
several legacy approval/action modules and associated tests/snapshots.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
e935da4. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->1,468 files changed
Lines changed: 78635 additions & 64887 deletions
File tree
- .cursor
- commands
- rules
- .github
- actions
- cursor-background-agent
- cursor-cli-setup
- smart-e2e-selection
- cursor/prompts
- scripts
- workflows
- .yarn/patches
- android/app
- src/debug
- res/xml
- appwright
- fixtures
- reporters
- tests
- mm-connect
- performance
- login
- launch-times
- predict
- onboarding
- launch-times
- utils
- app
- actions
- networkConnectionBanner
- signatureRequest
- transaction
- user
- component-library/components-temp/KeyValueRow
- KeyValueLabel
- components
- Approvals
- SignatureApproval
- __snapshots__
- TransactionApproval
- __snapshots__
- Base/RemoteImage
- UI
- AccountInfoCard
- AccountOverview
- AssetOverview
- Balance
- __snapshots__
- Price
- __snapshots__
- BiometryButton
- Bridge
- Views/BridgeView
- __snapshots__
- _mocks_
- components
- BridgeDestNetworkSelector
- __snapshots__
- BridgeDestTokenSelector
- __snapshots__
- BridgeSourceNetworkSelector
- __snapshots__
- BridgeSourceTokenSelector
- __snapshots__
- BridgeTokenSelector
- QuoteDetailsCard
- RecipientSelectorModal
- TokenInputArea
- hooks
- useBalancesByAssetId
- useInsufficientBalance
- useIsNetworkEnabled
- useIsOnBridgeRoute
- useTokensWithBalance
- useTopTokens
- testUtils
- utils
- isTradableToken
- BrowserUrlBar
- __snapshots__
- Card
- Views
- CardAuthentication
- __snapshots__
- CardHome
- __snapshots__
- CardWelcome
- ChooseYourCard
- OrderCompleted
- ReviewOrder
- SpendingLimit
- components
- CardDeveloperOptionsSection
- CardScreenshotDeterrent
- __snapshots__
- DaimoPayModal
- Onboarding
- PasswordBottomSheet
- __snapshots__
- RecurringFeeModal
- hooks
- routes
- sdk
- services
- util
- CollectibleContractOverview
- CollectibleModal
- Earn
- Views
- EarnInputView
- EarnMusdConversionEducationView
- EarnWithdrawInputView
- components
- EarnBalance
- EarnLendingBalance
- EarnTokenList
- __snapshots__
- MerklRewards
- hooks
- Musd
- MusdConversionAssetListCta
- MusdConversionAssetOverviewCta
- constants
- hooks
- utils
- MultichainTransactionDetailsModal
- MultichainTransactionListItem
- NetworkConnectionBanner
- NftGrid
- OptinMetrics
- Perps
- Views
- PerpsAdjustMarginView
- PerpsClosePositionView
- PerpsHeroCardView
- PerpsHomeView
- PerpsMarketDetailsView
- PerpsMarketListView
- components/PerpsMarketFiltersBar
- PerpsOrderView
- PerpsPositionsView
- PerpsTPSLView
- PerpsTabView
- PerpsWithdrawView
- __mocks__
- adapters
- components
- LivePriceDisplay
- PerpsAmountDisplay
- PerpsBottomSheetTooltip
- __snapshots__
- content
- PerpsCandlePeriodBottomSheet
- PerpsCandlePeriodSelector
- PerpsCard
- PerpsChartFullscreenModal
- PerpsFillTag
- PerpsHomeSection
- PerpsLeverageBottomSheet
- PerpsLimitPriceBottomSheet
- PerpsLoadingSkeleton
- PerpsMarketBalanceActions
- PerpsMarketCategoryBadges
- PerpsMarketCategoryBadge
- PerpsMarketListHeader
- PerpsMarketList
- PerpsMarketRowItem
- PerpsMarketSortDropdowns
- PerpsMarketSortFieldBottomSheet
- PerpsMarketStatisticsCard
- PerpsMarketTradesList
- PerpsMarketTypeSection
- PerpsOrderHeader
- PerpsPositionCard
- PerpsProgressBar
- PerpsQuoteExpiredModal
- PerpsRecentActivityList
- PerpsRowSkeleton
- PerpsStocksCommoditiesBottomSheet
- PerpsStocksCommoditiesDropdown
- PerpsTabControlBar
- PerpsTransactionItem
- PerpsWatchlistMarkets
- PerpsWebSocketHealthToast
- TradingViewChart
- constants
- controllers
- aggregation
- providers
- services
- types
- hooks
- stream
- providers
- channels
- routes
- selectors
- featureFlags
- perpsController
- services
- types
- utils
- Predict
- hooks
- providers/polymarket
- views
- PredictFeed
- PredictSellPreview
- PredictTabView
- QRHardware
- QRSigningModal
- Ramp
- Aggregator/Views
- BuildQuote
- __snapshots__
- OrderDetails
- __snapshots__
- Quotes
- __snapshots__
- SendTransaction
- __snapshots__
- Deposit
- Views
- AdditionalVerification/__snapshots__
- BankDetails/__snapshots__
- BasicInfo/__snapshots__
- BuildQuote
- __snapshots__
- DepositOrderDetails
- EnterAddress
- __snapshots__
- EnterEmail/__snapshots__
- KycProcessing/__snapshots__
- Modals/PaymentMethodSelectorModal
- __snapshots__
- components/AccountSelector
- utils
- components
- BuildQuote
- __snapshots__
- Modals/SettingsModal
- __snapshots__
- PaymentMethodPill
- __snapshots__
- QuickAmounts
- __snapshots__
- TokenSelection
- hooks
- utils
- Rewards
- components
- RewardItem
- Settings
- Tabs
- ActivityTab
- OverviewTab/WaysToEarn
- hooks
- utils
- SRPListItem
- SelectOptionSheet
- __snapshots__
- Sites/components
- SiteRowItemWrapper
- SiteRowItem
- SliderButton
- SrpInputGrid
- __snapshots__
- Stake
- components
- GasImpactModal
- StakeButton
- StakingBalance/StakingBanners/ClaimBanner
- StakingConfirmation/RewardsCard
- hooks
- Swaps
- Tokens
- TokenList
- TokenListItem
- util
- TransactionElement
- __snapshots__
- Transactions
- Trending
- components
- TrendingTokenRowItem
- TrendingTokensBottomSheet
- hooks
- useSearchRequest
- useTrendingSearch
- UrlAutocomplete
- Views
- AccountConnect
- AssetDetails
- Asset
- __snapshots__
- BrowserTab
- __snapshots__
- Browser
- ChoosePassword
- __snapshots__
- CollectibleView
- DiscoveryTab
- ImportFromSecretRecoveryPhrase
- __snapshots__
- ImportNewSecretRecoveryPhrase
- LedgerConnect/__snapshots__
- LockScreen
- __snapshots__
- Login
- ManualBackupStep1
- MultichainAccounts/MultichainAccountConnect
- NetworkConnect
- NftDetails
- OAuthRehydration
- Onboarding
- QRScanner
- ResetPassword
- Settings
- DeveloperOptions
- __snapshots__
- ExperimentalSettings
- __snapshots__
- SitesFullView
- TooltipModal
- TradeWalletActions
- TrendingTokens/TrendingTokensFullView
- UnifiedTransactionsView
- WalletActions
- Wallet
- hooks
- confirmations
- components
- activity
- transaction-details-account-row
- transaction-details-hero
- transaction-details-summary
- transaction-details
- blockaid-alert-content
- blockaid-banner
- __snapshots__
- confirm
- info-root
- info
- custom-amount-info
- external/perps
- musd-conversion-info
- modals/pay-with-modal
- rows
- bridge-fee-row
- transactions/gas-fee-details-row
- send/asset
- signature-blockaid-banner
- title
- constants
- hooks
- alerts
- send
- signatures
- transactions
- ui
- legacy
- Approval
- __snapshots__
- components/TransactionEditor
- __snapshots__
- ApproveView/Approve
- __snapshots__
- Approve
- __snapshots__
- components
- Amount
- ApproveTransactionReview
- AddNickNameHeader
- AddNickname
- EditPermission
- ShowBlockExplorer
- VerifyContractDetails
- __snapshots__
- Confirm
- CustomNonce
- __snapshots__
- EditGasFeeLegacyUpdate
- __snapshots__
- PersonalSign
- __snapshots__
- SignatureRequest
- ExpandedMessage
- __snapshots__
- Root
- __snapshots__
- __snapshots__
- SmartTransactionsMigrationBanner
- TransactionBlockaidBanner
- __snapshots__
- TransactionReview
- TransactionReviewData
- __snapshots__
- TransactionReviewDetailsCard
- __snapshots__
- TransactionReviewEIP1559Update
- __snapshots__
- TransactionReviewEIP1559
- __snapshots__
- TransactionReviewInformation
- __snapshots__
- TransactionReviewSummary
- __snapshots__
- __snapshots__
- TypedSign
- __snapshots__
- selectors
- utils
- hooks
- DisplayName
- multichainAccounts
- useAnalytics
- useMetrics
- useNetworkConnectionBanner
- constants
- core
- Analytics
- Authentication
- hooks
- BackgroundBridge
- DeeplinkManager
- handlers/legacy
- __tests__
- types
- util/deeplinks
- EngineService
- Engine
- controllers
- approval-controller
- bridge-controller
- identity
- network-controller
- network-enablement-controller
- perps-controller
- rewards-controller
- services
- utils
- snaps
- transaction-controller/metrics_properties
- messengers
- ramps-controller-messenger
- rewards-controller-messenger
- utils
- GasPolling
- LockManagerService
- OAuthService
- OAuthLoginHandlers
- androidHandlers
- RPCMethods
- Snaps
- WalletConnect
- __mocks__
- redux/slices
- bridge
- card
- images
- lib/ppom
- reducers
- networkConnectionBanner
- rewards
- security-alerts
- signatureRequest
- transaction
- selectors
- assets
- featureFlagController
- assetsTrendingTokens
- card
- confirmations
- productSafetyDappScanning
- rewards
- rwa
- multichain
- multisrp
- store
- migrations
- persistConfig
- sagas
- util
- activity
- blockaid
- bridge/hooks
- useBridgeTxHistoryData
- dappTransactions
- logs/__snapshots__
- metrics
- networks
- onboarding
- sentry
- __snapshots__
- smart-transactions
- test
- component-view
- transactions
- hooks
- docs
- perps
- predict
- readme
- e2e
- pages
- Browser
- Perps
- Send
- Settings
- swaps
- wallet
- selectors
- Bridge
- Browser
- Card
- SendFlow
- specs
- accounts
- assets
- multichain
- confirmations
- regression
- signatures
- transactions
- 7702
- token-approve
- identity
- account-syncing
- contact-syncing
- multichain-accounts
- multichain
- connections
- permissions/chains
- solana-wallet-standard
- multisrp
- networks
- perps
- quarantine
- browser
- multichain/permissions/chains
- ramps
- send
- settings
- snaps
- stake
- swaps
- helpers
- trending
- ios
- MetaMask.xcodeproj
- locales/languages
- scripts
- tests
- api-mocking
- helpers
- mock-responses
- defaults
- docs
- framework
- fixtures
- helpers/analytics
- locators/Trending
- module-mocking/sentry
- page-objects
- Predict
- Trending
- regression
- accounts
- aes
- wallet
- analytics
- connections
- resources
- seeder
- network-states/7702
- smoke
- accounts
- api-specs
- card
- predict
- helpers
- rewards
- wallet
- analytics
- connections
- settings
- tools/e2e-ai-analyzer
- ai-tools
- handlers
- analysis
- modes
- select-tags
- providers
- skills
- types
- utils
- wdio/screen-objects
- Modals
- Onboarding
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
161 | 161 | | |
162 | 162 | | |
163 | 163 | | |
164 | | - | |
| 164 | + | |
165 | 165 | | |
166 | 166 | | |
167 | 167 | | |
168 | 168 | | |
169 | | - | |
| 169 | + | |
170 | 170 | | |
171 | | - | |
172 | | - | |
| 171 | + | |
| 172 | + | |
173 | 173 | | |
174 | 174 | | |
175 | 175 | | |
176 | 176 | | |
177 | 177 | | |
178 | | - | |
| 178 | + | |
179 | 179 | | |
180 | 180 | | |
181 | 181 | | |
| |||
203 | 203 | | |
204 | 204 | | |
205 | 205 | | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
206 | 232 | | |
207 | 233 | | |
208 | 234 | | |
| |||
239 | 265 | | |
240 | 266 | | |
241 | 267 | | |
242 | | - | |
243 | | - | |
| 268 | + | |
244 | 269 | | |
245 | 270 | | |
246 | 271 | | |
| |||
261 | 286 | | |
262 | 287 | | |
263 | 288 | | |
264 | | - | |
| 289 | + | |
265 | 290 | | |
266 | 291 | | |
267 | | - | |
| 292 | + | |
268 | 293 | | |
269 | 294 | | |
270 | 295 | | |
| |||
278 | 303 | | |
279 | 304 | | |
280 | 305 | | |
| 306 | + | |
| 307 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
32 | 36 | | |
33 | 37 | | |
34 | 38 | | |
| |||
0 commit comments