Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: added compiler test to verify IDE2's build path calculation is in sync with the CLI #1823

Merged
merged 1 commit into from
Jan 24, 2023

Conversation

kittaakos
Copy link
Contributor

@kittaakos kittaakos commented Jan 19, 2023

## Depends on #1809

Motivation

IDE2 wants to provide better UX when debugging an uncompiled sketch (#808). IDE2 must detect erroneous CLI behavior and provide user-friendly actions to achieve this. Currently, it's not trivial to detect the cause of an error (arduino/arduino-cli#1762, arduino/arduino-cli#1968 (comment)) so IDE2 tries to rely on filesystem path detected in the error messages. When the CLI compiles a sketch, it puts the build output into the temp folder. IDE2 tries to guess these temp folder paths from the location of the sketches on the filesystem. Sometimes, there is no deterministic way to determine the temp build output path. There are situations when it's only a guess. See here: #1809 (review). This PR enables compiler tests using the gRPC client to make sure the IDE2 build output path calculation behaves the same as the CLI's.

Change description

  • I removed the ready deferred promise from the core client provider. It broke the test, and it turned out to be not used. This PR cleans it up.
  • Split up the suites into tests (yarn test) and slow tests (yarn test:slow). For example, slow tests do not run when checking internationalization on the CI. (Ideally, no tests were executed on internationalization checks, but it's a different story.) Slow tests must use the *.slow-test.ts glob.
  • Inject interface instead of the concrete implementation into the sketches service.

Other information

Reviewer checklist

  • PR addresses a single concern.
  • The PR has no duplicates (please search among the Pull Requests before creating one)
  • PR title and description are properly filled.
  • Docs have been added / updated (for bug fixes / features)

@kittaakos kittaakos added the topic: code Related to content of the project itself label Jan 19, 2023
Base automatically changed from #808 to main January 23, 2023 08:03
Copy link
Contributor

@per1234 per1234 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can do this:

  1. Make fresh clone of arduino/arduino-ide repo.
  2. Run yarn in the repo.
  3. Run yarn test:slow

The tests run as expected.

But if I do the rest of the steps to run the application before attempting to run the tests:

  1. Make fresh clone of arduino/arduino-ide repo.
  2. Run yarn in the repo.
  3. Run yarn test:slow
  4. Run yarn yarn rebuild:browser
  5. Run yarn rebuild:electron
  6. Run yarn test:slow

Then it fails:

$ yarn test:slow
yarn run v1.22.19
$ lerna run test:slow
lerna notice cli v6.1.0
lerna info versioning independent

> arduino-ide-extension:"test:slow"

$ mocha "./lib/test/**/*.slow-test.js"
arduino-ide-extension: Error: Module did not self-register: '/mnt/1c0bd221-e077-452c-b688-160dc700c122/git/arduino-ide/node_modules/drivelist/build/Release/drivelist.node'.
arduino-ide-extension:     at Object.Module._extensions..node (node:internal/modules/cjs/loader:1249:18)
arduino-ide-extension:     at Module.load (node:internal/modules/cjs/loader:1043:32)
arduino-ide-extension:     at Function.Module._load (node:internal/modules/cjs/loader:878:12)
arduino-ide-extension:     at Module.require (node:internal/modules/cjs/loader:1067:19)
arduino-ide-extension:     at require (node:internal/modules/cjs/helpers:103:18)
arduino-ide-extension:     at bindings (/mnt/1c0bd221-e077-452c-b688-160dc700c122/git/arduino-ide/node_modules/bindings/bindings.js:112:48)
arduino-ide-extension:     at Object.<anonymous> (/mnt/1c0bd221-e077-452c-b688-160dc700c122/git/arduino-ide/node_modules/drivelist/js/index.js:25:27)
arduino-ide-extension:     at Module._compile (node:internal/modules/cjs/loader:1165:14)
arduino-ide-extension:     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)
arduino-ide-extension:     at Module.load (node:internal/modules/cjs/loader:1043:32)
arduino-ide-extension:     at Function.Module._load (node:internal/modules/cjs/loader:878:12)
arduino-ide-extension:     at Module.require (node:internal/modules/cjs/loader:1067:19)
arduino-ide-extension:     at require (node:internal/modules/cjs/helpers:103:18)
arduino-ide-extension:     at Object.<anonymous> (/mnt/1c0bd221-e077-452c-b688-160dc700c122/git/arduino-ide/node_modules/@theia/core/lib/node/env-variables/env-variables-server.js:31:19)
arduino-ide-extension:     at Module._compile (node:internal/modules/cjs/loader:1165:14)
arduino-ide-extension:     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)
arduino-ide-extension:     at Module.load (node:internal/modules/cjs/loader:1043:32)
arduino-ide-extension:     at Function.Module._load (node:internal/modules/cjs/loader:878:12)
arduino-ide-extension:     at Module.require (node:internal/modules/cjs/loader:1067:19)
arduino-ide-extension:     at require (node:internal/modules/cjs/helpers:103:18)
arduino-ide-extension:     at Object.<anonymous> (/mnt/1c0bd221-e077-452c-b688-160dc700c122/git/arduino-ide/arduino-ide-extension/lib/node/theia/env-variables/env-variables-server.js:15:32)
arduino-ide-extension:     at Module._compile (node:internal/modules/cjs/loader:1165:14)
arduino-ide-extension:     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)
arduino-ide-extension:     at Module.load (node:internal/modules/cjs/loader:1043:32)
arduino-ide-extension:     at Function.Module._load (node:internal/modules/cjs/loader:878:12)
arduino-ide-extension:     at Module.require (node:internal/modules/cjs/loader:1067:19)
arduino-ide-extension:     at require (node:internal/modules/cjs/helpers:103:18)
arduino-ide-extension:     at Object.<anonymous> (/mnt/1c0bd221-e077-452c-b688-160dc700c122/git/arduino-ide/arduino-ide-extension/lib/test/node/core-service-impl.slow-test.js:34:32)
arduino-ide-extension:     at Module._compile (node:internal/modules/cjs/loader:1165:14)
arduino-ide-extension:     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)
arduino-ide-extension:     at Module.load (node:internal/modules/cjs/loader:1043:32)
arduino-ide-extension:     at Function.Module._load (node:internal/modules/cjs/loader:878:12)
arduino-ide-extension:     at Module.require (node:internal/modules/cjs/loader:1067:19)
arduino-ide-extension:     at require (node:internal/modules/cjs/helpers:103:18)
arduino-ide-extension:     at requireOrImport (/mnt/1c0bd221-e077-452c-b688-160dc700c122/git/arduino-ide/node_modules/mocha/lib/esm-utils.js:15:12)
arduino-ide-extension:     at Object.exports.loadFilesAsync (/mnt/1c0bd221-e077-452c-b688-160dc700c122/git/arduino-ide/node_modules/mocha/lib/esm-utils.js:28:26)
arduino-ide-extension:     at Mocha.loadFilesAsync (/mnt/1c0bd221-e077-452c-b688-160dc700c122/git/arduino-ide/node_modules/mocha/lib/mocha.js:386:19)
arduino-ide-extension:     at singleRun (/mnt/1c0bd221-e077-452c-b688-160dc700c122/git/arduino-ide/node_modules/mocha/lib/cli/run-helpers.js:149:15)
arduino-ide-extension:     at exports.runMocha (/mnt/1c0bd221-e077-452c-b688-160dc700c122/git/arduino-ide/node_modules/mocha/lib/cli/run-helpers.js:186:11)
arduino-ide-extension:     at Object.exports.handler (/mnt/1c0bd221-e077-452c-b688-160dc700c122/git/arduino-ide/node_modules/mocha/lib/cli/run.js:319:11)
arduino-ide-extension:     at /mnt/1c0bd221-e077-452c-b688-160dc700c122/git/arduino-ide/node_modules/mocha/node_modules/yargs/lib/command.js:241:49
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

 ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

 >  Lerna (powered by Nx)   Running target "arduino-ide-extension:test:slow" failed

   Failed tasks:
   
   - arduino-ide-extension:test:slow
   
   Hint: run the command with --verbose for more details.

error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

