Commit dceca8a
authored
release: 7.67.0 (#26310)
# 🚀 v7.67.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] BE Trade
- [x] Bots Team
- [x] Card
- [x] Confirmations
- [x] Core Platform
- [x] Design System
- [x] Earn
- [x] Engagement
- [x] Mobile Platform
- [x] Mobile UX
- [x] Networks
- [x] Onboarding
- [x] Perps
- [x] Predict
- [x] Product Safety
- [x] Ramp
- [x] Rewards
- [x] Social & AI
- [x] Swaps and Bridge
- [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 because it changes GitHub Actions build/test workflows
(artifact handling, sharding/coverage merge, BrowserStack tunnel
behavior) and updates several Yarn patches that affect
controller/metrics/runtime behavior. Failures are most likely in CI
stability, artifact publishing, or analytics payload shape rather than
end-user security.
>
> **Overview**
> **Release 7.67.0** with version bumps (Android
`versionName`/`versionCode`, `package.json` version) and cleanup of
deprecated Storybook “temp” header components.
>
> Build/CI workflows are reworked: `build.yml` adds iOS environment
setup, standardizes artifact renaming via `scripts/rename-artifacts.js`,
and uploads iOS/Android outputs as artifacts; `ci.yml` shards
component-view tests (`cv-test`) and merges coverage into a single HTML
report, updating downstream job dependencies.
>
> E2E/performance automation is extended for *mm-connect* on
BrowserStack (local tunnel handling, longer readiness wait, new test
command, and clearer artifact naming), with updated
concurrency/permissions. Tooling updates include a Perps-specific ESLint
“Core-alignment” override (adds `promise` plugin and stricter rules),
expanded Ramp CODEOWNERS patterns, a new WalletConnect v2 verify context
type stored in `wc2Metadata`, and updated Yarn patches for assets/bridge
controllers and Appwright behavior.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
b1c3e3e. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->1,273 files changed
Lines changed: 80650 additions & 33092 deletions
File tree
- .cursor
- rules
- .github
- workflows
- .storybook
- .yarn/patches
- android/app
- app
- actions/sdk
- component-library
- components-temp
- HeaderWithTitleLeftScrollable
- HeaderWithTitleLeft
- MainActionButton
- TitleLeft
- components
- Form/TextField/foundation/Input
- __snapshots__
- Icons/Icon
- assets
- hooks
- components
- Snaps
- SnapUIAddressInput/__snapshots__
- SnapUIAddress
- SnapUIAvatar
- SnapUIRenderer
- __snapshots__
- components/__snapshots__
- UI
- AssetOverview
- MarketClosedActionButton
- __snapshots__
- Assets/components/Balance
- Bridge
- Views/BridgeView
- __snapshots__
- _mocks_
- components
- BridgeTokenSelector
- GaslessQuickPickOptions
- InputStepper/__snapshots__
- MarketClosedBottomSheets
- __snapshots__
- QuoteDetailsCard
- SwapsConfirmButton
- SwapsKeypad
- TokenInputArea
- TransactionDetails
- hooks
- useBridgeQuoteEvents
- useBridgeViewOnFocus
- useMultichainBlockExplorerTxUrl
- useRecipientDisplayData
- useRenderQuoteExpireModal
- useTokenInputAreaFormattedBalance
- utils
- Card
- Views
- CardAuthentication/__snapshots__
- CardHome
- ReviewOrder
- components
- DaimoPayModal
- ManageCardListItem
- Onboarding
- PasswordBottomSheet
- hooks
- pushProvisioning
- hooks
- service
- sdk
- services
- util
- DeFiPositions
- Earn
- LendingLearnMoreModal
- Views
- EarnInputView
- EarnLendingDepositConfirmationView
- EarnLendingWithdrawalConfirmationView
- EarnMusdConversionEducationView
- EarnWithdrawInputView
- components
- EarnLendingBalance
- Earnings
- EmptyStateCta
- MerklRewards
- ClaimOnLineaBottomSheet
- hooks
- Musd
- MusdConversionAssetListCta
- MusdConversionAssetOverviewCta
- Tron
- TronStakingButtons
- TronStakingLearnMoreModal
- constants/events
- hooks
- MarketInsights
- Views/MarketInsightsView
- components
- MarketInsightsEntryCard
- MarketInsightsTrendItem
- MarketInsightsTweetCard
- hooks
- utils
- MultichainBridgeTransactionListItem
- MultichainTransactionListItem
- Name
- __snapshots__
- NetworkMultiSelectorList
- NftGrid
- Notification/List
- PermissionsSummary
- Perps
- Views
- PerpsCancelAllOrdersView
- PerpsCloseAllPositionsView
- PerpsClosePositionView
- PerpsHeroCardView
- PerpsHomeView
- PerpsMarketDetailsView
- PerpsMarketListView
- PerpsOrderBookView
- PerpsOrderView
- PerpsSelectAdjustMarginActionView
- PerpsSelectModifyActionView
- PerpsTPSLView
- PerpsTabView
- PerpsTransactionsView
- PerpsWithdrawView
- __mocks__
- adapters
- components
- PerpsCandlePeriodBottomSheet
- PerpsFillTag
- PerpsGTMModal
- PerpsLeverageBottomSheet
- PerpsLimitPriceBottomSheet
- PerpsMarketTradesList
- PerpsOpenOrderCard
- PerpsOrderTypeBottomSheet
- PerpsRecentActivityList
- PerpsTutorialCarousel
- hooks
- stream
- providers
- channels
- services
- types
- utils
- Predict
- components
- PredictActionButtons
- PredictActivity
- PredictAddFundsSheet
- PredictBalance
- PredictGameChart
- PredictGameDetailsContent
- PredictHome
- PredictMarketMultiple
- PredictMarketOutcome
- PredictMarketRowItem
- PredictMarketSingle
- PredictOffline
- PredictPicks
- PredictPositionDetail
- PredictPositionResolved
- PredictPositionsHeader
- PredictPosition
- controllers
- hooks
- providers
- polymarket
- safe
- queries
- selectors/predictController
- types
- utils
- views
- PredictBuyPreview
- PredictFeed
- PredictMarketDetails
- hooks
- PredictSellPreview
- QRHardware
- Ramp
- Aggregator
- Views
- BuildQuote
- OrderDetails
- Settings/__snapshots__
- components
- FiatSelectorModal/__snapshots__
- TokenSelectModal/__snapshots__
- types
- Deposit
- Views
- BasicInfo
- __snapshots__
- BuildQuote
- EnterAddress/__snapshots__
- EnterEmail/__snapshots__
- Modals
- RegionSelectorModal/__snapshots__
- StateSelectorModal/__snapshots__
- TokenSelectorModal/__snapshots__
- WebviewModal
- Root
- components
- DepositOrderContent
- DepositPhoneField/__snapshots__
- hooks
- routes
- sdk
- utils
- Views
- BuildQuote
- Checkout
- __snapshots__
- Modals
- PaymentSelectionModal
- __snapshots__
- ProviderPickerModal
- __snapshots__
- SettingsModal
- NativeFlow
- __snapshots__
- Settings/RegionSelector/__snapshots__
- TokenSelection
- __snapshots__
- components/QuickAmounts
- hooks
- utils
- Rewards/components/Settings
- SimulationDetails
- Sites/hooks/useSiteData
- Stake
- Views/StakeInputView
- components
- LearnMoreModal
- StakeButton
- StakingBalance
- StakingButtons
- hooks/usePoolStakedDeposit
- utils/metaMetrics
- Tabs
- __snapshots__
- TokenDetails
- Views
- components
- hooks
- Tokens
- TokenListControlBar
- TokenList
- TokenListItemV2
- TokenListItem
- TransactionElement
- TransactionDetails
- Transactions
- Trending
- components/TrendingTokenRowItem
- utils
- Views
- AccountActions
- AccountBackup
- AccountConnect
- AccountConnectMaliciousWarning
- AccountSelector
- AccountsMenu
- __snapshots__
- ActivityView
- AssetDetails
- Asset
- BrowserTab
- __snapshots__
- Browser
- __snapshots__
- ChoosePassword
- __snapshots__
- ConnectHardware/SelectHardware
- EditAccountName
- __snapshots__
- Homepage
- Sections
- DeFi
- NFTs
- assets
- hooks
- Perps
- Predictions
- Tokens
- components
- SectionCard
- SectionRow
- SectionTitle
- ImportNewSecretRecoveryPhrase
- ImportPrivateKey
- __snapshots__
- Login
- __snapshots__
- Modals
- MultichainAccounts
- MultichainAccountConnect
- MultichainPermissionsSummary
- MultichainTransactionsView
- NetworkSelector
- __snapshots__
- Notifications
- Details
- OnboardingSuccess
- Onboarding
- QRScanner
- ResetPassword/__snapshots__
- RevealPrivateCredential
- Root
- SDK
- SendFlow
- Settings
- AdvancedSettings
- __snapshots__
- AppInformation
- __snapshots__
- AutoDetectNFTSettings
- AutoDetectTokensSettings
- BatchAccountBalanceSettings
- Contacts
- DisplayNFTMediaSettings
- GeneralSettings
- NetworksSettings/NetworkSettings
- CustomNetworkView
- SecuritySettings
- Sections
- MetaMetricsAndDataCollectionSection
- ProtectYourWallet
- SimpleWebview
- SitesFullView
- TransactionsView
- TrendingView
- UnifiedTransactionsView
- WalletActions
- Wallet
- Webview
- confirmations
- components
- UI
- copy-button
- __snapshots__
- expandable
- highlighted-action
- highlighted-asset
- info-row/alert-row
- activity/transaction-details-hero
- approve-static-simulations
- approve-and-permit2
- increase-decrease-allowance
- set-approval-for-all
- confirm
- gas/selected-gas-fee-token
- info
- contract-interaction
- custom-amount-info
- musd-claim-info
- musd-conversion-info
- personal-sign
- predict-withdraw-info
- typed-sign-v3v4/simulation/components/value-display
- modals/pay-with-modal
- network-filter
- pay-token-amount
- predict-confirmations/predict-withdraw-balance
- qr-info
- rows
- bridge-fee-row
- pay-with-row
- receive-row
- total-row
- transactions
- account-row
- from-to-row
- gas-fee-details-row
- network-row
- value-row
- send
- amount
- asset
- signature-blockaid-banner
- signature-message-section
- smart-account-update-content
- smart-account-update-modal
- smart-account-update-splash
- splash
- title
- token-list
- constants
- context/qr-hardware-context
- hooks
- alerts
- gas
- metrics
- pay
- send/metrics
- signatures
- transactions
- legacy/components
- EditGasFee1559Update
- EditGasFeeLegacyUpdate
- WatchAssetRequest
- types
- utils
- hooks
- DisplayName
- useAddPopularNetwork
- useAnalyticsDataDeletion
- useAnalytics
- __mocks__
- useMetrics
- useNetworkConnectionBanner
- controllers/perps
- aggregation
- constants
- providers
- routing
- services
- types
- utils
- core
- Analytics
- events/transactions
- Authentication
- DeeplinkManager
- handlers/legacy
- __tests__
- util/deeplinks
- Engine
- controllers
- assets-controller
- network-controller
- perps-controller
- predict-controller
- ramps-controller
- transaction-controller
- event-handlers
- metrics_properties
- messengers
- assets-controller
- perps-controller-messenger
- ramps-controller-messenger
- transaction-controller-messenger
- transak-service-messenger
- HardwareWallet
- adapters
- errors
- Ledger
- Multichain
- RPCMethods/lib
- ReactQueryService
- WalletConnect
- redux/slices/bridge
- hooks
- lib/transaction
- reducers
- browser
- sdk
- selectors
- bridgeController
- featureFlagController
- accountMenu
- assetsTrendingTokens
- confirmations
- homepage
- marketInsights
- tokenDetailsV2
- tokenListLayout
- perps
- rampsController
- store
- migrations
- sagas
- util
- analytics
- bridge/hooks
- logs/__snapshots__
- metrics/TrackOnboarding
- notifications
- methods
- notification-states
- erc1155-sent-received
- erc20-sent-received
- erc721-sent-received
- eth-sent-received
- lido-stake-ready-to-be-withdrawn
- lido-withdrawal-requested
- stake
- swap-completed
- smart-transactions
- test
- transactions
- docs
- perps
- readme
- ios/MetaMask.xcodeproj
- locales/languages
- scripts
- perps
- tests
- .cursor/rules
- api-mocking
- helpers
- mock-responses
- defaults
- polymarket
- ramps
- component-view
- helpers
- mocks
- presets
- renderers
- flows
- framework
- fixtures
- quality-gates
- utils
- helpers/swap
- page-objects
- Browser
- Send
- swaps
- wallet
- performance
- login
- launch-times
- predict
- mm-connect
- onboarding
- launch-times
- regression/wallet
- reporters
- selectors/Bridge
- smoke
- api-specs
- confirmations
- send
- transactions
- predict
- ramps
- swap
- trending
- wallet/helpers
- wdio
- screen-objects
- utils
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 | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
| 29 | + | |
30 | 30 | | |
31 | 31 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | | - | |
| 5 | + | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
31 | 32 | | |
32 | 33 | | |
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
36 | 37 | | |
37 | 38 | | |
38 | | - | |
| 39 | + | |
39 | 40 | | |
40 | 41 | | |
41 | 42 | | |
42 | | - | |
| 43 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
| 31 | + | |
30 | 32 | | |
31 | 33 | | |
32 | 34 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
| |||
174 | 175 | | |
175 | 176 | | |
176 | 177 | | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 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 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
177 | 373 | | |
178 | 374 | | |
179 | 375 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
68 | 71 | | |
69 | 72 | | |
70 | 73 | | |
| |||
218 | 221 | | |
219 | 222 | | |
220 | 223 | | |
| 224 | + | |
221 | 225 | | |
222 | 226 | | |
223 | 227 | | |
| |||
0 commit comments