Commit 6fa14b7
authored
release: 7.78.0 (#30207)
# 🚀 v7.78.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
- [x] Assets
- [x] BE Trade
- [x] Bots Team
- [x] Card
- [x] Confirmations
- [x] Core Platform
- [x] Delegation
- [x] Design System
- [x] Earn
- [x] Engagement
- [x] LavaMoat
- [x] Mobile Platform
- [x] Mobile UX
- [x] Money Movement
- [x] Networks
- [x] Onboarding
- [x] Perps
- [x] Predict
- [x] Rewards
- [x] Social & AI
- [x] Swaps and Bridge
- [x] team-mobile-delivery
- [x] Transactions
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=4040703721,626 files changed
Lines changed: 67695 additions & 31824 deletions
File tree
- .agents/skills
- ab-testing-implementation
- agents
- component-view-test
- agents
- references
- e2e-test
- agents
- references
- performance-testing
- perps-core-sync
- agents
- pr-changelog
- pr-codeowners
- pr-create
- pr-description
- pr-issue-search
- pr-manual-testing
- pr-readiness-check
- pr-review-queue
- pr-title
- repo-skill-authoring
- agents
- .claude
- commands
- skills
- ab-testing-implementation
- component-view-test
- e2e-test
- performance-testing
- perps-core-sync
- pr-changelog
- repo-skill-authoring
- .cursor
- commands
- rules
- skills/worktree-create
- .github
- actions
- check-force-builds
- find-reusable-build
- post-build-source-hash
- setup-e2e-env
- scripts
- workflows
- .storybook
- .yarn
- patches
- releases
- android
- app
- src
- main
- java/io/metamask
- res
- mipmap-hdpi
- mipmap-mdpi
- mipmap-xhdpi
- mipmap-xxhdpi
- mipmap-xxxhdpi
- qa/res
- drawable-hdpi
- drawable-ldpi
- drawable-mdpi
- drawable-night-hdpi
- drawable-night-ldpi
- drawable-night-mdpi
- drawable-night-xhdpi
- drawable-night-xxhdpi
- drawable-night-xxxhdpi
- drawable-night
- drawable-xhdpi
- drawable-xxhdpi
- drawable-xxxhdpi
- drawable
- layout-night
- layout
- mipmap-anydpi-v26
- mipmap-hdpi
- mipmap-mdpi
- mipmap-xhdpi
- mipmap-xxhdpi
- mipmap-xxxhdpi
- values-night
- values
- xml
- gradle/wrapper
- app
- __mocks__
- actions
- multiSrp
- onboarding
- user
- animations
- component-library
- components-temp
- ListItemMultiSelectButton
- ListItemMultiSelectWithMenuButton
- MultichainAccounts
- MultichainAccountSelectorList
- MultichainAddressRow
- Price/AggregatedPercentage
- TabBar
- Tabs
- TabsIconBar
- hooks
- components
- BottomSheets/BottomSheet
- Buttons/Button/variants/ButtonLink
- Cells/Cell
- Form/TextField/foundation/Input
- Icons/Icon
- List
- ListItemMultiSelect
- ListItemSelect
- Modals/ModalMandatory
- Select
- SelectButton/foundation
- SelectOption
- Toast
- components
- Base
- AnimatedFox
- RemoteImage
- TokenIcon
- Snaps
- SnapUIRenderer
- __snapshots__
- SnapUISelector
- UI
- ActionModal
- ActionContent
- ActionView
- AddressCopy
- AssetOverview/Price
- Assets/components/Balance
- BrazeBanner
- Bridge
- Views
- BatchSellTokenSelect
- BridgeView
- _mocks_
- components
- BridgeTokenSelector
- HighRateAlertModal
- PriceImpactModal
- QuoteSelectorView
- SlippageModal
- SwapsConfirmButton
- TokenWarningModal
- TransactionDetails
- constants
- hooks
- useAssetMetadata
- useBridgeQuoteData
- useBridgeQuoteEvents
- useBridgeViewOnFocus
- useHasSufficientGas
- useInsufficientNativeReserveError
- useTokenSearch
- useTokensWithBalance
- testUtils
- utils
- BrowserUrlBar
- Card
- components/Onboarding
- hooks
- pushProvisioning/adapters/wallet
- util
- Carousel
- Charts
- AdvancedChart
- LivelineChart
- __tests__
- DefiEmptyState
- Earn
- Views/EarnLendingWithdrawalConfirmationView
- components/Musd/MusdConversionAssetRow
- constants
- hooks
- routes
- HintModal
- MarketInsights
- Views/MarketInsightsView
- utils
- Money
- Views
- MoneyHomeView
- MoneyHowItWorksView
- MoneyOnboardingView
- MoneyPotentialEarningsView
- components
- MoneyAddMoneySheet
- MoneyApyInfoSheet
- MoneyBalanceCard
- MoneyBalanceSummary
- MoneyCondensedInfoCards
- MoneyEarnCryptoInfoSheet
- MoneyEarningsInfoSheet
- MoneyEarnings
- MoneyHowItWorks
- MoneyMetaMaskCard
- MoneyMoreSheet
- MoneyPotentialEarnings
- MoneySectionHeader
- MoneyTransferSheet
- MoneyWhatYouGet
- hooks
- routes
- utils
- MultichainTransactionDetailsModal
- NetworkAssetLogo
- Notification/BaseNotification
- OptinMetrics
- Perps
- Views
- PerpsCancelAllOrdersView
- PerpsCloseAllPositionsView
- PerpsClosePositionView
- PerpsHeroCardView
- PerpsHomeView
- PerpsOrderView
- PerpsSelectAdjustMarginActionView
- PerpsSelectModifyActionView
- PerpsSelectOrderTypeView
- PerpsTPSLView
- PerpsTooltipView
- adapters
- components
- PerpsAdjustMarginActionSheet
- PerpsBottomSheetTooltip
- PerpsCard
- PerpsCrossMarginWarningBottomSheet
- PerpsFlipPositionConfirmSheet
- PerpsLimitPriceBottomSheet
- PerpsMarketHeader
- PerpsMarketRowItem
- PerpsModifyActionSheet
- PerpsOrderHeader
- PerpsOrderTypeBottomSheet
- PerpsPositionCard
- PerpsRowSkeleton
- PerpsTokenLogo
- PerpsWebSocketHealthToast
- hooks
- providers
- Predict
- assets
- components
- PredictActionButtons
- PredictBalance
- PredictFeeBreakdownSheet
- PredictKeypad
- PredictWorldCupMainFeedBanner
- constants
- contexts
- hooks
- providers/polymarket
- protocol
- queries
- routes
- schemas
- selectors/featureFlags
- services
- types
- utils
- views
- PredictBuyPreview
- PredictBuyWithAnyToken
- components
- PredictBuyAmountSection
- PredictBuyBottomContent
- PredictPayWithAnyTokenInfo
- hooks
- PredictFeed
- PredictMarketDetails
- PredictWorldCup
- QRHardware
- Ramp
- Aggregator
- Views/Quotes
- components
- hooks
- Deposit
- Views
- BasicInfo
- EnterAddress
- hooks
- types
- Views
- Checkout
- HeadlessHost
- NativeFlow
- deeplink
- headless
- hooks
- utils
- ReusableModal
- Rewards
- Views
- components
- Benefits
- Campaigns
- tour
- ContentfulRichText
- EarnRewards
- EndOfSeasonClaimBottomSheet
- PreviousSeason
- ReferralDetails
- RewardsUpdateRequired
- Settings
- Tabs
- LevelsTab
- MusdCalculatorTab
- OverviewTab
- Vip
- hooks
- utils
- RiveOnboardingStepper
- SelectComponent
- SettingsDrawer
- SettingsNotification
- SimulationDetails/BalanceChangeList
- Sites/components/SitesList
- SliderButton
- SlippageSlider
- Stake/components/StakingBalance/StakingCta
- StyledButton
- SwitchCustomNetwork
- TimeEstimateInfoModal
- TokenDetails
- components
- hooks
- TokenImage
- Tokens
- hooks
- TransactionActionModal
- TransactionActionContent
- TransactionElement
- Trending/components
- FilterBar
- TrendingTokenRowItem
- TrendingTokenSkeleton
- TrendingTokensList
- WalletAction
- WalletHomeOnboardingSteps
- WarningExistingUserModal
- WhatsHappening
- components
- hooks
- util
- Views
- AccountBackupStep1
- AccountConnect
- AccountPermissions
- AddAccountActions
- AddAsset
- components/NetworkListBottomSheet
- AddressSelector
- AndroidBackHandler
- BrowserTab
- components/PhishingModal
- Browser
- ChoosePassword
- ConnectQRHardware
- DiscoveryTab
- Homepage
- Sections
- Cash
- DeFi
- NFTs
- Perpetuals
- Predictions
- Tokens
- components
- WhatsHappening
- components
- util
- components
- HomepageSectionUnrealizedPnlRow
- SectionRow
- ViewMoreCard
- hooks
- ImportFromSecretRecoveryPhrase
- ImportPrivateKeySuccess
- InfoNetworkModal
- Login
- ManualBackupStep1
- ManualBackupStep3
- MediaPlayer
- MultichainAccounts
- AccountDetails/components
- AccountInfo
- ExportCredentials
- SmartAccountNetworkList
- SmartAccount
- MultichainAccountConnect
- MultichainPermissionsSummary
- WalletDetails/BaseWalletDetails
- components
- NetworkSelector/RpcSelectionModal
- NetworksManagement/NetworkDetailsView
- components
- hooks
- NftDetails
- OAuthRehydration
- OnboardingInterestQuestionnaire
- OnboardingSuccess
- OnboardingSecuritySettings
- SDK/SDKSessionsManager
- Settings
- AdvancedSettings
- ResetAccountModal
- DeveloperOptions
- SimpleWebview
- SocialLeaderboard
- TraderPositionView
- components/QuickBuyBottomSheet
- hooks
- TraderProfileView
- components
- hooks
- utils
- SrpInput
- Input
- TradeWalletActions
- TrendingView
- tabs
- UnifiedTransactionsView
- WalletActions
- Wallet
- hooks
- WhatsHappeningDetailView
- components
- hooks
- utils
- confirmations
- components
- PayAccountSelector
- UI
- Tooltip
- bottom-modal
- hero
- highlighted-item
- info-row
- alert-row
- info-value/address
- pay-with-section
- payment-method-row
- activity/transaction-details-summary
- confirmation-asset-polling-provider
- confirm
- developer/confirmations-developer-options
- hero-token
- info-root
- info
- custom-amount-info
- musd-conversion-info
- perps-withdraw-info
- predict-withdraw-info
- modals
- alert-modal
- pay-with-bottom-sheet
- switch-account-type-modal/account-network-row
- qr-info
- rows
- bridge-fee-row
- pay-with-row
- total-row
- transactions/hero-row
- send/asset
- token-icon
- transactions/custom-amount
- constants
- context
- confirmation-context
- qr-hardware-context
- hooks
- activity
- alerts
- gas
- metrics
- pay
- sections
- send
- alerts
- transactions
- ui
- legacy/components/WatchAssetRequest
- utils
- hooks
- AssetPolling
- useMultichainBalances
- constants
- controllers/perps
- providers
- services
- types
- utils
- core
- Analytics
- Authentication
- BackgroundBridge
- Braze
- hooks
- useBrazeIdentity
- DeeplinkManager
- handlers/legacy
- __tests__
- types
- util/deeplinks
- Engine
- controllers
- analytics-controller
- card-controller
- providers
- utils
- core-backend
- network-controller
- rewards-controller
- services
- transaction-controller/event-handlers
- messengers
- card-controller-messenger
- core-backend
- rewards-controller-messenger
- transaction-controller-messenger
- transaction-pay-controller-messenger
- utils
- HardwareWallet
- adapters
- hooks
- RPCMethods
- SDKConnect
- Connection
- handlers
- Snaps
- permissions
- ToastService
- __mocks__
- redux/slices
- bridge
- declarations
- features/SampleFeature/components/views
- images
- benefits
- rewards
- reducers
- banners
- onboarding
- rewards
- user
- selectors
- attribution
- featureFlagController
- brazeBannerHome
- confirmations
- homepage
- moneyAccount
- tokenDetailsOhlcvWsIntegration
- onboarding
- rewards
- store
- migrations
- persistConfig
- sagas
- util
- analytics
- device
- haptics/__mocks__
- identity/hooks
- useBrazeIdentity
- useIdentityEffects
- notifications/hooks
- onboarding
- sentry
- test
- transactions
- hooks
- docs
- predict
- readme
- testing
- ios
- MetaMask.xcodeproj
- MetaMask
- Base.lproj
- Images.xcassets
- AppIcon-QA.appiconset
- AppIcon.appiconset
- locales
- languages
- patches
- scripts
- docker
- generate-attributions
- ios
- perps/agentic/lib
- tests
- api-mocking
- mock-responses
- defaults
- polymarket
- component-view
- presets
- renderers
- docs
- feature-flags
- flows
- framework
- fixtures
- json
- performance
- helpers
- analytics/expectations
- swap
- module-mocking/sentry
- page-objects
- Browser
- Perps
- Settings
- wallet
- performance/onboarding
- scripts
- smoke
- multichain
- permissions/chains
- solana-wallet-standard
- networks
- perps
- predict
- snaps
- swap
- wallet
- browser
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
This file was deleted.
Lines changed: 0 additions & 4 deletions
This file was deleted.
This file was deleted.
This file was deleted.
Lines changed: 0 additions & 195 deletions
This file was deleted.
0 commit comments