This problem happens on my Windows 11 and my Ubuntu 22.04 machines (I didn't check on macOS).

Am I doing something silly @kittaakos?

@kittaakos
Copy link
Contributor Author

Great that you have asked! It's expected.

The tests should execute again if you switch back to the "browser" (Node.js from your $PATH) version:

yarn rebuild:browser && yarn test:slow
Click for full output

a.kitta@Akoss-MacBook-Pro tmp % rm -rf ./arduino-ide 
a.kitta@Akoss-MacBook-Pro tmp % git clone https://github.com/arduino/arduino-ide --single-branch --branch compile-test --depth 1 -qq
a.kitta@Akoss-MacBook-Pro tmp % cd arduino-ide 
a.kitta@Akoss-MacBook-Pro arduino-ide % yarn && yarn test:slow && yarn rebuild:electron && yarn test:slow
yarn install v1.22.18
[1/5] 🔍  Validating package.json...
[2/5] 🔍  Resolving packages...
warning Resolution field "@types/react@18.0.0" is incompatible with requested version "@types/react@^18.0.15"
warning Resolution field "@types/react-dom@18.0.0" is incompatible with requested version "@types/react-dom@^18.0.6"
warning Resolution field "@types/react@18.0.0" is incompatible with requested version "@types/react@^17"
[3/5] 🚚  Fetching packages...
[4/5] 🔗  Linking dependencies...
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > @theia/electron@1.31.1" has unmet peer dependency "electron@^15.3.5".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > @tippyjs/react@4.2.6" has unmet peer dependency "react@>=16.8".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > @tippyjs/react@4.2.6" has unmet peer dependency "react-dom@>=16.8".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > react-disable@0.1.1" has unmet peer dependency "react@>=16".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > react-markdown@8.0.3" has unmet peer dependency "react@>=16".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > react-perfect-scrollbar@1.5.8" has unmet peer dependency "react@>=16.3.3".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > react-perfect-scrollbar@1.5.8" has unmet peer dependency "react-dom@>=16.3.3".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > react-select@5.6.0" has unmet peer dependency "react@^16.8.0 || ^17.0.0 || ^18.0.0".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > react-select@5.6.0" has unmet peer dependency "react-dom@^16.8.0 || ^17.0.0 || ^18.0.0".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > react-tabs@3.2.3" has unmet peer dependency "react@^16.3.0 || ^17.0.0-0".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > react-virtualized@9.22.3" has unmet peer dependency "react@^15.3.0 || ^16.0.0-alpha".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > react-virtualized@9.22.3" has unmet peer dependency "react-dom@^15.3.0 || ^16.0.0-alpha".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > react-window@1.8.8" has unmet peer dependency "react@^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > react-window@1.8.8" has unmet peer dependency "react-dom@^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > @theia/debug > requestretry@7.1.0" has unmet peer dependency "request@2.*.*".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > @theia/electron > @electron/remote@2.0.8" has unmet peer dependency "electron@>= 13.0.0".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > @theia/scm > react-autosize-textarea@7.1.0" has unmet peer dependency "react@^0.14.0 || ^15.0.0 || ^16.0.0".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > @theia/scm > react-autosize-textarea@7.1.0" has unmet peer dependency "react-dom@^0.14.0 || ^15.0.0 || ^16.0.0".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > react-select > @emotion/react@11.10.5" has unmet peer dependency "react@>=16.8.0".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > react-select > react-transition-group@4.4.2" has unmet peer dependency "react@>=16.6.0".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > react-select > react-transition-group@4.4.2" has unmet peer dependency "react-dom@>=16.6.0".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > react-select > use-isomorphic-layout-effect@1.1.2" has unmet peer dependency "react@^16.8.0 || ^17.0.0 || ^18.0.0".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > electron-app > @theia/process > node-pty@0.11.0-beta17" has incorrect peer dependency "node-gyp@^8.3.0".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > react-select > @emotion/react > @emotion/babel-plugin@11.10.5" has unmet peer dependency "@babel/core@^7.0.0".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > react-select > @emotion/react > @emotion/use-insertion-effect-with-fallbacks@1.0.0" has unmet peer dependency "react@>=16.8.0".
warning "workspace-aggregator-df280727-2aba-4a09-8699-b069221727f7 > arduino-ide-extension > react-select > @emotion/react > @emotion/babel-plugin > @babel/plugin-syntax-jsx@7.18.6" has unmet peer dependency "@babel/core@^7.0.0-0".
[5/5] 🔨  Building fresh packages...
$ lerna run prepare && yarn download:plugins
lerna notice cli v6.1.0
lerna info versioning independent

 >  Lerna (powered by Nx)   Running target prepare for 2 project(s):

    - arduino-ide-extension
    - electron-app

 ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

> arduino-ide-extension:prepare

(node:34287) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 12 error listeners added to [WriteStream]. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:34287) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 12 close listeners added to [WriteStream]. Use emitter.setMaxListeners() to increase limit
(node:34287) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 12 error listeners added to [WriteStream]. Use emitter.setMaxListeners() to increase limit
(node:34287) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 12 close listeners added to [WriteStream]. Use emitter.setMaxListeners() to increase limit
yarn run v1.22.18
$ yarn download-cli && yarn download-fwuploader && yarn download-ls && yarn copy-i18n && yarn clean && yarn download-examples && yarn build && yarn test
$ node ./scripts/download-cli.js
arduino-ide-extension: 📦  Identified released version of the CLI. Downloading version 0.29.0 from 'https://downloads.arduino.cc/arduino-cli/arduino-cli_0.29.0_macOS_64bit.tar.gz'
arduino-ide-extension: >>> Downloading from 'https://downloads.arduino.cc/arduino-cli/arduino-cli_0.29.0_macOS_64bit.tar.gz'...
arduino-ide-extension: <<< Download succeeded.
arduino-ide-extension: >>> Decompressing...
arduino-ide-extension: <<< Decompressing succeeded.
arduino-ide-extension: Done: /Users/a.kitta/Desktop/tmp/arduino-ide/arduino-ide-extension/build/arduino-cli
$ node ./scripts/download-fwuploader.js
arduino-ide-extension: 📦  Identified released version of the Firmware Uploader. Downloading version 2.2.2 from 'https://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_macOS_64bit.tar.gz'
arduino-ide-extension: >>> Downloading from 'https://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_macOS_64bit.tar.gz'...
arduino-ide-extension: <<< Download succeeded.
arduino-ide-extension: >>> Decompressing...
arduino-ide-extension: <<< Decompressing succeeded.
arduino-ide-extension: Done: /Users/a.kitta/Desktop/tmp/arduino-ide/arduino-ide-extension/build/arduino-fwuploader
$ node ./scripts/download-ls.js
arduino-ide-extension: >>> Downloading from 'https://downloads.arduino.cc/arduino-language-server/arduino-language-server_0.7.4_macOS_64bit.tar.gz'...
arduino-ide-extension: >>> Downloading from 'https://downloads.arduino.cc/tools/clangd_14.0.0_macOS_64bit.tar.bz2'...
arduino-ide-extension: >>> Downloading from 'https://downloads.arduino.cc/tools/clang-format_14.0.0_macOS_64bit.tar.bz2'...
arduino-ide-extension: <<< Download succeeded.
arduino-ide-extension: >>> Decompressing...
arduino-ide-extension: <<< Decompressing succeeded.
arduino-ide-extension: Done: /Users/a.kitta/Desktop/tmp/arduino-ide/arduino-ide-extension/build/clang-format
arduino-ide-extension: <<< Download succeeded.
arduino-ide-extension: >>> Decompressing...
arduino-ide-extension: <<< Decompressing succeeded.
arduino-ide-extension: Done: /Users/a.kitta/Desktop/tmp/arduino-ide/arduino-ide-extension/build/arduino-language-server
arduino-ide-extension: <<< Download succeeded.
arduino-ide-extension: >>> Decompressing...
arduino-ide-extension: <<< Decompressing succeeded.
arduino-ide-extension: Done: /Users/a.kitta/Desktop/tmp/arduino-ide/arduino-ide-extension/build/clangd
$ npx ncp ../i18n ./build/i18n
$ rimraf lib
$ node ./scripts/download-examples.js
arduino-ide-extension: Cloning into '/var/folders/z1/xkw1yh5n7rz4n8djprp1mdn80000gn/T/c9fa6995-e036-4d74-b7b8-644d63b8f610-arduino-examples'...
arduino-ide-extension: Switched to a new branch '1.10.0'
arduino-ide-extension: Generated output to /Users/a.kitta/Desktop/tmp/arduino-ide/arduino-ide-extension/Examples/examples.json
$ tsc && ncp ./src/node/cli-protocol/ ./lib/node/cli-protocol/ && yarn lint
$ eslint
$ mocha "./lib/test/**/*.test.js"
arduino-ide-extension: 
arduino-ide-extension:   Monitor Utils
arduino-ide-extension:     when converting messages
arduino-ide-extension:       ✓ should give the right result
arduino-ide-extension:     when converting messages
arduino-ide-extension:       ✓ should give the right result
arduino-ide-extension:     when converting messages
arduino-ide-extension:       ✓ should give the right result
arduino-ide-extension:     when converting messages
arduino-ide-extension:       ✓ should give the right result
arduino-ide-extension:     when converting messages
arduino-ide-extension:       ✓ should give the right result
arduino-ide-extension:     when converting messages
arduino-ide-extension:       ✓ should give the right result
arduino-ide-extension:     when converting messages
arduino-ide-extension:       ✓ should give the right result
arduino-ide-extension:   boards-service
arduino-ide-extension:     AttachedBoardsChangeEvent
arduino-ide-extension:       ✓ should detect one attached port
arduino-ide-extension:   config-service
arduino-ide-extension:     additionalUrls
arduino-ide-extension:       ✓ should consider additional URLs same as if they differ in case
arduino-ide-extension:       ✓ should consider additional URLs same as if they have a different order
arduino-ide-extension:       ✓ should parse an empty string as an empty array
arduino-ide-extension:       ✓ should parse a blank string as an empty array
arduino-ide-extension:       ✓ should parse urls with commas
arduino-ide-extension:       ✓ should parse urls with both '\n' and '\r\n' line endings
arduino-ide-extension:   installable
arduino-ide-extension:     compare
arduino-ide-extension:       ✓ '1.8.1' should be equal to '1.8.1'
arduino-ide-extension:       ✓ '1.8.1' should be greater than '1.6.1'
arduino-ide-extension:       ✓ '1.6.1' should be less than '1.8.1'
arduino-ide-extension:       ✓ '1.6.1' should be less than '1.6.3'
arduino-ide-extension:       ✓ '5.1.1' should be greater than '5.1.0'
arduino-ide-extension:       ✓ '5.1.0' should be greater than '5.1.0-beta.1'
arduino-ide-extension:       ✓ '5.1.0-beta.1' should be less than '5.1.0'
arduino-ide-extension:       ✓ '5.1.0-beta.2' should be greater than '5.1.0-beta.1'
arduino-ide-extension:       ✓ '5.1.0-beta.1' should be less than '5.1.0-beta.2'
arduino-ide-extension:       ✓ '5.1.0-beta.1' should be less than '5.1.1'
arduino-ide-extension:       ✓ '1.1.0' should be greater than '1.1.0-a'
arduino-ide-extension:       ✓ '1.1.0-a' should be less than '1.1.0'
arduino-ide-extension:       ✓ 'COM1' should be less than 'COM2'
arduino-ide-extension:       ✓ 'COM1' should be less than 'COM10'
arduino-ide-extension:       ✓ 'COM10' should be greater than 'COM1'
arduino-ide-extension:       ✓ 'COM10' should be greater than 'COM2'
arduino-ide-extension:       ✓ 'COM2' should be less than 'COM10'
arduino-ide-extension:       ✓ 'COM10' should be equal to 'COM10'
arduino-ide-extension:   searchable
arduino-ide-extension:     parse
arduino-ide-extension:       boardsmanager
arduino-ide-extension:         ✓ should parse 'http://boardsmanager#SAMD' to {"query":"SAMD","type":"All"}
arduino-ide-extension:         ✓ should parse 'http://boardsmanager/Arduino%40Heart#littleBits' to {"query":"littleBits","type":"Arduino@Heart"}
arduino-ide-extension:         ✓ should not parse 'http://boardsmanager/too/many/segments#invalidPath'
arduino-ide-extension:         ✓ should not parse 'http://boardsmanager/random#invalidPath'
arduino-ide-extension:         ✓ should fail to parse 'https://boardsmanager/#invalidScheme'
arduino-ide-extension:         ✓ should fail to parse 'http://librarymanager/#invalidAuthority'
arduino-ide-extension:       librarymanager
arduino-ide-extension:         ✓ should parse 'http://librarymanager#WiFiNINA' to {"query":"WiFiNINA","type":"All","topic":"All"}
arduino-ide-extension:         ✓ should parse 'http://librarymanager/All/Device%20Control#Servo' to {"query":"Servo","type":"All","topic":"Device Control"}
arduino-ide-extension:         ✓ should parse 'http://librarymanager/All/Display#SparkFun' to {"query":"SparkFun","type":"All","topic":"Display"}
arduino-ide-extension:         ✓ should parse 'http://librarymanager/Updatable/Display#SparkFun' to {"query":"SparkFun","type":"Updatable","topic":"Display"}
arduino-ide-extension:         ✓ should parse 'http://librarymanager/All/Signal%20Input%2FOutput#debouncer' to {"query":"debouncer","type":"All","topic":"Signal Input/Output"}
arduino-ide-extension:         ✓ should not parse 'http://librarymanager/too/many/segments#invalidPath'
arduino-ide-extension:         ✓ should not parse 'http://librarymanager/absent/invalid#invalidPath'
arduino-ide-extension:         ✓ should fail to parse 'https://librarymanager/#invalidScheme'
arduino-ide-extension:         ✓ should fail to parse 'http://boardsmanager/#invalidAuthority'
arduino-ide-extension:   arduino-daemon-impl
arduino-ide-extension:     ✓ should parse the port address when the log format is json (596ms)
arduino-ide-extension:     ✓ should parse the port address when the log format is text (113ms)
arduino-ide-extension:   cli-config
arduino-ide-extension:     ✓ {"board_manager":{"additional_urls":[]},"directories":{"data":"data","user":"user"}} should be the same as {"board_manager":{"additional_urls":[]},"directories":{"data":"data","user":"user"}}
arduino-ide-extension:     ✓ {"directories":{"data":"data","user":"user"}} should be the same as {"board_manager":{"additional_urls":[]},"directories":{"data":"data","user":"user"}}
arduino-ide-extension:     ✓ {"board_manager":{"additional_urls":[]},"directories":{"data":"data","user":"user"}} should be the same as {"board_manager":{"additional_urls":[]},"directories":{"data":"data","user":"user"}}
arduino-ide-extension:   getExecPath
arduino-ide-extension:     ✓ should resolve arduino-cli (574ms)
arduino-ide-extension:     ✓ should resolve arduino-language-server
arduino-ide-extension:     ✓ should resolve clangd (507ms)
arduino-ide-extension:   longestPrefixMatch
arduino-ide-extension:     ✓ should return the exact prefix when found
arduino-ide-extension:     ✓ should return the exact object when the prefix match
arduino-ide-extension:     ✓ should return a partial matching prefix when a similar object is found
arduino-ide-extension:     ✓ should return the closest object when the prefix partially match
arduino-ide-extension:     ✓ should return an empty matching prefix when no similar object is found
arduino-ide-extension:     ✓ should return an empty object when no similar object is found
arduino-ide-extension:   reconcileSettings
arduino-ide-extension:     ✓ should return default settings if new settings are missing
arduino-ide-extension:     ✓ should add missing attributes copying it from the default settings
arduino-ide-extension:     ✓ should remove wrong settings attributes using the default settings as a reference
arduino-ide-extension:     ✓ should reset non-value fields to those defined in the default settings
arduino-ide-extension:     ✓ should accept a selectedValue if it is a valid one
arduino-ide-extension:     ✓ should fall a back to the first valid setting when the selectedValue is not valid
arduino-ide-extension:     ✓ should accept any value if default values are not set
arduino-ide-extension:   discover-sketches
arduino-ide-extension:     ✓ should recursively discover all sketches in a folder
arduino-ide-extension:     ✓ should handle when the sketchbook is a sketch folder
arduino-ide-extension:     ✓ should handle empty sketchbook
arduino-ide-extension:   71 passing (2s)
Done in 46.88s.

