1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00
metamask-extension/development
Elliot Winkler 8ffebb294b
Fix 'yarn setup' on M1 Macs (#11887)
There are a few issues encountered when running `yarn setup` on new
Apple Silicon (aka M1, aka arm64) Macs:

* The script halts when attempting to run the install step for
  the `chromedriver` package with the message "Only Mac 64 bits
  supported". This is somewhat misleading as it seems to indicate that
  chromedriver can only be installed on a 64-bit Mac. However, what I
  think is happening is that the installation script for `chromedriver`
  is not able to detect that an arm64 CPU *is* a 64-bit CPU. After
  looking through the `chromedriver` repo, it appears that 87.0.1 is the
  first version that adds a proper check ([1]).

  Note that upgrading chromedriver caused the Chrome-specific tests to
  fail intermittently on CI. I was not able to 100% work out the reason
  for this, but ensuring that X (which provides a way for Chrome to run
  in a GUI setting from the command line) is available seems to fix
  these issues.

* The script also halts when attempting to run the install step for
  the `electron` package. This happens because for the version of
  `electron` we are using (9.4.2), there is no available binary for
  arm64. It appears that Electron 11.x was the first version to support
  arm64 Macs ([2]). This is a bit trickier to resolve because we don't
  explicitly rely on `electron` — that's brought in by `react-devtools`.
  The first version of `react-devtools` that relies on `electron` 11.x
  is 4.11.0 ([3]).

[1]: 469dd0a6ee
[2]: https://www.electronjs.org/blog/apple-silicon
[3]: https://github.com/facebook/react/blob/main/packages/react-devtools/CHANGELOG.md#4110-april-9-2021
2021-09-01 10:40:40 -06:00
..
build Using a normal bundle instead of a factored bundle for phishing-detect (build sys) (#11972) 2021-08-30 17:58:50 -10:00
lib Fix 'yarn setup' on M1 Macs (#11887) 2021-09-01 10:40:40 -06:00
announcer.js Migrate version from _base manifest to package.json (#11029) 2021-05-10 14:16:03 -07:00
chromereload.js Build - refactor background process to use html (#10769) 2021-03-31 11:12:28 +08:00
create-static-server.js @metamask/eslint config@5.0.0 (#10358) 2021-02-04 10:15:23 -08:00
empty.js Build - refactor background process to use html (#10769) 2021-03-31 11:12:28 +08:00
generate-migration.sh Fixing migration script generation paths (#10664) 2021-03-17 12:21:46 +08:00
gource-viz.sh dev - move gource instructions from docs to development script 2019-09-10 22:05:16 +08:00
metamaskbot-build-announce.js Making bundle viz links collapsable (#11542) 2021-07-16 11:23:31 -07:00
missing-locale-strings.js @metamask/eslint config@5.0.0 (#10358) 2021-02-04 10:15:23 -08:00
mock-3box.js @metamask/eslint config@5.0.0 (#10358) 2021-02-04 10:15:23 -08:00
mock-segment.js @metamask/eslint config@5.0.0 (#10358) 2021-02-04 10:15:23 -08:00
README.md add READMEs to folders, re #3427 2018-03-14 15:33:22 +02:00
run-ganache.sh Use .sh file extension for all Bash scripts (#10499) 2021-02-23 12:56:41 -03:30
sentry-publish.js Show Sentry CLI output when uploading artifacts (#11100) 2021-05-19 14:54:45 -02:30
sentry-upload-artifacts.sh Show Sentry CLI output when uploading artifacts (#11100) 2021-05-19 14:54:45 -02:30
shellcheck.sh Add lint:shellcheck:package (#7568) 2019-12-11 15:52:08 -05:00
show-deps-install-scripts.js @metamask/eslint config@5.0.0 (#10358) 2021-02-04 10:15:23 -08:00
source-map-explorer.sh Excluding sourcemaps comment in production builds (#10695) 2021-03-22 19:41:23 -07:00
sourcemap-validator.js Using a normal bundle instead of a factored bundle for phishing-detect (build sys) (#11972) 2021-08-30 17:58:50 -10:00
static-server.js @metamask/eslint config@5.0.0 (#10358) 2021-02-04 10:15:23 -08:00
stream-flat-map.js Build - refactor for bundle factoring and swappable runtime (#11080) 2021-07-15 10:59:34 -07:00
verify-locale-strings.js remove the ui/app and ui/lib folders (#10911) 2021-04-28 14:53:59 -05:00

Development

Several files which are needed for developing on(!) MetaMask.

Usually each files contains information about its scope / usage.