Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
176 commits
Select commit Hold shift + click to select a range
ccc67c9
feat: support swap deep links cp-13.0.0 (#34259)
micaelae Jul 17, 2025
30e2d2b
fix: show solana connected state (#34375)
NidhiKJha Jul 17, 2025
8683e0f
fix: header titles in unified asset picker cp-13.0.0 (#34365)
ghgoodreau Jul 17, 2025
723a4a5
fix: use button for quiz words instead of text-field cp-13.0.0 (#34280)
lionellbriones Jul 18, 2025
cbe647a
fix: Apple login cp-13.0.0 (#34391)
lwin-kyaw Jul 18, 2025
1ef2bdf
fix: reset parsed search params after setting quote request inputs cp…
micaelae Jul 18, 2025
aa3968f
fix: handle recovery ratelimit error cp-13.0.0 (#34397)
lwin-kyaw Jul 18, 2025
0a601ed
feat: enabled websocket for Solana e2e (#34250)
javiergarciavera Jul 18, 2025
380da05
fix: update address qr code navigation to prevent infinite loop of na…
hmalik88 Jul 18, 2025
c1c2164
fix: remove loading spinner from create ethereum account flow (#34374)
hmalik88 Jul 18, 2025
00ca721
fix: update popup-init.html's background colors to match latest desig…
davidmurdoch Jul 18, 2025
34ff83f
chore: change the message in the script that initializes master sync …
DDDDDanica Jul 18, 2025
5cb9f28
fix: temporarily skip bridge metrics e2e test (#34418)
micaelae Jul 18, 2025
1e0c250
chore: upgrade @metamask/design-tokens to v8.1.0 (#34384)
georgewrmarshall Jul 19, 2025
77bfb3a
fix: update explorer button text in address qr code page to reflect t…
hmalik88 Jul 19, 2025
3b7daf1
feat: enable SeedlessOnboarding feature cp-13.0.0 (#34429)
lwin-kyaw Jul 21, 2025
2aef330
fix: cp-13.0.0 ensure we enable any missing networks when performing …
Prithpal-Sooriya Jul 21, 2025
384d2b8
fix: handle keyring remove when import srp seedless error cp-13.0.0 (…
tuna1207 Jul 21, 2025
2875a13
fix: check password outdated before import private key cp-13.0.0 (#34…
tuna1207 Jul 21, 2025
91aaf8a
fix: optimize unlock performance cp-13.0.0 (#34436)
lwin-kyaw Jul 21, 2025
2fb3782
fix: infinite loading on spending cap when selected chain differs fro…
vinistevam Jul 21, 2025
06f8a58
fix: check if metametrics is done before redirecting to page on socia…
lionellbriones Jul 21, 2025
f2104e9
fix: cp-12.22.3 Fix frequent writes from CronjobController (#34413)
Gudahtt Jul 21, 2025
6e6be31
test: add wallet details e2e tests (#34276)
PatrykLucka Jul 21, 2025
f628bc6
chore: Update `form-data` to address advisory (#34480)
Gudahtt Jul 21, 2025
9a577c9
chore: Add buttons to test error capture (#34386)
Gudahtt Jul 21, 2025
4220f89
chore: Improve performance of address formatting/validation (#34152)
Gudahtt Jul 21, 2025
6010310
fix: make bg color on the loading screen in popup match bg of app (#3…
davidmurdoch Jul 22, 2025
4c17936
fix: updated reset wallet content for social account cp-13.0.0 (#34466)
lionellbriones Jul 22, 2025
49d7ef2
fix: cp-12.22.3 Stop polling multichain rates while idle (#34474)
Gudahtt Jul 22, 2025
ac7bc5d
fix: Prevent redundant persist store updates (#34506)
Gudahtt Jul 22, 2025
f38ddf4
fix: show tx alert when simulation error is ResultWithNegativeLamport…
micaelae Jul 22, 2025
0df43c8
feat: Onboarding Unlock page update cp-13.0.0 (#34505)
lwin-kyaw Jul 22, 2025
3572d6e
fix: use origin instead of mainFrameOrigin in trust signals middlewar…
AugmentedMode Jul 22, 2025
ee705a1
fix: cp-12.22.3 Stop persisting `permissionActivityLog` state (#34465)
Gudahtt Jul 22, 2025
2d0ca0b
fix: changes default label of bridge originated txs to swap from send…
ghgoodreau Jul 22, 2025
677764c
fix: Reduce Solana snap activity while idle (#34473)
aganglada Jul 22, 2025
6118980
chore: bump bridge-controller to 36.1.0 and bridge-status-controller …
micaelae Jul 22, 2025
02bcf05
chore: adding tailwind eslint plugin (#34211)
georgewrmarshall Jul 22, 2025
5be75d0
fix: integrate phishing controller actions into NFT messengers cp-13.…
AugmentedMode Jul 22, 2025
3ecc4d1
fix: unified swaps label (#34467)
ghgoodreau Jul 22, 2025
04b823b
fix: set swap src chain based on selected asset cp-13.0.0 (#34385)
micaelae Jul 22, 2025
51af74c
feat: 2.12 Session Expiry modal cp-13.0.0 (#34118)
lionellbriones Jul 23, 2025
7d94934
fix: password change rollback cp-13.0.0 (#34520)
lwin-kyaw Jul 23, 2025
6db381e
fix: copy and style fixes for unlock page and creation page cp-13.0.0…
lionellbriones Jul 23, 2025
cd1194a
fix: add loader for onboarding unlock page cp-13.0.0 (#34518)
lionellbriones Jul 23, 2025
2978ee4
fix: asynchrous background password-sync check cp-13.0.0 (#34534)
lwin-kyaw Jul 23, 2025
15108bd
fix: security tab scroll capitalize social cp-13.0.0 (#34514)
lionellbriones Jul 23, 2025
415c768
fix: fixed incorrect navigation upon clicking back/refresh actions fr…
lwin-kyaw Jul 23, 2025
2bdccf0
bump: multichain network controller (#34286)
darioAnongba Jul 23, 2025
592be3b
fix: error text should not be dimmed when text field is disabled cp-1…
lionellbriones Jul 23, 2025
f121429
chore: Bump Snaps packages (#34504)
Mrtenz Jul 23, 2025
ff8a057
fix: Fix silently dropped errors in shared code (#34382)
Gudahtt Jul 23, 2025
2da9127
fix: Set max limit of block gas used for gas estimation to 10M (#34398)
jpuri Jul 23, 2025
efd125c
feat: Add Ocap Kernel Panel as a devtools page (#34029)
sirtimid Jul 23, 2025
0ad2fbe
fix: cp-13.0.0 fix displayed price for native tokens on token details…
salimtb Jul 23, 2025
6c04145
fix: cp-13.0.0 ensure NetworkOrderController fallbacks to ethereum if…
Prithpal-Sooriya Jul 23, 2025
5a14e37
fix: handle RecoveryError at unlock when password is outdated cp-13.0…
lwin-kyaw Jul 23, 2025
74d281f
fix: normalize signature request supporting `object` type (#34054)
vinistevam Jul 23, 2025
138cb42
feat: add MultichainAddressRowsList component (#34405)
PatrykLucka Jul 23, 2025
2144b43
fix: cp-13.0.0 improve perf for network checkbox (#34450)
salimtb Jul 23, 2025
79d2541
chore(accounts): bump `eth-snap-keyring` to support generic accounts …
danroc Jul 23, 2025
7fbb717
feat: configure enforced simulations slippage (#33924)
matthewwalsh0 Jul 23, 2025
00b9474
fix: activitylist fromtoken sourced from bridge controller (#34521)
ghgoodreau Jul 23, 2025
5ebbe04
fix: cp-13.0.0 allows editing non-evm accounts name (#34552)
zone-live Jul 23, 2025
4814f7c
chore: adding tailwind docs (#34489)
georgewrmarshall Jul 23, 2025
020713f
fix: extension update prompt in popup (#34372)
itsyoboieltr Jul 23, 2025
9ebc5a4
chore: adds util for calculating amt in bridge mapping (#34575)
ghgoodreau Jul 23, 2025
f67714e
fix: unlock page many attempts error time format and copywriting cp-1…
lionellbriones Jul 24, 2025
407608b
feat: add `multichain-accounts-service` initialization (#34178)
ccharly Jul 24, 2025
79b362d
fix: clicking back multiple times from metametrics page cp-13.0.0 (#3…
lionellbriones Jul 24, 2025
87ff4bd
chore: bump accounts dependencies (#34570)
ccharly Jul 24, 2025
248ec81
fix: reset app warning upon SeedlessOnboarding actions success cp-13.…
lwin-kyaw Jul 24, 2025
bdf8dac
build(webpack): support commonjs style `exports.something = value` sy…
davidmurdoch Jul 24, 2025
86609c3
fix: creation page button login with social copy cp-13.0.0 (#34598)
lionellbriones Jul 24, 2025
df24f02
feat: Add multichain account cell component (#34482)
david0xd Jul 24, 2025
36af63a
fix: reset prefilled dest token when reopening Swap page cp-13.0.0 (#…
micaelae Jul 24, 2025
3f1de3e
chore: update discover link to token explore page (#34580)
georgewrmarshall Jul 24, 2025
dd65fd5
fix: Throw Password Outdated error when user enters old password cp-1…
lwin-kyaw Jul 25, 2025
171cbe0
ci: update e2e image org (#34572)
jake-perkins Jul 25, 2025
ff1464f
feat: 2.11 added sentry error UI cp-13.0.0 (#34208)
lionellbriones Jul 25, 2025
599be3a
fix: removed 'Use a different login method' for non-social-login flow…
lwin-kyaw Jul 25, 2025
251e8dc
fix: enable multiple networks when added via dapp cp-13.0.0 (#34507)
NidhiKJha Jul 25, 2025
1699f17
chore: fix toggle spacing (#34536)
georgewrmarshall Jul 25, 2025
1f277d6
chore: fix hex color violations and enable color-no-hex rules (#34604)
georgewrmarshall Jul 25, 2025
dae528d
fix(snaps): Add localized name to `AccountSelector` (#34657)
GuillaumeRx Jul 28, 2025
61c7f17
chore(e2e): Add E2E test for `snap_trackError` (#34075)
Mrtenz Jul 28, 2025
f4e891d
fix: remove send gas validation (#34646)
matthewwalsh0 Jul 28, 2025
399912d
chore: Update CODEOWNERS from `snaps-devs` to `core-platform` (#34659)
GuillaumeRx Jul 28, 2025
097f763
ci(gh-action): add gh action to keep stable branch sync (#33026)
alucardzom Jul 28, 2025
36229be
feat: seedless-onboarding prod builds for release branch cp-13.0.0 (#…
lwin-kyaw Jul 28, 2025
82e3f2f
test: Fix bugs in token-util tests (#34635)
Gudahtt Jul 28, 2025
3fdb6d6
chore: Remove obsolete MMI policy (#34626)
Gudahtt Jul 28, 2025
272f8ff
fix: fix token autodetection (#34647)
salimtb Jul 28, 2025
799f2b4
Merge origin/main into master-sync
DDDDDanica Jul 28, 2025
466daea
feat: update seedless controller cp-13.0.0 (#34632)
tuna1207 Jul 28, 2025
b06c089
release: Master sync to main (#34669)
Gudahtt Jul 28, 2025
d188e5f
fix: dapp scanning on connect cp-13.0.0 (#34606)
imblue-dabadee Jul 28, 2025
aacd542
fix: prevent "Request cannot be constructed from a URL that includes …
cryptodev-2s Jul 28, 2025
e791f09
fix: hold insufficient balance alert until simulation is completed (#…
vinistevam Jul 28, 2025
f6ad49f
feat: trezor web connect library upgrade. (#33834)
dawnseeker8 Jul 28, 2025
5b35b34
fix: cp-13.0.0 update search logic for CAs (#34358)
SteP-n-s Jul 28, 2025
69a9dc3
fix: Fix silently dropped Sentry errors in background (#34379)
Gudahtt Jul 28, 2025
af5148b
chore: Rename extension minimum version flag cp-12.23.1 (#34636)
Gudahtt Jul 28, 2025
c8e3971
fix: prevent asset reset to native on Send/Swap when navigating from …
vinistevam Jul 29, 2025
1ab776b
perf: Reduce contentscript size (#34688)
FrederikBolding Jul 29, 2025
6fb3dcb
test(e2e): Add E2E test for `snap_startTrace` and `snap_endTrace` (#3…
Mrtenz Jul 29, 2025
1f318dd
fix: srp lock image update and remove follow x (#34619)
lionellbriones Jul 29, 2025
bee4737
fix: polish welcome page copywriting and styles (#34621)
lionellbriones Jul 29, 2025
4f3155f
fix: Fix silently dropped errors in UI (#34383)
Gudahtt Jul 29, 2025
878c6ce
fix: usd values in simulation metrics (#34645)
matthewwalsh0 Jul 29, 2025
05925d6
fix: Update spacing between the account avatar and its details rows (…
david0xd Jul 29, 2025
99fbca6
chore: Revert "feat: 2.11 added sentry error UI cp-13.0.0" (#34699)
Gudahtt Jul 29, 2025
82f9fa4
ci: cache the anvil binary (#34703)
HowardBraham Jul 29, 2025
73f862b
fix(33176): remove ledger transport initialization at login and vault…
Akaryatrh Jul 29, 2025
c0065c6
fix: reset `AccountTreeController` state after vault reset - cp-13.0.…
ccharly Jul 29, 2025
42f10ef
feat: show additional startup errors to users (#34305)
davidmurdoch Jul 29, 2025
e72f625
chore: update sei new logo (#34634)
Julink-eth Jul 30, 2025
7eb3168
chore: bump multichain-accounts deps (#34631)
ccharly Jul 30, 2025
cab306e
fix: update smart contract account toggle components to remove flicke…
hmalik88 Jul 30, 2025
13b1fb4
fix: Localize NetworkIndicator text (#34648)
darkwing Jul 30, 2025
3e11fd1
Merge origin/main into master-sync
DDDDDanica Jul 30, 2025
cb1a4ae
fix: show correct subtitle and redirect on view explorer (#34723)
NidhiKJha Jul 30, 2025
788a802
fix: patch profile-sync-controller to rename endpoint cp-13.0.0 (#34721)
mathieuartu Jul 30, 2025
45e8b2f
ci(gh-actions): unify version release workflows (#33555)
alucardzom Jul 30, 2025
0a842dc
release: master sync 12.23.1 (#34729)
Gudahtt Jul 30, 2025
7559e70
fix: social login flow links cp-13.0.0 (#34718)
lionellbriones Jul 30, 2025
ed4493d
style: tell VSCode to end all files with a newline (#34673)
HowardBraham Jul 30, 2025
7bfe481
fix: redirect user to change password after failing (#34722)
lionellbriones Jul 30, 2025
25ca856
feat: enable notifications by default for users (#34693)
Prithpal-Sooriya Jul 30, 2025
e46a7c9
feat: solana websockets (#34620)
aganglada Jul 30, 2025
3303305
chore: Remove remote mode (#34041)
kevinbluer Jul 30, 2025
d4b58b6
fix: add logic to revert state for smart contract account toggle if t…
hmalik88 Jul 30, 2025
3bf96cd
test: Fixed the test aggregated balance (#34629)
hjetpoluru Jul 31, 2025
6abbfa5
feat: do passwordOutdatedCheck in change-password page render (#34757)
lwin-kyaw Jul 31, 2025
ae386b3
chore: add CODEOWNERS for QA Team - E2E Framework (#34719)
chloeYue Jul 31, 2025
d6384af
perf: More bundle size reductions (#34694)
FrederikBolding Jul 31, 2025
42bfb60
fix: incorrect navigation upon refreshing the page during the social …
lwin-kyaw Jul 31, 2025
8475576
chore: bump institutional snap to 1.3.2 cp-13.0.0 (#34761)
shane-t Jul 31, 2025
733b642
fix: potential undefined dereference of sessionProperties during Sola…
jiexi Jul 31, 2025
60c11d7
test(e2e): Add E2E test for `snap_trackEvent` (#34764)
Mrtenz Jul 31, 2025
eedffa1
fix: additional network permission request view shows all networks (#…
ffmcgee725 Jul 31, 2025
f678f5d
fix: account list order (multichain accounts state 1 temporary fix) (…
gantunesr Jul 31, 2025
222206f
fix: hides bridge button on testnet for unified ui (#34700)
ghgoodreau Jul 31, 2025
8c3f210
fix: adds fromChain to the usecrosschainswaps event tracker hook (#34…
ghgoodreau Jul 31, 2025
0be7d03
test: Fix test failure when WebDriver is inactive before shutdown (#3…
Gudahtt Jul 31, 2025
cce66ee
build(webpack): silence swc sourcemap messages on Windows (#34777)
davidmurdoch Aug 1, 2025
e506668
bump semvar version to 13.1.0
metamaskbot Aug 1, 2025
2fbf764
test: cherry-pick `4be7602` balance e2e flaky test (#34832)
seaona Aug 5, 2025
3c235b8
release(runway): cherry-pick fix: bump @metamask/multichain-api-clien…
runway-github[bot] Aug 6, 2025
ab227a5
fix: flaky test `Address Book Sends to an address book entry on a dif…
seaona Aug 6, 2025
c7af70f
fix: flaky test `Multichain Aggregated Balances shows correct aggrega…
seaona Aug 6, 2025
efbb5c4
fix: flaky test `Editing Confirm Transaction goes back from confirm p…
seaona Aug 6, 2025
cd61298
release(runway): cherry-pick chore: cp-13.1.0 Add missing bundle envi…
runway-github[bot] Aug 6, 2025
85f4bdb
release(runway): cherry-pick chore: Remove `@sentry/browser` from mai…
runway-github[bot] Aug 6, 2025
95a0853
chore: chore/13.1.0-Changelog (#34839)
metamaskbot Aug 6, 2025
88f8948
release(runway): cherry-pick fix: slippage update on unified cp-13.1.…
runway-github[bot] Aug 7, 2025
85c64cb
release(runway): cherry-pick fix: moved pwd-change to background cp-1…
runway-github[bot] Aug 7, 2025
8fa9453
Merge remote-tracking branch 'origin/master' into sync-v13.1.0-with-m…
gauthierpetetin Aug 7, 2025
7463d1a
Update Attributions
metamaskbot Aug 7, 2025
df3e12a
Merge pull request #34947 from MetaMask/sync-v13.1.0-with-master
Gudahtt Aug 7, 2025
db3c85e
release(runway): cherry-pick refactor: remove password strength metri…
runway-github[bot] Aug 8, 2025
ec739ed
release(runway): cherry-pick fix: add `account_type` property to the …
runway-github[bot] Aug 8, 2025
acef1fe
release(runway): cherry-pick fix: add slippage to quote card cp-13.1.…
runway-github[bot] Aug 9, 2025
41ea768
release(runway): cherry-pick fix: bump solana snap (#34990)
runway-github[bot] Aug 11, 2025
e625002
Merge remote-tracking branch 'origin/master' into sync-v10.0.0-with-m…
gauthierpetetin Aug 12, 2025
04ff5c1
Merge pull request #35024 from MetaMask/sync-v13.1.0-with-master
gauthierpetetin Aug 12, 2025
6c5a458
test: Force exit after running E2E test (#34966) cherry-pick (#35026)
seaona Aug 12, 2025
b699b03
chore: chore/13.1.0-Changelog (#34993)
gauthierpetetin Aug 12, 2025
dff0c4e
cherry-pick: chore: bump institutional snap (#35056)
shane-t Aug 13, 2025
8fdc10e
release(runway): cherry-pick fix: sanitize sensitive items from UI st…
runway-github[bot] Aug 14, 2025
708433d
release(runway): cherry-pick fix: work around Firefox bug by avoiding…
runway-github[bot] Aug 14, 2025
49f2ab7
fix: redact email from state logs (#35119) (#35123)
seaona Aug 14, 2025
51aede8
release(runway): cherry-pick fix: cp-13.1.0 Prevent dapp network chan…
runway-github[bot] Aug 15, 2025
431f45c
release(runway): cherry-pick fix: show effective gas in swaps QuoteCa…
gauthierpetetin Aug 15, 2025
0bff2d8
chore: chore/13.1.0-Changelog (#35121)
gauthierpetetin Aug 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
31 changes: 30 additions & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ module.exports = {
parser: '@babel/eslint-parser',
plugins: ['@metamask/design-tokens'],
rules: {
'@metamask/design-tokens/color-no-hex': 'warn',
'@metamask/design-tokens/color-no-hex': 'error',
'import/no-restricted-paths': [
'error',
{
Expand Down Expand Up @@ -390,6 +390,35 @@ module.exports = {
},
},
},
/**
* Tailwind CSS
*/
{
files: [
'ui/pages/design-system/**/*.{ts,tsx}',
// Add your workspace if you'd like to start using tailwind css,
// for example:
// 'ui/pages/your-page/**/*.{ts,tsx}',
],
plugins: ['tailwindcss'],
rules: {
// Tailwind CSS rules - same as design system
'tailwindcss/classnames-order': 'error',
'tailwindcss/enforces-negative-arbitrary-values': 'error',
'tailwindcss/enforces-shorthand': 'error',
'tailwindcss/no-arbitrary-value': 'off', // There are legitimate reasons to use arbitrary values but we should specifically error on static colors
'tailwindcss/no-custom-classname': 'error',
'tailwindcss/no-contradicting-classname': 'error',
'tailwindcss/no-unnecessary-arbitrary-value': 'error',
},
settings: {
tailwindcss: {
callees: ['twMerge'],
config: 'tailwind.config.js',
classRegex: ['^(class(Name)?)$'],
},
},
},
/**
* Mocha tests
*
Expand Down
25 changes: 17 additions & 8 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ lavamoat/ @MetaMask/extension-devs @MetaMask/policy-r
# file is responsible, at present, for loading the snaps execution environment
# for MV3. Any changes to this file should require at least one member of the
# snaps development team to review and approve the changes.
offscreen/scripts/offscreen.ts @MetaMask/snaps-devs
offscreen/scripts/offscreen.ts @MetaMask/core-platform


# The privacy-snapshot.json file includes a list of all hosts that the
Expand Down Expand Up @@ -91,13 +91,13 @@ app/scripts/controllers/swaps @MetaMask/swaps-engineers
**/ramps/** @MetaMask/ramp

# Snaps
**/snaps/** @MetaMask/snaps-devs
shared/constants/permissions.ts @MetaMask/snaps-devs
ui/helpers/utils/permission.js @MetaMask/snaps-devs
app/scripts/constants/snaps.ts @MetaMask/snaps-devs
**/snaps/** @MetaMask/core-platform
shared/constants/permissions.ts @MetaMask/core-platform
ui/helpers/utils/permission.js @MetaMask/core-platform
app/scripts/constants/snaps.ts @MetaMask/core-platform

# Co-owned by Confirmations and Snaps
ui/components/app/metamask-template-renderer @MetaMask/confirmations @MetaMask/snaps-devs
ui/components/app/metamask-template-renderer @MetaMask/confirmations @MetaMask/core-platform

# Wallet UX
ui/components/app/whats-new-popup @MetaMask/wallet-ux
Expand Down Expand Up @@ -136,8 +136,17 @@ ui/components/ui/nft-collection-image @MetaMask/metamask-assets

# Extension Platform
.yarnrc.yml @MetaMask/extension-platform
test/e2e/mock-e2e-allowlist.js @MetaMask/extension-platform

# Smart Transactions
app/scripts/controller-init/smart-transactions @MetaMask/transactions
app/scripts/lib/smart-transaction @MetaMask/transactions
app/scripts/lib/smart-transaction @MetaMask/transactions

# QA Team - E2E Framework
test/e2e/page-objects/ @MetaMask/qa
test/e2e/seeder/ @MetaMask/qa
test/e2e/default-fixture.js @MetaMask/qa
test/e2e/fixture-builder.js @MetaMask/qa
test/e2e/fixture-server.js @MetaMask/qa
test/e2e/helpers.js @MetaMask/qa
test/e2e/mock-e2e-allowlist.js @MetaMask/qa
test/e2e/mock-e2e.js @MetaMask/qa
23 changes: 17 additions & 6 deletions .github/scripts/bundle.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
#!/usr/bin/env bash

# Keep this list synchronized with:
# * The environment variables used by the `run-build` step in `.github/workflows/run-build.yml`.
# * The environment variables used by the `publish-release` step in `.github/workflows/publish-release.yml`.
export APPLE_BETA_CLIENT_ID=""
export APPLE_FLASK_CLIENT_ID=""
export APPLE_PROD_CLIENT_ID=""
export CONTENTFUL_ACCESS_SPACE_ID=""
export CONTENTFUL_ACCESS_TOKEN=""
export ETHERSCAN_API_KEY=""
Expand All @@ -10,22 +16,27 @@ export FIREBASE_MEASUREMENT_ID=""
export FIREBASE_MESSAGING_SENDER_ID=""
export FIREBASE_PROJECT_ID=""
export FIREBASE_STORAGE_BUCKET=""
export GOOGLE_BETA_CLIENT_ID=""
export GOOGLE_FLASK_CLIENT_ID=""
export GOOGLE_PROD_CLIENT_ID=""
export INFURA_BETA_PROJECT_ID=""
export INFURA_FLASK_PROJECT_ID=""
export INFURA_PROD_PROJECT_ID=""
export INFURA_PROJECT_ID=""
export PUBNUB_PUB_KEY=""
export QUICKNODE_ARBITRUM_URL=""
export QUICKNODE_AVALANCHE_URL=""
export QUICKNODE_BASE_URL=""
export QUICKNODE_LINEA_MAINNET_URL=""
export QUICKNODE_MAINNET_URL=""
export QUICKNODE_OPTIMISM_URL=""
export QUICKNODE_POLYGON_URL=""
export SEGMENT_BETA_WRITE_KEY=""
export SEGMENT_FLASK_WRITE_KEY=""
export SEGMENT_PROD_WRITE_KEY=""
export SEGMENT_WRITE_KEY=""
export ANALYTICS_DATA_DELETION_SOURCE_ID=""
export ANALYTICS_DATA_DELETION_ENDPOINT=""
export SENTRY_AUTH_TOKEN=""
export SENTRY_DSN=""
export SENTRY_DSN_DEV=""
export VAPID_KEY=""
export TZ="UTC"
export VAPID_KEY=""
export ENABLE_MV3="false"

# 1. Download and install nvm:
Expand Down
2 changes: 1 addition & 1 deletion .github/scripts/close-release-bug-report-issue.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ async function main(): Promise<void> {

// Extract semver version number from the branch name
const releaseVersionNumberMatch = branchName.match(
/^Version-v(\d+\.\d+\.\d+)$/,
/^(?:Version-v|release\/)(\d+\.\d+\.\d+)$/,
);

if (!releaseVersionNumberMatch) {
Expand Down
2 changes: 1 addition & 1 deletion .github/scripts/create-bug-report-issue.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ async function main(): Promise<void> {
process.exit(1);
}

const issueBody = `**What is this bug report issue for?**\n\n1. This issue is used to track release dates on this [Github Project board](https://github.com/orgs/MetaMask/projects/${projectNumber}/views/${projectViewNumber}), which content then gets pulled into our metrics system.\n\n2. This issue is also used by our Zapier automations, to determine if automated notifications shall be sent on Slack for release \`${releaseVersion}\`. Notifications will only be sent as long as this issue is open.\n\n**Who created and/or closed this issue?**\n\n- This issue was automatically created by a GitHub action upon the creation of the release branch \`Version-v${releaseVersion}\`, indicating the release was cut.\n\n- This issue gets automatically closed by another GitHub action, once the \`Version-v${releaseVersion}\` branch merges into \`main\`, indicating the release is prepared for store submission.`;
const issueBody = `**What is this bug report issue for?**\n\n1. This issue is used to track release dates on this [Github Project board](https://github.com/orgs/MetaMask/projects/${projectNumber}/views/${projectViewNumber}), which content then gets pulled into our metrics system.\n\n2. This issue is also used by our Zapier automations, to determine if automated notifications shall be sent on Slack for release \`${releaseVersion}\`. Notifications will only be sent as long as this issue is open.\n\n**Who created and/or closed this issue?**\n\n- This issue was automatically created by a GitHub action upon the creation of the release branch \`Version-v${releaseVersion}\`, indicating the release was cut.\n\n- This issue gets automatically closed by another GitHub action, once the release branch \`Version-v${releaseVersion}\` or \`release/${releaseVersion}\` merges into \`main\`, indicating the release is prepared for store submission.`;
const issueId = await createIssue(octokit, repoOwner, planningRepoName, issueTitle, issueBody, [regressionLabelTestingId, typeBugLabelId, teamLabelId]);

// Retrieve project, in order to obtain its ID
Expand Down
31 changes: 31 additions & 0 deletions .github/scripts/get-next-semver-version.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/bash

FORCE_NEXT_SEMVER_VERSION=$1

# If FORCE_NEXT_SEMVER_VERSION is defined and not empty, use its value and skip the next operations
if [ -n "$FORCE_NEXT_SEMVER_VERSION" ]
then
echo "NEXT_SEMVER_VERSION=${FORCE_NEXT_SEMVER_VERSION}" >> "$GITHUB_ENV"
exit 0
fi

# Pattern for Version-vX.Y.Z branches
VERSION_BRANCHES_VERSION_V=$(git branch -r | grep -o 'Version-v[0-9]*\.[0-9]*\.[0-9]*' | grep -o '[0-9]*\.[0-9]*\.[0-9]*' | sort --version-sort | tail -n 1)
# Default pattern for release/x.y.z branches
VERSION_BRANCHES_RELEASE=$(git branch -r | grep -o 'release/[0-9]*\.[0-9]*\.[0-9]*' | grep -o '[0-9]*\.[0-9]*\.[0-9]*' | sort --version-sort | tail -n 1)


# Get the highest version from tags
VERSION_TAGS=$(git tag | grep -o 'v[0-9]*\.[0-9]*\.[0-9]*' | grep -o '[0-9]*\.[0-9]*\.[0-9]*' | sort --version-sort | tail -n 1)

# Get the version from package.json
VERSION_PACKAGE=$(node -p "require('../../package.json').version")

# Compare versions and keep the highest one
HIGHEST_VERSION=$(printf "%s\n%s\n%s\n%s" "$VERSION_BRANCHES_VERSION_V" "$VERSION_BRANCHES_RELEASE" "$VERSION_TAGS" "$VERSION_PACKAGE" | sort --version-sort | tail -n 1)
echo "HIGHEST_VERSION=${HIGHEST_VERSION}, VERSION_BRANCHES_VERSION_V=${VERSION_BRANCHES_VERSION_V}, VERSION_BRANCHES_RELEASE=${VERSION_BRANCHES_RELEASE}, VERSION_TAGS=${VERSION_TAGS}, VERSION_PACKAGE=${VERSION_PACKAGE}"

# Increment the minor version of the highest version found and reset the patch version to 0
NEXT_VERSION=$(echo "$HIGHEST_VERSION" | awk -F. -v OFS=. '{$2++; $3=0; print}')

echo "NEXT_SEMVER_VERSION=${NEXT_VERSION}" >> "$GITHUB_ENV"
1 change: 1 addition & 0 deletions .github/workflows/auto-update-pr-targeting-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
pull_request:
branches:
- Version-v*
- release/*

jobs:
auto-update:
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/check-attributions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ name: Check Attributions

on:
push:
branches: Version-v*
branches:
- Version-v*
- release/*

jobs:
check-attributions:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/check-pr-labels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ !(contains(github.ref, 'refs/heads/main') || contains(github.ref, 'refs/heads/master')) }}
cancel-in-progress: ${{ !(contains(github.ref, 'refs/heads/main') || contains(github.ref, 'refs/heads/master') || contains(github.ref, 'refs/heads/stable')) }}

jobs:
check-pr-labels:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/check-pr-max-lines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ on:
branches-ignore:
# Do not count lines on PRs targeting master or releases
- master
- stable
- Version-v*
- release/*

jobs:
check-pr-max-lines:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cla.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ !(contains(github.ref, 'refs/heads/main') || contains(github.ref, 'refs/heads/master')) }}
cancel-in-progress: ${{ !(contains(github.ref, 'refs/heads/main') || contains(github.ref, 'refs/heads/master') || contains(github.ref, 'refs/heads/stable')) }}

jobs:
CLABot:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/close-bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@ on:
pull_request:
branches:
- master
- stable
types:
- closed

jobs:
close-bug-report:
runs-on: ubuntu-latest
if: github.event.pull_request.merged == true && startsWith(github.event.pull_request.head.ref, 'Version-v')
if: github.event.pull_request.merged == true && ( startsWith(github.event.pull_request.head.ref, 'Version-v') || startsWith(github.event.pull_request.head.ref, 'release/') )
steps:
- name: Checkout and setup environment
uses: MetaMask/action-checkout-and-setup@v1
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/create-bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ jobs:
- name: Extract version from branch name if release branch
id: extract_version
run: |
if [[ "$GITHUB_REF" =~ ^refs/heads/Version-v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
version="${GITHUB_REF#refs/heads/Version-v}"
if [[ "$GITHUB_REF" =~ ^refs/heads/(Version-v|release/)[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
version=$(echo "$GITHUB_REF" | sed -E 's#^refs/heads/(Version-v|release/)##')
echo "New release branch($version), continue next steps"
echo "version=$version" >> "$GITHUB_OUTPUT"
else
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/create-release-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,18 @@ on:
workflow_dispatch:
inputs:
base-branch:
description: 'The base branch, tag, or SHA for git operations and the pull request (usually `main`)'
description: 'The base branch, tag, or SHA for git operations and the pull request. Usually `main`'
required: true
semver-version:
description: 'A semantic version, eg: x.x.x'
required: true
previous-semver-version:
description: 'Previous semantic version, eg: x.x.x'
required: true

jobs:
create-release-pr:
name: Create Release Pull Request using Github Tools
uses: MetaMask/github-tools/.github/workflows/create-release-pr.yml@fc6fe1a3fb591f6afa61f0dbbe7698bd50fab9c7
with:
platform: extension
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/identify-codeowners.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ !(contains(github.ref, 'refs/heads/main') || contains(github.ref, 'refs/heads/master')) }}
cancel-in-progress: ${{ !(contains(github.ref, 'refs/heads/main') || contains(github.ref, 'refs/heads/master') || contains(github.ref, 'refs/heads/stable')) }}

jobs:
identify-codeowners:
Expand Down
22 changes: 16 additions & 6 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ on:
branches:
- main
- master
- stable
- Version-v*
- release/*
- trigger-ci*
pull_request:
types:
Expand All @@ -23,7 +25,7 @@ on:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ !(contains(github.ref, 'refs/heads/main') || contains(github.ref, 'refs/heads/master')) }}
cancel-in-progress: ${{ !(contains(github.ref, 'refs/heads/main') || contains(github.ref, 'refs/heads/master') || contains(github.ref, 'refs/heads/stable')) }}

env:
# For a `pull_request` event, the branch is `github.head_ref``.
Expand All @@ -49,6 +51,13 @@ jobs:
skip-allow-scripts: true
yarn-custom-url: ${{ vars.YARN_URL }}

# Need to cache `.metamask` folder for the anvil binary
- name: Cache .metamask folder
uses: actions/cache/save@v4
with:
path: .metamask
key: .metamask-${{ hashFiles('yarn.lock') }}

lint-workflows:
name: Lint workflows
uses: metamask/github-tools/.github/workflows/lint-workflows.yml@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
Expand Down Expand Up @@ -99,14 +108,14 @@ jobs:
uses: ./.github/workflows/run-build.yml
with:
build-name: build-dist-browserify
build-command: ${{ (github.head_ref || github.ref_name) == 'master' && 'yarn build prod' || 'yarn build dist' }}
build-command: ${{ ((github.head_ref || github.ref_name) == 'master' || (github.head_ref || github.ref_name) == 'stable') && 'yarn build prod' || 'yarn build dist' }}
secrets: inherit

build-dist-mv2-browserify:
uses: ./.github/workflows/run-build.yml
with:
build-name: build-dist-mv2-browserify
build-command: ${{ (github.head_ref || github.ref_name) == 'master' && 'yarn build prod' || 'yarn build dist' }}
build-command: ${{ ((github.head_ref || github.ref_name) == 'master' || (github.head_ref || github.ref_name) == 'stable') && 'yarn build prod' || 'yarn build dist' }}
mozilla-lint: true
enable-mv3: false
secrets: inherit
Expand All @@ -131,14 +140,14 @@ jobs:
uses: ./.github/workflows/run-build.yml
with:
build-name: build-flask-browserify
build-command: ${{ (github.head_ref || github.ref_name) == 'master' && 'yarn build --build-type flask prod' || 'yarn build --build-type flask dist' }}
build-command: ${{ ((github.head_ref || github.ref_name) == 'master' || (github.head_ref || github.ref_name) == 'stable') && 'yarn build --build-type flask prod' || 'yarn build --build-type flask dist' }}
secrets: inherit

build-flask-mv2-browserify:
uses: ./.github/workflows/run-build.yml
with:
build-name: build-flask-mv2-browserify
build-command: ${{ (github.head_ref || github.ref_name) == 'master' && 'yarn build --build-type flask prod' || 'yarn build --build-type flask dist' }}
build-command: ${{ ((github.head_ref || github.ref_name) == 'master' || (github.head_ref || github.ref_name) == 'stable') && 'yarn build --build-type flask prod' || 'yarn build --build-type flask dist' }}
mozilla-lint: true
enable-mv3: false
secrets: inherit
Expand Down Expand Up @@ -186,6 +195,7 @@ jobs:
run-benchmarks:
uses: ./.github/workflows/run-benchmarks.yml
needs:
- prep-deps
- build-test-browserify
- build-test-webpack

Expand Down Expand Up @@ -360,7 +370,7 @@ jobs:

publish-release:
name: Publish release
if: ${{ github.event_name == 'push' && github.ref_name == 'master' }}
if: ${{ github.event_name == 'push' && (github.ref_name == 'master' || github.ref_name == 'stable') }}
needs:
- build-dist-browserify
- build-dist-mv2-browserify
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/needs-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
prep-e2e:
# For a `pull_request` event, the branch is `github.head_ref``.
# For a `push` event, the branch is `github.ref_name`.
if: ${{ needs.needs-e2e.outputs.needs-e2e == 'true' && (github.head_ref || github.ref_name) != 'master' }}
if: ${{ needs.needs-e2e.outputs.needs-e2e == 'true' && (github.head_ref || github.ref_name) != 'master' && (github.head_ref || github.ref_name) != 'stable' }}
needs:
- needs-e2e
runs-on: ubuntu-latest
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish-prerelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
yarn-custom-url: ${{ vars.YARN_URL }}

- name: Find the associated PR
if: ${{ startsWith(env.BRANCH, 'Version-v') && (!env.PR_NUMBER || !env.BASE_COMMIT_HASH || !env.HEAD_COMMIT_HASH) }}
if: ${{ (startsWith(env.BRANCH, 'Version-v') || startsWith(env.BRANCH, 'release/')) && (!env.PR_NUMBER || !env.BASE_COMMIT_HASH || !env.HEAD_COMMIT_HASH) }}
uses: actions/github-script@v7
with:
script: |
Expand Down
Loading
Loading