> electron-app:prepare

yarn run v1.22.18
$ theia build --mode development
electron-app: Found cached ffmpeg library.
electron-app: Successfully replaced "/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/electron/dist/Electron.app/Contents/Frameworks/Electron Framework.framework/Libraries/libffmpeg.dylib".
electron-app: "/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/electron/dist/Electron.app/Contents/Frameworks/Electron Framework.framework/Libraries/libffmpeg.dylib" does not contain proprietary codecs (16 found).
electron-app: Failed to resolve module: msgpackr
electron-app: Failed to resolve module: socket.io
electron-app: Failed to resolve module: ws
electron-app: Failed to resolve module: filenamify
electron-app: assets by status 1.38 MiB [cached] 12 assets
electron-app: assets by chunk 19.1 MiB (id hint: vendors)
electron-app:   asset vendors-node_modules_theia_monaco_lib_browser_monaco-text-model-service_js.js 8.03 MiB [emitted] (id hint: vendors) 2 related assets
electron-app:   asset vendors-arduino-ide-extension_node_modules_deepmerge_dist_es_js-arduino-ide-extension_node_mo-023016.js 2.51 MiB [emitted] (id hint: vendors) 2 related assets
electron-app:   asset vendors-node_modules_theia_plugin-ext_lib_hosted_browser_worker_worker-main_js.js 1.4 MiB [emitted] (id hint: vendors) 2 related assets
electron-app:   asset vendors-node_modules_theia_plugin-ext_lib_hosted_browser_hosted-plugin_js-node_modules_theia_-4a4d9f.js 640 KiB [emitted] (id hint: vendors) 2 related assets
electron-app:   asset vendors-node_modules_theia_monaco-editor-core_esm_vs_base_common_severity_js-node_modules_the-68fc42.js 546 KiB [emitted] (id hint: vendors) 2 related assets
electron-app:   + 78 assets
electron-app: assets by info 803 KiB [immutable]
electron-app:   assets by chunk 530 KiB (auxiliary id hint: vendors) 2 assets
electron-app:   assets by path *.woff 62.4 KiB 2 assets
electron-app:   + 3 assets
electron-app: + 29 assets
electron-app: runtime modules 12.2 KiB 24 modules
electron-app: orphan modules 17.2 KiB [orphan] 15 modules
electron-app: modules by path ../node_modules/ 23.2 MiB (javascript) 1.9 MiB (asset) 2929 modules
electron-app: modules by path ../arduino-ide-extension/ 1.37 MiB (javascript) 273 KiB (asset)
electron-app:   modules by path ../arduino-ide-extension/lib/ 1.15 MiB 241 modules
electron-app:   modules by path ../arduino-ide-extension/src/browser/ 219 KiB (javascript) 273 KiB (asset) 52 modules
electron-app:   modules by path ../arduino-ide-extension/node_modules/ 8.73 KiB
electron-app:     modules by path ../arduino-ide-extension/node_modules/uuid/*.js 4.03 KiB 3 modules
electron-app:     modules by path ../arduino-ide-extension/node_modules/uuid/lib/*.js 2.04 KiB 2 modules
electron-app:     + 1 module
electron-app: modules by mime type image/svg+xml 3.17 KiB
electron-app:   data:image/svg+xml;base64,PHN2ZyB3aWR0aD0i.. 1.59 KiB [built] [code generated]
electron-app:   data:image/svg+xml;base64,PHN2ZyB3aWR0aD0i.. 1.59 KiB [built] [code generated]
electron-app: + 16 modules
electron-app:   
electron-app: WARNING in ../node_modules/@theia/plugin-ext/src/main/browser/style/index.css (../node_modules/css-loader/dist/cjs.js!../node_modules/@theia/plugin-ext/src/main/browser/style/index.css)
electron-app: Module Warning (from ../node_modules/css-loader/dist/cjs.js):
electron-app: Warning
electron-app: (38:5) Unable to find uri in '-webkit-mask: url('')'
electron-app:  @ ../node_modules/@theia/plugin-ext/src/main/browser/style/index.css 2:12-89 9:17-24 13:15-29
electron-app:  @ ../node_modules/@theia/plugin-ext/lib/main/browser/plugin-ext-frontend-module.js 19:0-52
electron-app:  @ ../node_modules/@theia/plugin-ext/lib/plugin-ext-frontend-module.js 18:37-89
electron-app:  @ ./src-gen/frontend/index.js 96:31-89
electron-app: WARNING in ../node_modules/@theia/plugin-ext/src/main/browser/style/index.css (../node_modules/css-loader/dist/cjs.js!../node_modules/@theia/plugin-ext/src/main/browser/style/index.css)
electron-app: Module Warning (from ../node_modules/css-loader/dist/cjs.js):
electron-app: Warning
electron-app: (39:5) Unable to find uri in 'mask: url('')'
electron-app:  @ ../node_modules/@theia/plugin-ext/src/main/browser/style/index.css 2:12-89 9:17-24 13:15-29
electron-app:  @ ../node_modules/@theia/plugin-ext/lib/main/browser/plugin-ext-frontend-module.js 19:0-52
electron-app:  @ ../node_modules/@theia/plugin-ext/lib/plugin-ext-frontend-module.js 18:37-89
electron-app:  @ ./src-gen/frontend/index.js 96:31-89
electron-app: WARNING in ../node_modules/@theia/monaco-editor-core/esm/vs/base/common/performance.js 81:34-41
electron-app: Critical dependency: require function is used in a way in which dependencies cannot be statically extracted
electron-app:  @ ../node_modules/@theia/monaco-editor-core/esm/vs/platform/storage/common/storage.js 20:22-65
electron-app:  @ ../node_modules/@theia/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices.js 102:18-69
electron-app:  @ ../node_modules/@theia/monaco/lib/browser/monaco-frontend-module.js 81:29-117
electron-app:  @ ./src-gen/frontend/index.js 76:31-89
electron-app: WARNING in ../node_modules/@theia/monaco-editor-core/esm/vs/base/common/performance.js 81:57-64
electron-app: Critical dependency: require function is used in a way in which dependencies cannot be statically extracted
electron-app:  @ ../node_modules/@theia/monaco-editor-core/esm/vs/platform/storage/common/storage.js 20:22-65
electron-app:  @ ../node_modules/@theia/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices.js 102:18-69
electron-app:  @ ../node_modules/@theia/monaco/lib/browser/monaco-frontend-module.js 81:29-117
electron-app:  @ ./src-gen/frontend/index.js 76:31-89
electron-app: WARNING in ../node_modules/inversify/lib/annotation/decorator_utils.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/annotation/decorator_utils.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/annotation/decorator_utils.ts'
electron-app:  @ ../node_modules/inversify/lib/inversify.js 38:24-63
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/annotation/inject.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/annotation/inject.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/annotation/inject.ts'
electron-app:  @ ../node_modules/inversify/lib/inversify.js 21:15-45
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/annotation/injectable.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/annotation/injectable.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/annotation/injectable.ts'
electron-app:  @ ../node_modules/inversify/lib/inversify.js 15:19-53
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/annotation/multi_inject.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/annotation/multi_inject.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/annotation/multi_inject.ts'
electron-app:  @ ../node_modules/inversify/lib/inversify.js 28:21-57
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/annotation/named.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/annotation/named.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/annotation/named.ts'
electron-app:  @ ../node_modules/inversify/lib/inversify.js 19:14-43
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/annotation/optional.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_module
electron-app: s/inversify/src/annotation/optional.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/annotation/optional.ts'
electron-app:  @ ../node_modules/inversify/lib/inversify.js 24:17-49
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/annotation/post_construct.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/annotation/post_construct.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/annotation/post_construct.ts'
electron-app:  @ ../node_modules/inversify/lib/inversify.js 32:23-61
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/annotation/tagged.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/annotation/tagged.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/annotation/tagged.ts'
electron-app:  @ ../node_modules/inversify/lib/inversify.js 17:15-45
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/annotation/target_name.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/annotation/target_name.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/annotation/target_name.ts'
electron-app:  @ ../node_modules/inversify/lib/inversify.js 30:20-55
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/annotation/unmanaged.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/annotation/unmanaged.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/annotation/unmanaged.ts'
electron-app:  @ ../node_modules/inversify/lib/inversify.js 26:18-51
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/bindings/binding.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/bindings/binding.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/bindings/binding.ts'
electron-app:  @ ../node_modules/inversify/lib/container/container.js 45:16-46
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/bindings/binding_count.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/bindings/binding_count.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/bindings/binding_count.ts'
electron-app:  @ ../node_modules/inversify/lib/planning/planner.js 4:22-58
electron-app:  @ ../node_modules/inversify/lib/container/container.js 50:16-46
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/constants/error_msgs.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/constants/error_msgs.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/constants/error_msgs.ts'
electron-app:  @ ../node_modules/inversify/lib/container/container.js 46:17-51
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/constants/literal_types.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/constants/literal_types.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/constants/literal_types.ts'
electron-app:  @ ../node_modules/inversify/lib/inversify.js 8:22-58
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/constants/metadata_keys.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/constants/metadata_keys.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/constants/metadata_keys.ts'
electron-app:  @ ../node_modules/inversify/lib/inversify.js 4:11-47
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/container/container.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/container/container.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/container/container.ts'
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/container/container_module.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/container/container_module.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/container/container_module.ts'
electron-app:  @ ../node_modules/inversify/lib/inversify.js 12:25-64
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/container/container_snapshot.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/container/container_snapshot.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/container/container_snapshot.ts'
electron-app:  @ ../node_modules/inversify/lib/container/container.js 55:27-58
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/container/lookup.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/container/lookup.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/t
electron-app: mp/arduino-ide/node_modules/inversify/src/container/lookup.ts'
electron-app:  @ ../node_modules/inversify/lib/container/container.js 56:15-34
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/inversify.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/inversify.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/inversify.ts'
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/planning/context.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/planning/context.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/planning/context.ts'
electron-app:  @ ../node_modules/inversify/lib/planning/planner.js 10:16-36
electron-app:  @ ../node_modules/inversify/lib/container/container.js 50:16-46
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/planning/metadata.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/planning/metadata.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/planning/metadata.ts'
electron-app:  @ ../node_modules/inversify/lib/annotation/target_name.js 5:17-48
electron-app:  @ ../node_modules/inversify/lib/inversify.js 30:20-55
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/planning/metadata_reader.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/planning/metadata_reader.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/planning/metadata_reader.ts'
electron-app:  @ ../node_modules/inversify/lib/inversify.js 34:24-61
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/planning/plan.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/planning/plan.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/planning/plan.ts'
electron-app:  @ ../node_modules/inversify/lib/planning/planner.js 12:13-30
electron-app:  @ ../node_modules/inversify/lib/container/container.js 50:16-46
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/planning/planner.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/planning/planner.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/planning/planner.ts'
electron-app:  @ ../node_modules/inversify/lib/container/container.js 50:16-46
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/planning/queryable_string.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/planning/queryable_string.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/planning/queryable_string.ts'
electron-app:  @ ../node_modules/inversify/lib/planning/target.js 7:25-54
electron-app:  @ ../node_modules/inversify/lib/planning/planner.js 15:15-34
electron-app:  @ ../node_modules/inversify/lib/container/container.js 50:16-46
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/planning/reflection_utils.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/planning/reflection_utils.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/planning/reflection_utils.ts'
electron-app:  @ ../node_modules/inversify/lib/planning/planner.js 13:25-54
electron-app:  @ ../node_modules/inversify/lib/container/container.js 50:16-46
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/planning/request.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/planning/request.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/planning/request.ts'
electron-app:  @ ../node_modules/inversify/lib/planning/planner.js 14:16-36
electron-app:  @ ../node_modules/inversify/lib/container/container.js 50:16-46
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/planning/target.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/planning/target.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/planning/target.ts'
electron-app:  @ ../node_modules/inversify/lib/planning/planner.js 15:15-34
electron-app:  @ ../node_modules/inversify/lib/container/container.js 50:16-46
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/resolution/instantiation.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/resolution/instantiation.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/resolution/instantiation.ts'
electron-app:  @ ../node_modules/inversify/lib/resolution/resolver.js 8:22-48
electron-app:  @ ../node_modules/inversify/lib/container/container.js 51:17-50
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/resolution/resolver.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/resolution/resolver.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/resolution/resolver.ts'
electron-app:  @ ../
electron-app: node_modules/inversify/lib/container/container.js 51:17-50
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/syntax/binding_in_syntax.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/syntax/binding_in_syntax.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/syntax/binding_in_syntax.ts'
electron-app:  @ ../node_modules/inversify/lib/syntax/binding_in_when_on_syntax.js 4:26-56
electron-app:  @ ../node_modules/inversify/lib/syntax/binding_to_syntax.js 6:34-72
electron-app:  @ ../node_modules/inversify/lib/container/container.js 52:26-64
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/syntax/binding_in_when_on_syntax.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/syntax/binding_in_when_on_syntax.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/syntax/binding_in_when_on_syntax.ts'
electron-app:  @ ../node_modules/inversify/lib/syntax/binding_to_syntax.js 6:34-72
electron-app:  @ ../node_modules/inversify/lib/container/container.js 52:26-64
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/syntax/binding_on_syntax.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/syntax/binding_on_syntax.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/syntax/binding_on_syntax.ts'
electron-app:  @ ../node_modules/inversify/lib/syntax/binding_when_on_syntax.js 4:26-56
electron-app:  @ ../node_modules/inversify/lib/syntax/binding_to_syntax.js 7:31-66
electron-app:  @ ../node_modules/inversify/lib/container/container.js 52:26-64
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/syntax/binding_to_syntax.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/syntax/binding_to_syntax.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/syntax/binding_to_syntax.ts'
electron-app:  @ ../node_modules/inversify/lib/container/container.js 52:26-64
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/syntax/binding_when_on_syntax.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/syntax/binding_when_on_syntax.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/syntax/binding_when_on_syntax.ts'
electron-app:  @ ../node_modules/inversify/lib/syntax/binding_to_syntax.js 7:31-66
electron-app:  @ ../node_modules/inversify/lib/container/container.js 52:26-64
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/syntax/binding_when_syntax.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/syntax/binding_when_syntax.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/syntax/binding_when_syntax.ts'
electron-app:  @ ../node_modules/inversify/lib/syntax/binding_when_on_syntax.js 5:28-60
electron-app:  @ ../node_modules/inversify/lib/syntax/binding_to_syntax.js 7:31-66
electron-app:  @ ../node_modules/inversify/lib/container/container.js 52:26-64
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/syntax/constraint_helpers.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/syntax/constraint_helpers.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/syntax/constraint_helpers.ts'
electron-app:  @ ../node_modules/inversify/lib/inversify.js 40:27-65
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/utils/binding_utils.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/utils/binding_utils.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/utils/binding_utils.ts'
electron-app:  @ ../node_modules/inversify/lib/inversify.js 47:22-54
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/utils/exceptions.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/utils/exceptions.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/utils/exceptions.ts'
electron-app:  @ ../node_modules/inversify/lib/planning/planner.js 8:19-49
electron-app:  @ ../node_modules/inversify/lib/container/container.js 50:16-46
electron-app:  @ ../node_modules/inversify/lib/inversify.js 6:18-50
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/utils/id.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/utils/id.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/utils/id.ts'
electron-app:  @ ../node_modules/inversify/lib/inversify.js 36:11-32
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in ../node_modules/inversify/lib/utils/serialization.js
electron-app: Module Warning (from ../node_modules/source-map-loader/dist/cjs.js):
electron-app: Failed to parse source map from '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/utils/serialization.ts' file: Error: ENOENT: no such file or directory, open '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/inversify/src/utils/serialization.ts'
electron-app:  @ ../node_modules/inversify/lib/inversify.js 45:22-54
electron-app:  @ ./src-gen/frontend/index.js 5:22-42
electron-app: WARNING in Circular dependency detected:
electron-app: ../arduino-ide-extension/lib/browser/contributions/upload-firmware.js -> ../arduino-ide-extension/lib/browser/dialogs/firmware-uploader/firmware-uploader-dialog.js -> ../arduino-ide-extension/lib/browser/contributions/upload-firmware.js
electron-app: WARNING in Circular dependency detected:
electron-app: ../
electron-app: arduino-ide-extension/lib/browser/contributions/upload-sketch.js -> ../arduino-ide-extension/lib/browser/contributions/user-fields.js -> ../arduino-ide-extension/lib/browser/dialogs/user-fields/user-fields-dialog.js -> ../arduino-ide-extension/lib/browser/contributions/upload-sketch.js
electron-app: WARNING in Circular dependency detected:
electron-app: ../arduino-ide-extension/lib/browser/contributions/user-fields.js -> ../arduino-ide-extension/lib/browser/dialogs/user-fields/user-fields-dialog.js -> ../arduino-ide-extension/lib/browser/contributions/upload-sketch.js -> ../arduino-ide-extension/lib/browser/contributions/user-fields.js
electron-app: WARNING in Circular dependency detected:
electron-app: ../arduino-ide-extension/lib/browser/dialogs/firmware-uploader/firmware-uploader-dialog.js -> ../arduino-ide-extension/lib/browser/contributions/upload-firmware.js -> ../arduino-ide-extension/lib/browser/dialogs/firmware-uploader/firmware-uploader-dialog.js
electron-app: WARNING in Circular dependency detected:
electron-app: ../arduino-ide-extension/lib/browser/dialogs/settings/settings-component.js -> ../arduino-ide-extension/lib/browser/dialogs/settings/settings-dialog.js -> ../arduino-ide-extension/lib/browser/dialogs/settings/settings-component.js
electron-app: WARNING in Circular dependency detected:
electron-app: ../arduino-ide-extension/lib/browser/dialogs/settings/settings-dialog.js -> ../arduino-ide-extension/lib/browser/dialogs/settings/settings-component.js -> ../arduino-ide-extension/lib/browser/dialogs/settings/settings-dialog.js
electron-app: WARNING in Circular dependency detected:
electron-app: ../arduino-ide-extension/lib/browser/dialogs/user-fields/user-fields-dialog.js -> ../arduino-ide-extension/lib/browser/contributions/upload-sketch.js -> ../arduino-ide-extension/lib/browser/contributions/user-fields.js -> ../arduino-ide-extension/lib/browser/dialogs/user-fields/user-fields-dialog.js
electron-app: WARNING in Circular dependency detected:
electron-app: ../arduino-ide-extension/lib/browser/serial/monitor/monitor-utils.js -> ../arduino-ide-extension/lib/browser/serial/monitor/serial-monitor-send-output.js -> ../arduino-ide-extension/lib/browser/serial/monitor/monitor-utils.js
electron-app: WARNING in Circular dependency detected:
electron-app: ../arduino-ide-extension/lib/browser/serial/monitor/serial-monitor-send-output.js -> ../arduino-ide-extension/lib/browser/serial/monitor/monitor-utils.js -> ../arduino-ide-extension/lib/browser/serial/monitor/serial-monitor-send-output.js
electron-app: WARNING in Circular dependency detected:
electron-app: ../arduino-ide-extension/lib/browser/widgets/cloud-sketchbook/cloud-sketchbook-contributions.js -> ../arduino-ide-extension/lib/browser/widgets/cloud-sketchbook/cloud-sketchbook-tree.js -> ../arduino-ide-extension/lib/browser/widgets/cloud-sketchbook/cloud-sketchbook-contributions.js
electron-app: WARNING in Circular dependency detected:
electron-app: ../arduino-ide-extension/lib/browser/widgets/cloud-sketchbook/cloud-sketchbook-tree-model.js -> ../arduino-ide-extension/lib/browser/widgets/cloud-sketchbook/cloud-sketchbook-tree.js -> ../arduino-ide-extension/lib/browser/widgets/cloud-sketchbook/cloud-sketchbook-contributions.js -> ../arduino-ide-extension/lib/browser/widgets/cloud-sketchbook/cloud-sketchbook-tree-model.js
electron-app: WARNING in Circular dependency detected:
electron-app: ../arduino-ide-extension/lib/browser/widgets/cloud-sketchbook/cloud-sketchbook-tree.js -> ../arduino-ide-extension/lib/browser/widgets/cloud-sketchbook/cloud-sketchbook-contributions.js -> ../arduino-ide-extension/lib/browser/widgets/cloud-sketchbook/cloud-sketchbook-tree.js
electron-app: 44 warnings have detailed information that is not shown.
electron-app: Use 'stats.errorDetails: true' resp. '--stats-error-details' to show it.
electron-app: webpack 5.73.0 compiled with 58 warnings in 24346 ms
electron-app: assets by status 237 KiB [cached] 2 assets
electron-app: assets by info 1.15 MiB [immutable]
electron-app:   assets by path *.woff2 256 KiB
electron-app:     asset 2f64b833219dc8433424.woff2 88.6 KiB [emitted] [immutable] [from: ../node_modules/file-icons-js/fonts/file-icons.woff2] (auxiliary name: secondary-window)
electron-app:     asset 20fd1704ea223900efa9.woff2?v=4.7.0 75.4 KiB [emitted] [immutable] [from: ../node_modules/font-awesome/fonts/fontawesome-webfont.woff2?v=4.7.0] (auxiliary name: secondary-window)
electron-app:     + 3 assets
electron-app:   assets by path *.ttf 231 KiB
electron-app:     asset 1e59d2330b4c6deb84b3.ttf?v=4.7.0 162 KiB [emitted] [immutable] [from: ../node_modules/font-awesome/fonts/fontawesome-webfont.ttf?v=4.7.0] (auxiliary name: secondary-window)
electron-app:     asset 656890550c9f4888b6f8.ttf?f06865699f1720ee6ca6e0a4aa084d76 69.5 KiB [emitted] [immutable] [from: ../node_modules/@vscode/codicons/dist/codicon.ttf?f06865699f1720ee6ca6e0a4aa084d76] (auxiliary name: secondary-window)
electron-app:   asset c1e38fd9e0e74ba58f7a.svg?v=4.7.0 434 KiB [emitted] [immutable] [from: ../node_modules/font-awesome/fonts/fontawesome-webfont.svg?v=4.7.0] (auxiliary name: secondary-window)
electron-app:   asset 8b43027f47b20503057d.eot?v=4.7.0 162 KiB [emitted] [immutable] [from: ../node_modules/font-awesome/fonts/fontawesome-webfont.eot?v=4.7.0] (auxiliary name: secondary-window)
electron-app:   asset f691f37e57f04c152e23.woff?v=4.7.0 95.7 KiB [emitted] [immutable] [from: ../node_modules/font-awesome/fonts/fontawesome-webfont.woff?v=4.7.0] (auxiliary name: secondary-window)
electron-app: assets by chunk 8.53 MiB (name: secondary-window)
electron-app:   asset secondary-window.js 8.3 MiB [emitted] (name: secondary-window) 1 related asset
electron-app:   asset secondary-window.css 237 KiB [emitted] (name: secondary-window) 1 related asset
electron-app: Entrypoint secondary-window 8.53 MiB (9.77 MiB) = secondary-window.css 237 KiB secondary-window.js 8.3 MiB 14 auxiliary assets
electron-app: orphan modules 598 KiB (javascript) 1.38 MiB (asset) 1.06 KiB (runtime) [orphan] 69 modules
electron-app: runtime modules 8.78 KiB 43 modules
electron-app: javascript modules 6.76 MiB
electron-app:   cacheable modules 6.76 MiB 749 modules
electron-app:   + 11 modules
electron-app: json modules 925 KiB
electron-app:   modules by path ../node_modules/@theia/core/src/common/keyboard/layouts/ 154 KiB 47 modules
electron-app:   modules by path ../node_modules/@theia/core/node_modules/iconv-lite/ 86.7 KiB 8 modules
electron-app:   modules by path ../node_modules/ajv/lib/ 3.12 KiB 2 modules
electron-app:   + 2 modules
electron-app: css modules 224 KiB
electron-app:   modules by path ../node_modules/@theia/ 98.1 KiB 26 modules
electron-app:   modules by path ../node_modules/@phosphor/widgets/style/*.css 8.84 KiB 10 modules
electron-app:   + 5 modules
electron-app:   
electron-app: webpack 5.73.0 compiled successfully in 6708 ms
Done in 33.20s.

 ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

 >  Lerna (powered by Nx)   Successfully ran target prepare for 2 projects


yarn run v1.22.18
$ theia download:plugins
--- downloading plugins ---
+ vscode-arduino-tools: downloaded successfully 
+ vscode-builtin-json: downloaded successfully 
+ vscode-language-pack-uk: downloaded successfully 
+ vscode-builtin-cpp: downloaded successfully 
+ vscode-language-pack-hu: downloaded successfully 
+ vscode-language-pack-it: downloaded successfully 
+ vscode-language-pack-fr: downloaded successfully 
+ vscode-language-pack-bg: downloaded successfully 
+ vscode-language-pack-cs: downloaded successfully 
+ vscode-language-pack-nl: downloaded successfully 
+ vscode-language-pack-ja: downloaded successfully 
+ vscode-language-pack-tr: downloaded successfully 
+ vscode-language-pack-de: downloaded successfully 
+ vscode-builtin-json-language-features: downloaded successfully 
+ vscode-language-pack-ko: downloaded successfully 
+ vscode-language-pack-pl: downloaded successfully 
+ vscode-language-pack-ru: downloaded successfully 
+ vscode-language-pack-pt-BR: downloaded successfully 
+ vscode-language-pack-zh-hans: downloaded successfully 
+ vscode-language-pack-es: downloaded successfully 
+ cortex-debug: downloaded successfully 
--- collecting extension-packs ---
--- collecting extension dependencies ---
✨  Done in 15.22s.
✨  Done in 223.27s.
yarn run v1.22.18
$ lerna run test:slow
lerna notice cli v6.1.0
lerna info versioning independent

> arduino-ide-extension:"test:slow"

$ mocha "./lib/test/**/*.slow-test.js"
arduino-ide-extension: 
arduino-ide-extension:   core-service-impl
arduino-ide-extension:     compile
arduino-ide-extension: Configuration directory URI: 'file:///Users/a.kitta/.theia'
arduino-ide-extension: >>> Starting boards package installation... {
arduino-ide-extension:   id: 'arduino:avr',
arduino-ide-extension:   name: 'Arduino AVR Boards',
arduino-ide-extension:   author: 'Arduino',
arduino-ide-extension:   availableVersions: [
arduino-ide-extension:     '1.8.6',  '1.8.5',  '1.8.4',
arduino-ide-extension:     '1.8.3',  '1.8.2',  '1.8.1',
arduino-ide-extension:     '1.6.23', '1.6.22', '1.6.21',
arduino-ide-extension:     '1.6.20', '1.6.19', '1.6.18',
arduino-ide-extension:     '1.6.17', '1.6.16', '1.6.15',
arduino-ide-extension:     '1.6.14', '1.6.13', '1.6.12',
arduino-ide-extension:     '1.6.11', '1.6.10', '1.6.9',
arduino-ide-extension:     '1.6.8',  '1.6.7',  '1.6.6',
arduino-ide-extension:     '1.6.5',  '1.6.4',  '1.6.3',
arduino-ide-extension:     '1.6.2'
arduino-ide-extension:   ],
arduino-ide-extension:   description: 'Arduino Fio, Arduino Mega ADK, Arduino Esplora, Arduino Ethernet, Arduino Uno WiFi, Arduino Nano, Arduino BT, Arduino Robot Motor, Arduino Gemma, Arduino Uno Mini, Arduino Micro, Arduino NG or older, Arduino Industrial 101, Arduino Yún, Arduino Mini, Adafruit Circuit Playground, Arduino Pro or Pro Mini, Linino One, Arduino Duemilanove or Diecimila, Arduino Uno, LilyPad Arduino USB, LilyPad Arduino, Arduino Yún Mini, Arduino Mega or Mega 2560, Arduino Leonardo, Arduino Leonardo ETH, Arduino Robot Control',
arduino-ide-extension:   installable: true,
arduino-ide-extension:   types: [ 'Arduino' ],
arduino-ide-extension:   deprecated: false,
arduino-ide-extension:   summary: 'Boards included in this package:',
arduino-ide-extension:   installedVersion: '1.8.6',
arduino-ide-extension:   boards: [
arduino-ide-extension:     { name: 'Arduino Fio', fqbn: 'arduino:avr:fio' },
arduino-ide-extension:     { name: 'Arduino Mega ADK', fqbn: 'arduino:avr:megaADK' },
arduino-ide-extension:     { name: 'Arduino Esplora', fqbn: 'arduino:avr:esplora' },
arduino-ide-extension:     { name: 'Arduino Ethernet', fqbn: 'arduino:avr:ethernet' },
arduino-ide-extension:     { name: 'Arduino Uno WiFi', fqbn: 'arduino:avr:unowifi' },
arduino-ide-extension:     { name: 'Arduino Nano', fqbn: 'arduino:avr:nano' },
arduino-ide-extension:     { name: 'Arduino BT', fqbn: 'arduino:avr:bt' },
arduino-ide-extension:     { name: 'Arduino Robot Motor', fqbn: 'arduino:avr:robotMotor' },
arduino-ide-extension:     { name: 'Arduino Gemma', fqbn: 'arduino:avr:gemma' },
arduino-ide-extension:     { name: 'Arduino Uno Mini', fqbn: 'arduino:avr:unomini' },
arduino-ide-extension:     { name: 'Arduino Micro', fqbn: 'arduino:avr:micro' },
arduino-ide-extension:     { name: 'Arduino NG or older', fqbn: 'arduino:avr:atmegang' },
arduino-ide-extension:     { name: 'Arduino Industrial 101', fqbn: 'arduino:avr:chiwawa' },
arduino-ide-extension:     { name: 'Arduino Yún', fqbn: 'arduino:avr:yun' },
arduino-ide-extension:     { name: 'Arduino Mini', fqbn: 'arduino:avr:mini' },
arduino-ide-extension:     {
arduino-ide-extension:       name: 'Adafruit Circuit Playground',
arduino-ide-extension:       fqbn: 'arduino:avr:circuitplay32u4cat'
arduino-ide-extension:     },
arduino-ide-extension:     { name: 'Arduino Pro or Pro Mini', fqbn: 'arduino:avr:pro' },
arduino-ide-extension:     { name: 'Linino One', fqbn: 'arduino:avr:one' },
arduino-ide-extension:     {
arduino-ide-extension:       name: 'Arduino Duemilanove or Diecimila',
arduino-ide-extension:       fqbn: 'arduino:avr:diecimila'
arduino-ide-extension:     },
arduino-ide-extension:     { name: 'Arduino Uno', fqbn: 'arduino:avr:uno' },
arduino-ide-extension:     { name: 'LilyPad Arduino USB', fqbn: 'arduino:avr:LilyPadUSB' },
arduino-ide-extension:     { name: 'LilyPad Arduino', fqbn: 'arduino:avr:lilypad' },
arduino-ide-extension:     { name: 'Arduino Yún Mini', fqbn: 'arduino:avr:yunmini' },
arduino-ide-extension:     { name: 'Arduino Mega or Mega 2560', fqbn: 'arduino:avr:mega' },
arduino-ide-extension:     { name: 'Arduino Leonardo', fqbn: 'arduino:avr:leonardo' },
arduino-ide-extension:     { name: 'Arduino Leonardo ETH', fqbn: 'arduino:avr:leonardoeth' },
arduino-ide-extension:     { name: 'Arduino Robot Control', fqbn: 'arduino:avr:robotControl' }
arduino-ide-extension:   ],
arduino-ide-extension:   moreInfoLink: 'http://www.arduino.cc/'
arduino-ide-extension: }
arduino-ide-extension: <<< Boards package installation done. {
arduino-ide-extension:   id: 'arduino:avr',
arduino-ide-extension:   name: 'Arduino AVR Boards',
arduino-ide-extension:   author: 'Arduino',
arduino-ide-extension:   availableVersions: [
arduino-ide-extension:     '1.8.6',  '1.8.5',  '1.8.4',
arduino-ide-extension:     '1.8.3',  '1.8.2',  '1.8.1',
arduino-ide-extension:     '1.6.23', '1.6.22', '1.6.21',
arduino-ide-extension:     '1.6.20', '1.6.19', '1.6.18',
arduino-ide-extension:     '1.6.17', '1.6.16', '1.6.15',
arduino-ide-extension:     '1.6.14', '1.6.13', '1.6.12',
arduino-ide-extension:     '1.6.11', '1.6.10', '1.6.9',
arduino-ide-extension:     '1.6.8',  '1.6.7',  '1.6.6',
arduino-ide-extension:     '1.6.5',  '1.6.4',  '1.6.3',
arduino-ide-extension:     '1.6.2'
arduino-ide-extension:   ],
arduino-ide-extension:   description: 'Arduino Fio, Arduino Mega ADK, Arduino Esplora, Arduino Ethernet, Arduino Uno WiFi, Arduino Nano, Arduino BT, Arduino Robot Motor, Arduino Gemma, Arduino Uno Mini, Arduino Micro, Arduino NG or older, Arduino Industrial 101, Arduino Yún, Arduino Mini, Adafruit Circuit Playground, Arduino Pro or Pro Mini, Linino One, Arduino Duemilanove or Diecimila, Arduino Uno, LilyPad Arduino USB, LilyPad Arduino, Arduino Yún Mini, Arduino Mega or Mega 2560, Arduino Leonardo, Arduino Leonardo ETH, Arduino Robot Control',
arduino-ide-extension:   installable: true,
arduino-ide-extension:   types: [ 'Arduino' ],
arduino-ide-extension:   deprecated: false,
arduino-ide-extension:   summary: 'Boards included in this package:',
arduino-ide-extension:   installedVersion: '1.8.6',
arduino-ide-extension:   boards: [
arduino-ide-extension:     { name: 'Arduino Fio', fqbn: 'arduino:avr:fio' },
arduino-ide-extension:     { name: 'Arduino Mega ADK', fqbn: 'arduino:avr:megaADK' },
arduino-ide-extension:     { name: 'Arduino Esplora', fqbn: 'arduino:avr:esplora' },
arduino-ide-extension:     { name: 'Arduino Ethernet', fqbn: 'arduino:avr:ethernet' },
arduino-ide-extension:     { name: 'Arduino Uno WiFi', fqbn: 'arduino:avr:unowifi' },
arduino-ide-extension:     { name: 'Arduino Nano', fqbn: 'arduino:avr:nano' },
arduino-ide-extension:     { name: 'Arduino BT', fqbn: 'arduino:avr:bt' },
arduino-ide-extension:     { name: 'Arduino Robot Motor', fqbn: 'arduino:avr:robotMotor' },
arduino-ide-extension:     { name: 'Arduino Gemma', fqbn: 'arduino:avr:gemma' },
arduino-ide-extension:     { name: 'Arduino Uno Mini', fqbn: 'arduino:avr:unomini' },
arduino-ide-extension:     { name: 'Arduino Micro', fqbn: 'arduino:avr:micro' },
arduino-ide-extension:     { name: 'Arduino NG or older', fqbn: 'arduino:avr:atmegang' },
arduino-ide-extension:     { name: 'Arduino Industrial 101', fqbn: 'arduino:avr:chiwawa' },
arduino-ide-extension:     { name: 'Arduino Yún', fqbn: 'arduino:avr:yun' },
arduino-ide-extension:     { name: 'Arduino Mini', fqbn: 'arduino:avr:mini' },
arduino-ide-extension:     {
arduino-ide-extension:       name: 'Adafruit Circuit Playground',
arduino-ide-extension:       fqbn: 'arduino:avr:circuitplay32u4cat'
arduino-ide-extension:     },
arduino-ide-extension:     { name: 'Arduino Pro or Pro Mini', fqbn: 'arduino:avr:pro' },
arduino-ide-extension:     { name: 'Linino One', fqbn: 'arduino:avr:one' },
arduino-ide-extension:     {
arduino-ide-extension:       name: 'Arduino Duemilanove or Diecimila',
arduino-ide-extension:       fqbn: 'arduino:avr:diecimila'
arduino-ide-extension:     },
arduino-ide-extension:     { name: 'Arduino Uno', fqbn: 'arduino:avr:uno' },
arduino-ide-extension:     { name: 'LilyPad Arduino USB', fqbn: 'arduino:avr:LilyPadUSB' },
arduino-ide-extension:     { name: 'LilyPad Arduino', fqbn: 'arduino:avr:lilypad' },
arduino-ide-extension:     { name: 'Arduino Yún Mini', fqbn: 'arduino:avr:yunmini' },
arduino-ide-extension:     { name: 'Arduino Mega or Mega 2560', fqbn: 'arduino:avr:mega' },
arduino-ide-extension:     { name: 'Arduino Leonardo', fqbn: 'arduino:avr:leonardo' },
arduino-ide-extension:     { name: 'Arduino Leonardo ETH', fqbn: 'arduino:avr:leonardoeth' },
arduino-ide-extension:     { name: 'Arduino Robot Control', fqbn: 'arduino:avr:robotControl' }
arduino-ide-extension:   ],
arduino-ide-extension:   moreInfoLink: 'http://www.arduino.cc/'
arduino-ide-extension: }
arduino-ide-extension: Executing 'arduino.languageserver.notifyBuildDidComplete' with {"buildOutputUri":"file:///private/var/folders/z1/xkw1yh5n7rz4n8djprp1mdn80000gn/T/arduino-sketch-A9A8B4F5AD166604B8E37F85AD3D080A"}
arduino-ide-extension:       ✓ should execute a command with the build path (3899ms)
arduino-ide-extension:   1 passing (5s)

 ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

 >  Lerna (powered by Nx)   Successfully ran target test:slow for project arduino-ide-extension


✨  Done in 8.83s.
yarn run v1.22.18
$ theia rebuild:electron
Module not found: find-git-repositories
Processed "node-pty"
Processed "native-keymap"
Processed "drivelist"
Processed "nsfw"
⠦ Building module: drivelist, Completed: 0  CXX(target) Release/obj.target/drivelist/src/drivelist.o
⠇ Building module: drivelist, Completed: 0  CXX(target) Release/obj.target/drivelist/src/device-descriptor.o
⠼ Building module: drivelist, Completed: 0  CXX(target) Release/obj.target/drivelist/src/darwin/list.o
⠏ Building module: drivelist, Completed: 0  CXX(target) Release/obj.target/drivelist/src/darwin/REDiskList.o
⠇ Building module: drivelist, Completed: 0../src/darwin/REDiskList.m:29:13: warning: 'NSArray' may not respond to 'sortUsingSelector:'
    [_disks sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
     ~~~~~~ ^
1 warning generated.
⠋ Building module: drivelist, Completed: 0  SOLINK_MODULE(target) Release/drivelist.node
⠹ Building module: native-keymap, Completed: 1  CXX(target) Release/obj.target/keymapping/src/string_conversion.o
⠹ Building module: native-keymap, Completed: 1  CXX(target) Release/obj.target/keymapping/src/keymapping.o
⠴ Building module: native-keymap, Completed: 1  CXX(target) Release/obj.target/keymapping/src/keyboard_mac.o
⠦ Building module: native-keymap, Completed: 1  SOLINK_MODULE(target) Release/keymapping.node
⠇ Building module: node-pty, Completed: 2  CXX(target) Release/obj.target/pty/src/unix/pty.o
⠇ Building module: node-pty, Completed: 2  SOLINK_MODULE(target) Release/pty.node
⠋ Building module: node-pty, Completed: 2  CXX(target) Release/obj.target/spawn-helper/src/unix/spawn-helper.o
⠋ Building module: node-pty, Completed: 2  LINK(target) Release/spawn-helper
⠙ Building module: nsfw, Completed: 3  CXX(target) Release/obj.target/nsfw/src/NSFW.o
⠸ Building module: nsfw, Completed: 3  CXX(target) Release/obj.target/nsfw/src/Queue.o
⠏ Building module: nsfw, Completed: 3  CXX(target) Release/obj.target/nsfw/src/NativeInterface.o
⠇ Building module: nsfw, Completed: 3  CXX(target) Release/obj.target/nsfw/src/osx/RunLoop.o
⠏ Building module: nsfw, Completed: 3  CXX(target) Release/obj.target/nsfw/src/osx/FSEventsService.o
⠦ Building module: nsfw, Completed: 3  SOLINK_MODULE(target) Release/nsfw.node
✔ Rebuild Complete
✨  Done in 36.87s.
yarn run v1.22.18
$ lerna run test:slow
lerna notice cli v6.1.0
lerna info versioning independent

> arduino-ide-extension:"test:slow"

$ mocha "./lib/test/**/*.slow-test.js"
arduino-ide-extension: Error: Module did not self-register: '/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/drivelist/build/Release/drivelist.node'.
arduino-ide-extension:     at Object.Module._extensions..node (node:internal/modules/cjs/loader:1189:18)
arduino-ide-extension:     at Module.load (node:internal/modules/cjs/loader:981:32)
arduino-ide-extension:     at Function.Module._load (node:internal/modules/cjs/loader:822:12)
arduino-ide-extension:     at Module.require (node:internal/modules/cjs/loader:1005:19)
arduino-ide-extension:     at require (node:internal/modules/cjs/helpers:102:18)
arduino-ide-extension:     at bindings (/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/bindings/bindings.js:112:48)
arduino-ide-extension:     at Object.<anonymous> (/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/drivelist/js/index.js:25:27)
arduino-ide-extension:     at Module._compile (node:internal/modules/cjs/loader:1105:14)
arduino-ide-extension:     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
arduino-ide-extension:     at Module.load (node:internal/modules/cjs/loader:981:32)
arduino-ide-extension:     at Function.Module._load (node:internal/modules/cjs/loader:822:12)
arduino-ide-extension:     at Module.require (node:internal/modules/cjs/loader:1005:19)
arduino-ide-extension:     at require (node:internal/modules/cjs/helpers:102:18)
arduino-ide-extension:     at Object.<anonymous> (/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/@theia/core/lib/node/env-variables/env-variables-server.js:31:19)
arduino-ide-extension:     at Module._compile (node:internal/modules/cjs/loader:1105:14)
arduino-ide-extension:     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
arduino-ide-extension:     at Module.load (node:internal/modules/cjs/loader:981:32)
arduino-ide-extension:     at Function.Module._load (node:internal/modules/cjs/loader:822:12)
arduino-ide-extension:     at Module.require (node:internal/modules/cjs/loader:1005:19)
arduino-ide-extension:     at require (node:internal/modules/cjs/helpers:102:18)
arduino-ide-extension:     at Object.<anonymous> (/Users/a.kitta/Desktop/tmp/arduino-ide/arduino-ide-extension/lib/node/theia/env-variables/env-variables-server.js:15:32)
arduino-ide-extension:     at Module._compile (node:internal/modules/cjs/loader:1105:14)
arduino-ide-extension:     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
arduino-ide-extension:     at Module.load (node:internal/modules/cjs/loader:981:32)
arduino-ide-extension:     at Function.Module._load (node:internal/modules/cjs/loader:822:12)
arduino-ide-extension:     at Module.require (node:internal/modules/cjs/loader:1005:19)
arduino-ide-extension:     at require (node:internal/modules/cjs/helpers:102:18)
arduino-ide-extension:     at Object.<anonymous> (/Users/a.kitta/Desktop/tmp/arduino-ide/arduino-ide-extension/lib/test/node/core-service-impl.slow-test.js:34:32)
arduino-ide-extension:     at Module._compile (node:internal/modules/cjs/loader:1105:14)
arduino-ide-extension:     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
arduino-ide-extension:     at Module.load (node:internal/modules/cjs/loader:981:32)
arduino-ide-extension:     at Function.Module._load (node:internal/modules/cjs/loader:822:12)
arduino-ide-extension:     at Module.require (node:internal/modules/cjs/loader:1005:19)
arduino-ide-extension:     at require (node:internal/modules/cjs/helpers:102:18)
arduino-ide-extension:     at requireOrImport (/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/mocha/lib/esm-utils.js:15:12)
arduino-ide-extension:     at Object.exports.loadFilesAsync (/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/mocha/lib/esm-utils.js:28:26)
arduino-ide-extension:     at Mocha.loadFilesAsync (/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/mocha/lib/mocha.js:386:19)
arduino-ide-extension:     at singleRun (/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/mocha/lib/cli/run-helpers.js:149:15)
arduino-ide-extension:     at exports.runMocha (/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/mocha/lib/cli/run-helpers.js:186:11)
arduino-ide-extension:     at Object.exports.handler (/Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/mocha/lib/cli/run.js:319:11)
arduino-ide-extension:     at /Users/a.kitta/Desktop/tmp/arduino-ide/node_modules/mocha/node_modules/yargs/lib/command.js:241:49
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

 ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

 >  Lerna (powered by Nx)   Running target "arduino-ide-extension:test:slow" failed

   Failed tasks:
   
   - arduino-ide-extension:test:slow
   
   Hint: run the command with --verbose for more details.

error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
a.kitta@Akoss-MacBook-Pro arduino-ide % yarn rebuild:browser && yarn test:slow
yarn run v1.22.18
$ theia rebuild:browser
Reverted "node-pty"
Reverted "native-keymap"
Reverted "nsfw"
Reverted "drivelist"
✨  Done in 1.54s.
yarn run v1.22.18
$ lerna run test:slow
lerna notice cli v6.1.0
lerna info versioning independent

> arduino-ide-extension:"test:slow"

$ mocha "./lib/test/**/*.slow-test.js"
arduino-ide-extension: 
arduino-ide-extension:   core-service-impl
arduino-ide-extension:     compile
arduino-ide-extension: Configuration directory URI: 'file:///Users/a.kitta/.theia'
arduino-ide-extension: >>> Starting boards package installation... {
arduino-ide-extension:   id: 'arduino:avr',
arduino-ide-extension:   name: 'Arduino AVR Boards',
arduino-ide-extension:   author: 'Arduino',
arduino-ide-extension:   availableVersions: [
arduino-ide-extension:     '1.8.6',  '1.8.5',  '1.8.4',
arduino-ide-extension:     '1.8.3',  '1.8.2',  '1.8.1',
arduino-ide-extension:     '1.6.23', '1.6.22', '1.6.21',
arduino-ide-extension:     '1.6.20', '1.6.19', '1.6.18',
arduino-ide-extension:     '1.6.17', '1.6.16', '1.6.15',
arduino-ide-extension:     '1.6.14', '1.6.13', '1.6.12',
arduino-ide-extension:     '1.6.11', '1.6.10', '1.6.9',
arduino-ide-extension:     '1.6.8',  '1.6.7',  '1.6.6',
arduino-ide-extension:     '1.6.5',  '1.6.4',  '1.6.3',
arduino-ide-extension:     '1.6.2'
arduino-ide-extension:   ],
arduino-ide-extension:   description: 'Arduino Mega ADK, Arduino Yún Mini, Arduino Mega or Mega 2560, Arduino Mini, Arduino Fio, Arduino Robot Motor, Arduino Yún, Arduino Leonardo ETH, Arduino Pro or Pro Mini, Arduino NG or older, Arduino Robot Control, Arduino Duemilanove or Diecimila, Arduino Ethernet, Linino One, Arduino Nano, Arduino BT, LilyPad Arduino USB, LilyPad Arduino, Arduino Uno WiFi, Arduino Uno Mini, Arduino Micro, Arduino Esplora, Arduino Gemma, Arduino Industrial 101, Arduino Leonardo, Adafruit Circuit Playground, Arduino Uno',
arduino-ide-extension:   installable: true,
arduino-ide-extension:   types: [ 'Arduino' ],
arduino-ide-extension:   deprecated: false,
arduino-ide-extension:   summary: 'Boards included in this package:',
arduino-ide-extension:   installedVersion: '1.8.6',
arduino-ide-extension:   boards: [
arduino-ide-extension:     { name: 'Arduino Mega ADK', fqbn: 'arduino:avr:megaADK' },
arduino-ide-extension:     { name: 'Arduino Yún Mini', fqbn: 'arduino:avr:yunmini' },
arduino-ide-extension:     { name: 'Arduino Mega or Mega 2560', fqbn: 'arduino:avr:mega' },
arduino-ide-extension:     { name: 'Arduino Mini', fqbn: 'arduino:avr:mini' },
arduino-ide-extension:     { name: 'Arduino Fio', fqbn: 'arduino:avr:fio' },
arduino-ide-extension:     { name: 'Arduino Robot Motor', fqbn: 'arduino:avr:robotMotor' },
arduino-ide-extension:     { name: 'Arduino Yún', fqbn: 'arduino:avr:yun' },
arduino-ide-extension:     { name: 'Arduino Leonardo ETH', fqbn: 'arduino:avr:leonardoeth' },
arduino-ide-extension:     { name: 'Arduino Pro or Pro Mini', fqbn: 'arduino:avr:pro' },
arduino-ide-extension:     { name: 'Arduino NG or older', fqbn: 'arduino:avr:atmegang' },
arduino-ide-extension:     { name: 'Arduino Robot Control', fqbn: 'arduino:avr:robotControl' },
arduino-ide-extension:     {
arduino-ide-extension:       name: 'Arduino Duemilanove or Diecimila',
arduino-ide-extension:       fqbn: 'arduino:avr:diecimila'
arduino-ide-extension:     },
arduino-ide-extension:     { name: 'Arduino Ethernet', fqbn: 'arduino:avr:ethernet' },
arduino-ide-extension:     { name: 'Linino One', fqbn: 'arduino:avr:one' },
arduino-ide-extension:     { name: 'Arduino Nano', fqbn: 'arduino:avr:nano' },
arduino-ide-extension:     { name: 'Arduino BT', fqbn: 'arduino:avr:bt' },
arduino-ide-extension:     { name: 'LilyPad Arduino USB', fqbn: 'arduino:avr:LilyPadUSB' },
arduino-ide-extension:     { name: 'LilyPad Arduino', fqbn: 'arduino:avr:lilypad' },
arduino-ide-extension:     { name: 'Arduino Uno WiFi', fqbn: 'arduino:avr:unowifi' },
arduino-ide-extension:     { name: 'Arduino Uno Mini', fqbn: 'arduino:avr:unomini' },
arduino-ide-extension:     { name: 'Arduino Micro', fqbn: 'arduino:avr:micro' },
arduino-ide-extension:     { name: 'Arduino Esplora', fqbn: 'arduino:avr:esplora' },
arduino-ide-extension:     { name: 'Arduino Gemma', fqbn: 'arduino:avr:gemma' },
arduino-ide-extension:     { name: 'Arduino Industrial 101', fqbn: 'arduino:avr:chiwawa' },
arduino-ide-extension:     { name: 'Arduino Leonardo', fqbn: 'arduino:avr:leonardo' },
arduino-ide-extension:     {
arduino-ide-extension:       name: 'Adafruit Circuit Playground',
arduino-ide-extension:       fqbn: 'arduino:avr:circuitplay32u4cat'
arduino-ide-extension:     },
arduino-ide-extension:     { name: 'Arduino Uno', fqbn: 'arduino:avr:uno' }
arduino-ide-extension:   ],
arduino-ide-extension:   moreInfoLink: 'http://www.arduino.cc/'
arduino-ide-extension: }
arduino-ide-extension: <<< Boards package installation done. {
arduino-ide-extension:   id: 'arduino:avr',
arduino-ide-extension:   name: 'Arduino AVR Boards',
arduino-ide-extension:   author: 'Arduino',
arduino-ide-extension:   availableVersions: [
arduino-ide-extension:     '1.8.6',  '1.8.5',  '1.8.4',
arduino-ide-extension:     '1.8.3',  '1.8.2',  '1.8.1',
arduino-ide-extension:     '1.6.23', '1.6.22', '1.6.21',
arduino-ide-extension:     '1.6.20', '1.6.19', '1.6.18',
arduino-ide-extension:     '1.6.17', '1.6.16', '1.6.15',
arduino-ide-extension:     '1.6.14', '1.6.13', '1.6.12',
arduino-ide-extension:     '1.6.11', '1.6.10', '1.6.9',
arduino-ide-extension:     '1.6.8',  '1.6.7',  '1.6.6',
arduino-ide-extension:     '1.6.5',  '1.6.4',  '1.6.3',
arduino-ide-extension:     '1.6.2'
arduino-ide-extension:   ],
arduino-ide-extension:   description: 'Arduino Mega ADK, Arduino Yún Mini, Arduino Mega or Mega 2560, Arduino Mini, Arduino Fio, Arduino Robot Motor, Arduino Yún, Arduino Leonardo ETH, Arduino Pro or Pro Mini, Arduino NG or older, Arduino Robot Control, Arduino Duemilanove or Diecimila, Arduino Ethernet, Linino One, Arduino Nano, Arduino BT, LilyPad Arduino USB, LilyPad Arduino, Arduino Uno WiFi, Arduino Uno Mini, Arduino Micro, Arduino Esplora, Arduino Gemma, Arduino Industrial 101, Arduino Leonardo, Adafruit Circuit Playground, Arduino Uno',
arduino-ide-extension:   installable: true,
arduino-ide-extension:   types: [ 'Arduino' ],
arduino-ide-extension:   deprecated: false,
arduino-ide-extension:   summary: 'Boards included in this package:',
arduino-ide-extension:   installedVersion: '1.8.6',
arduino-ide-extension:   boards: [
arduino-ide-extension:     { name: 'Arduino Mega ADK', fqbn: 'arduino:avr:megaADK' },
arduino-ide-extension:     { name: 'Arduino Yún Mini', fqbn: 'arduino:avr:yunmini' },
arduino-ide-extension:     { name: 'Arduino Mega or Mega 2560', fqbn: 'arduino:avr:mega' },
arduino-ide-extension:     { name: 'Arduino Mini', fqbn: 'arduino:avr:mini' },
arduino-ide-extension:     { name: 'Arduino Fio', fqbn: 'arduino:avr:fio' },
arduino-ide-extension:     { name: 'Arduino Robot Motor', fqbn: 'arduino:avr:robotMotor' },
arduino-ide-extension:     { name: 'Arduino Yún', fqbn: 'arduino:avr:yun' },
arduino-ide-extension:     { name: 'Arduino Leonardo ETH', fqbn: 'arduino:avr:leonardoeth' },
arduino-ide-extension:     { name: 'Arduino Pro or Pro Mini', fqbn: 'arduino:avr:pro' },
arduino-ide-extension:     { name: 'Arduino NG or older', fqbn: 'arduino:avr:atmegang' },
arduino-ide-extension:     { name: 'Arduino Robot Control', fqbn: 'arduino:avr:robotControl' },
arduino-ide-extension:     {
arduino-ide-extension:       name: 'Arduino Duemilanove or Diecimila',
arduino-ide-extension:       fqbn: 'arduino:avr:diecimila'
arduino-ide-extension:     },
arduino-ide-extension:     { name: 'Arduino Ethernet', fqbn: 'arduino:avr:ethernet' },
arduino-ide-extension:     { name: 'Linino One', fqbn: 'arduino:avr:one' },
arduino-ide-extension:     { name: 'Arduino Nano', fqbn: 'arduino:avr:nano' },
arduino-ide-extension:     { name: 'Arduino BT', fqbn: 'arduino:avr:bt' },
arduino-ide-extension:     { name: 'LilyPad Arduino USB', fqbn: 'arduino:avr:LilyPadUSB' },
arduino-ide-extension:     { name: 'LilyPad Arduino', fqbn: 'arduino:avr:lilypad' },
arduino-ide-extension:     { name: 'Arduino Uno WiFi', fqbn: 'arduino:avr:unowifi' },
arduino-ide-extension:     { name: 'Arduino Uno Mini', fqbn: 'arduino:avr:unomini' },
arduino-ide-extension:     { name: 'Arduino Micro', fqbn: 'arduino:avr:micro' },
arduino-ide-extension:     { name: 'Arduino Esplora', fqbn: 'arduino:avr:esplora' },
arduino-ide-extension:     { name: 'Arduino Gemma', fqbn: 'arduino:avr:gemma' },
arduino-ide-extension:     { name: 'Arduino Industrial 101', fqbn: 'arduino:avr:chiwawa' },
arduino-ide-extension:     { name: 'Arduino Leonardo', fqbn: 'arduino:avr:leonardo' },
arduino-ide-extension:     {
arduino-ide-extension:       name: 'Adafruit Circuit Playground',
arduino-ide-extension:       fqbn: 'arduino:avr:circuitplay32u4cat'
arduino-ide-extension:     },
arduino-ide-extension:     { name: 'Arduino Uno', fqbn: 'arduino:avr:uno' }
arduino-ide-extension:   ],
arduino-ide-extension:   moreInfoLink: 'http://www.arduino.cc/'
arduino-ide-extension: }
arduino-ide-extension: Executing 'arduino.languageserver.notifyBuildDidComplete' with {"buildOutputUri":"file:///private/var/folders/z1/xkw1yh5n7rz4n8djprp1mdn80000gn/T/arduino-sketch-2421840D1D1E2545BC7523A4EFC8DD44"}
arduino-ide-extension:       ✓ should execute a command with the build path (538ms)
arduino-ide-extension:   1 passing (1s)

 ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

 >  Lerna (powered by Nx)   Successfully ran target test:slow for project arduino-ide-extension


✨  Done in 5.93s.
a.kitta@Akoss-MacBook-Pro arduino-ide % 


Explanation:

Any Theia application comes with native node dependencies. These dependencies are not downloaded from anywhere but built on the npm install hook (npm i, yarn install, or simply yarn for IDE2) on the current platform's OS and arch. (Note: there is a way to provide downloadable native pre-builds.)

When you run yarn, these native dependencies will be available based on your Node.js version (node -v), OS, and arch. Once the dependencies are available and the build is complete, the tests are executed with mocha using Node.js from your $PATH.

When you give users an electron-based app, such as IDE2, users might not have Node.js installed and available from the $PATH, but the app must run. Electron "contains" its own Node.js, so any electron-based app can run without Node.js installed. IDE2 uses Node.js 16.5.0. (Open IDE2 > Toggle DevConsole > Open Console > Type JSON.stringify(process.versions) > Press Enter)

{
    "node": "16.5.0",
    "v8": "9.4.146.22-electron.0",
    "uv": "1.41.0",
    "zlib": "1.2.11",
    "brotli": "1.0.9",
    "ares": "1.17.1",
    "modules": "98",
    "nghttp2": "1.42.0",
    "napi": "8",
    "llhttp": "6.0.2",
    "openssl": "1.1.1",
    "icu": "69.1",
    "unicode": "13.0",
    "electron": "15.5.7",
    "chrome": "94.0.4606.81"
}

The electron:rebuild is a must to use the native modules in IDE2. From here:

Native Node.js modules are supported by Electron, but since Electron has a different application binary interface (ABI) from a given Node.js binary (due to differences such as using Chromium's BoringSSL instead of OpenSSL), the native modules you use will need to be recompiled for Electron

After the electron-rebuild, the app will run, but the tests won't because those are still executed with Node.js from the $PATH, but the natives were built from the Node.js from electron.


FAQ:

  • Q: Why isn't it a problem with yarn test?
  • A: yarn test is testing plain unit tests, and they do not require injection, CLI daemon initialization, etc. They happen not to require any native modules.

Copy link
Contributor

@per1234 per1234 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks so much for the excellent explanation Akos.

This test is great because we would be unlikely to catch a regression via manual testing.

Signed-off-by: Akos Kitta <a.kitta@arduino.cc>
@kittaakos kittaakos merged commit 658f117 into main Jan 24, 2023
@kittaakos kittaakos deleted the compile-test branch January 24, 2023 08:06
@per1234 per1234 added type: enhancement Proposed improvement topic: infrastructure Related to project infrastructure and removed topic: code Related to content of the project itself labels Jan 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic: infrastructure Related to project infrastructure type: enhancement Proposed improvement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants