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

Update Theia to 1.22.1 #791

Merged
merged 17 commits into from
Feb 11, 2022
Merged

Update Theia to 1.22.1 #791

merged 17 commits into from
Feb 11, 2022

Conversation

msujew
Copy link
Contributor

@msujew msujew commented Jan 31, 2022

The largest change in the update to Electron 15 is that remote is now exported from @electron/remote instead of electron directly.

Please check whether the electron related functionality still works as expected. The application runs correctly on my machine with Electron 15.

Regarding the change in the readme: Theia 1.20 shipped with a fix for the rebuild issue, so it can be run from the root of the repo again.

@fstasi
Copy link
Contributor

fstasi commented Jan 31, 2022

@msujew I updated the CI updating node to 14, but there's an issue with dugite-extra which is used by @theia/git@1.22.1 and is locked to v12.

I guess we can open a PR here and update to node 14

error dugite-extra@0.1.14: The engine "node" is incompatible with this module. Expected version ">=10.11.0 <13". Got "14.18.2"

@per1234 per1234 added topic: infrastructure Related to project infrastructure type: enhancement Proposed improvement labels Jan 31, 2022
@msujew msujew force-pushed the msujew/theia-update-1.22 branch from b78a73a to 4e7306e Compare February 3, 2022 12:52
@msujew msujew force-pushed the msujew/theia-update-1.22 branch from 4e7306e to 3118b4c Compare February 3, 2022 13:24
per1234
per1234 previously requested changes Feb 7, 2022
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 for updating the ARM build documentation @fstasi!

I see two other places in the documentation where Node.js 12 is still specified:

docs/internal/Ubuntu.md

https://github.com/arduino/arduino-ide/blob/msujew/theia-update-1.22/docs/internal/Ubuntu.md

&& nvm install 12.14.1 \
&& nvm use 12.14.1 \
&& nvm alias default 12.14.1 \

BUILDING.md

https://github.com/arduino/arduino-ide/blob/msujew/theia-update-1.22/BUILDING.md#build-from-source

Please refer to the Theia IDE prerequisites documentation for the setup instructions.

https://github.com/eclipse-theia/theia/blob/master/doc/Developing.md#prerequisites

  • Node.js >= 12.14.1.
    • For now, use Node 12.

I wonder if it would be best to specify the prerequisites directly in this repository's documentation?

The current approach of pointing to the Theia docs at the tip of the master branch is a bad idea because that documentation is not guaranteed to be correct for the version of Theia used in this project. The alternative would be to use the ref for the version that is in use. In this case it would be:
https://github.com/eclipse-theia/theia/blob/v1.22.1/doc/Developing.md#prerequisites
and then remember to update the link at each bump. But that still assumes that those docs will always be correct for Arduino IDE.

@fstasi fstasi mentioned this pull request Feb 7, 2022
@fstasi fstasi force-pushed the msujew/theia-update-1.22 branch from 448a676 to 4a4fbe6 Compare February 7, 2022 10:22
@fstasi
Copy link
Contributor

fstasi commented Feb 7, 2022

@per1234 Thanks for pointing me out the Ubuntu.md file, I did miss it!

Regarding the link to the Theia building instructions, I'm not sure if it would be better to integrate such extensive doc in our codebase and maintain it and where to place it so that it's available for ppl with issues building but not "too much" visible when developers just want to jump in a contribute. What is your take on that?

@fstasi
Copy link
Contributor

fstasi commented Feb 7, 2022

@msujew we also noticed this error that breaks the menus (and potentially other stuff)

root ERROR ReferenceError: Electron is not defined
    at ElectronMainMenuFactory.createOSXMenu (file:///Users/francesco/projects/arduino/arduino-ide/electron-app/lib/arduino-ide-extension_lib_electron-browser_theia_core_electron-menu-module_js.bundle.js:361:47)
    at ElectronMainMenuFactory.createElectronMenuBar (file:///Users/francesco/projects/arduino/arduino-ide/electron-app/lib/arduino-ide-extension_lib_electron-browser_theia_core_electron-menu-module_js.bundle.js:314:35)
    at ElectronMenuContribution.setMenu (file:///Users/francesco/projects/arduino/arduino-ide/electron-app/lib/vendors-node_modules_theia_core_lib_electron-browser_menu_electron-menu-contribution_js.bundle.js:992:46)
    at ElectronMenuContribution.update (file:///Users/francesco/projects/arduino/arduino-ide/electron-app/lib/arduino-ide-extension_lib_electron-browser_theia_core_electron-menu-module_js.bundle.js:424:14)
    at refreshMenu (file:///Users/francesco/projects/arduino/arduino-ide/electron-app/lib/arduino-ide-extension_node_modules_moment_locale_sync_recursive_-arduino-ide-extension_lib_br-8d6f5c.bundle.js:6437:34)
    at file:///Users/francesco/projects/arduino/arduino-ide/electron-app/lib/arduino-ide-extension_node_modules_moment_locale_sync_recursive_-arduino-ide-extension_lib_br-8d6f5c.bundle.js:6439:75
    at file:///Users/francesco/projects/arduino/arduino-ide/electron-app/lib/bundle.js:56828:69
    at CallbackList.invoke (file:///Users/francesco/projects/arduino/arduino-ide/electron-app/lib/bundle.js:56834:26)
    at Emitter.fire (file:///Users/francesco/projects/arduino/arduino-ide/electron-app/lib/bundle.js:56946:29)
    at NotificationCenter.notifyRecentSketchesChanged (file:///Users/francesco/projects/arduino/arduino-ide/electron-app/lib/arduino-ide-extension_node_modules_moment_locale_sync_recursive_-arduino-ide-extension_lib_br-8d6f5c.bundle.js:11455:43)

@per1234
Copy link
Contributor

per1234 commented Feb 7, 2022

such extensive doc

Unless I misunderstand, it is really not much content.

This is the entirety of it:

Prerequisites

  • Node.js >= 12.14.1.
    • For now, use Node 12.
    • Node 14 is supported, Node 16 should work, but you might need to run yarn --ignore-engines to get around some arbitrary > constraints.
    • If you are interested in Theia's VS Code Extension support then you should use a Node version at least compatible with the one > included in the version of Electron used by VS Code.
  • Yarn package manager >= 1.7.0 AND < 2.x.x.
  • git (If you would like to use the Git-extension too, you will need to have git version 2.11.0 or higher.)

Some additional tools and libraries are needed depending on your platform:

  • Linux

    • make
    • gcc (or another compiling toolchain)
    • pkg-config
    • build-essential: sudo apt-get install build-essential
    • native-keymap native node module dependencies:
      • Debian-based: sudo apt-get install libx11-dev libxkbfile-dev
      • Red Hat-based: sudo yum install libX11-devel.x86_64 libxkbfile-devel.x86_64 # or .i686
      • FreeBSD: sudo pkg install libX11
    • keytar native node module dependencies (reference):
      • Debian/Ubuntu: sudo apt-get install libsecret-1-dev
      • Red Hat-based: sudo yum install libsecret-devel
      • Arch Linux: sudo pacman -S libsecret
      • Alpine: apk add libsecret-dev
  • Linux/MacOS

    • nvm is recommended to easily switch between Node.js versions.
  • Windows

    • We recommend using scoop. The detailed steps are here.

and maintain it

Yeah, this would be the motivation for the current approach of referencing the Theia docs. We avoid the need to maintain a copy of that information here.

What is your take on that?

It depends on this question: "Is the Theia documentation accurate for the Arduino IDE project?"

If the answer is "yes", then we should continue to reference it, but we should pin to the specific version that is accurate.

If the answer is "no", then we should maintain our own build dependencies installation instructions.

Since the Theia docs say Node.js 12, it seems to me that they are not accurate for Arduino IDE.

@msujew
Copy link
Contributor Author

msujew commented Feb 7, 2022

@fstasi This is still work in progress, I'm currently trying to fix the build error in the MacOS CI. Given that you were able to run the electron build, did you not experience the build error?

@fstasi
Copy link
Contributor

fstasi commented Feb 7, 2022

@fstasi This is still work in progress, I'm currently trying to fix the build error in the MacOS CI. Given that you were able to run the electron build, did you not experience the build error?

@msujew I confirm I was able to build and run the IDE on my intel mac laptop :). The build is succesful and the application starts, with the above run time error.

As a side note, the build itself also works on the CI, my understanding is that the packaging of the electron executable is not working

@fstasi
Copy link
Contributor

fstasi commented Feb 7, 2022

@per1234

Unless I misunderstand, it is really not much content.
The pre-requisites are indeed quite slim, but I liked the idea of pointing to the Developing doc as it contains a number of insights on how to debug, fix common issues on windows/linux/mac and so on. I see value in that document as it kind of a FAQ for common issues new comers might have.

It depends on this question: "Is the Theia documentation accurate for the Arduino IDE project?"
[...]
Since the Theia docs say Node.js 12, it seems to me that they are not accurate for Arduino IDE.
I agree with you that the documentation is indeed partial and outdated for the node part (but we create a PR on theia to fix that).

The question is really: where do we want to have this "technical" documentation about building/debugging and the FAQs

@per1234
Copy link
Contributor

per1234 commented Feb 7, 2022

Instructions for dependencies installation are essential to building, so I think the appropriate place for them is in the BUILDING.md document.

The information currently under the "Architecture overview" and "FAQ" is far less essential, and so would be reasonable to move to separate files that are linked to from BUILDING.md, or even from a CONTRIBUTING.md file when it comes to things not directly relevant to building.

@per1234 per1234 dismissed their stale review February 7, 2022 14:51

The documentation updates I suggested are now done. Thanks!

@msujew
Copy link
Contributor Author

msujew commented Feb 8, 2022

@fstasi @per1234 I created an update to the dependencies that required Theia to run under Node 12 and a PR to uplift them in Theia. The --ignore-engines thing is only temporary.

I think I also fixed the Electron.Menu issue you were experiencing.

@fstasi
Copy link
Contributor

fstasi commented Feb 9, 2022

@msujew thanks for the progress on this one!

There is still some issue with the packaged version of the application: I get this error running the executable on mac:

/Applications/Arduino\ IDE.app/Contents/MacOS/Arduino\ IDE
Starting backend process. PID: 27246
/Applications/Arduino IDE.app/Contents/Resources/app/node_modules/bindings/bindings.js:121
        throw e;
        ^

Error: Module did not self-register: '/Applications/Arduino IDE.app/Contents/Resources/app/node_modules/drivelist/build/Release/drivelist.node'.
    at process.func [as dlopen] (node:electron/js2c/asar_bundle:5:1800)
    at Object.Module._extensions..node (node:internal/modules/cjs/loader:1170:18)
    at Object.func [as .node] (node:electron/js2c/asar_bundle:5:1800)
    at Module.load (node:internal/modules/cjs/loader:982:32)
    at Module._load (node:internal/modules/cjs/loader:823:12)
    at Function.c._load (node:electron/js2c/asar_bundle:5:13331)
    at Module.require (node:internal/modules/cjs/loader:1006:19)
    at require (node:internal/modules/cjs/helpers:93:18)
    at bindings (/Applications/Arduino IDE.app/Contents/Resources/app/node_modules/bindings/bindings.js:112:48)
    at Object.<anonymous> (/Applications/Arduino IDE.app/Contents/Resources/app/node_modules/drivelist/js/index.js:25:27) {
  code: 'ERR_DLOPEN_FAILED'
}

@msujew
Copy link
Contributor Author

msujew commented Feb 9, 2022

@fstasi Yep, I noticed that one as well. I wanted to see whether simply disabling the npmRebuild would fix the issue, but it seems like they don't get build at all in that case...

Anyway, I talked with Paul about that, and he was quite confused as well, given that we don't rebuild oniguruma (the source of the rebuild issue) at all in the Theia repo. I'll investigate this further, but it's tricky ;)

@msujew
Copy link
Contributor Author

msujew commented Feb 9, 2022

@fstasi Would you mind testing the newest artifacts on MacOS? I believe it builds and runs correctly now.

@fstasi
Copy link
Contributor

fstasi commented Feb 9, 2022

@fstasi Would you mind testing the newest artifacts on MacOS? I believe it builds and runs correctly now.

@msujew I confirm it does start! The solution is quite clever btw!

@silvanocerza
Copy link
Contributor

I still get the same error on the M1. What am I missing?

~/workspace/arduino-ide on  remotes/origin/msujew/theia-update-1.22
$ yarn
yarn install v1.22.10
[1/5] 🔍  Validating package.json...
[2/5] 🔍  Resolving packages...
[3/5] 🚚  Fetching packages...
error dugite-extra@0.1.14: The engine "node" is incompatible with this module. Expected version ">=10.11.0 <13". Got "14.19.0"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

@silvanocerza
Copy link
Contributor

silvanocerza commented Feb 10, 2022

Nevermind, I forgot to add --ignore-engines when calling yarn. 🤦

Nonetheless it still fails, seems like there are no native grpc-tools binaries? Also our language server.

yarn install v1.22.10
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
warning "lerna > @lerna/version > @lerna/github-client > @octokit/rest > @octokit/plugin-request-log@1.0.3" has unmet peer dependency "@octokit/core@>=3".
warning "workspace-aggregator-2516c017-13ac-47b4-ae32-87bd6704d98b > arduino-ide-extension > @theia/electron@1.22.1" has unmet peer dependency "electron@^15.3.5".
warning "workspace-aggregator-2516c017-13ac-47b4-ae32-87bd6704d98b > arduino-ide-extension > @tippyjs/react@4.2.5" has unmet peer dependency "react@>=16.8".
warning "workspace-aggregator-2516c017-13ac-47b4-ae32-87bd6704d98b > arduino-ide-extension > @tippyjs/react@4.2.5" has unmet peer dependency "react-dom@>=16.8".
warning "workspace-aggregator-2516c017-13ac-47b4-ae32-87bd6704d98b > arduino-ide-extension > react-disable@0.1.0" has unmet peer dependency "react@>=16".
warning "workspace-aggregator-2516c017-13ac-47b4-ae32-87bd6704d98b > arduino-ide-extension > react-select@3.2.0" has unmet peer dependency "react@^16.8.0 || ^17.0.0".
warning "workspace-aggregator-2516c017-13ac-47b4-ae32-87bd6704d98b > arduino-ide-extension > react-select@3.2.0" has unmet peer dependency "react-dom@^16.8.0 || ^17.0.0".
warning "workspace-aggregator-2516c017-13ac-47b4-ae32-87bd6704d98b > arduino-ide-extension > react-tabs@3.2.1" has unmet peer dependency "react@^16.3.0 || ^17.0.0-0".
warning "workspace-aggregator-2516c017-13ac-47b4-ae32-87bd6704d98b > arduino-ide-extension > react-window@1.8.6" has unmet peer dependency "react@^15.0.0 || ^16.0.0 || ^17.0.0".
warning "workspace-aggregator-2516c017-13ac-47b4-ae32-87bd6704d98b > arduino-ide-extension > react-window@1.8.6" has unmet peer dependency "react-dom@^15.0.0 || ^16.0.0 || ^17.0.0".
warning "workspace-aggregator-2516c017-13ac-47b4-ae32-87bd6704d98b > arduino-ide-extension > @theia/electron > @electron/remote@2.0.4" has unmet peer dependency "electron@>= 13.0.0".
warning "workspace-aggregator-2516c017-13ac-47b4-ae32-87bd6704d98b > arduino-ide-extension > react-select > @emotion/core@10.1.1" has unmet peer dependency "react@>=16.3.0".
warning "workspace-aggregator-2516c017-13ac-47b4-ae32-87bd6704d98b > arduino-ide-extension > react-select > react-input-autosize@3.0.0" has unmet peer dependency "react@^16.3.0 || ^17.0.0".
warning "workspace-aggregator-2516c017-13ac-47b4-ae32-87bd6704d98b > arduino-ide-extension > react-select > react-transition-group@4.4.1" has unmet peer dependency "react@>=16.6.0".
warning "workspace-aggregator-2516c017-13ac-47b4-ae32-87bd6704d98b > arduino-ide-extension > react-select > react-transition-group@4.4.1" has unmet peer dependency "react-dom@>=16.6.0".
warning "workspace-aggregator-2516c017-13ac-47b4-ae32-87bd6704d98b > electron-app > @theia/debug > requestretry@3.1.0" has unmet peer dependency "request@2.*.*".
warning "workspace-aggregator-2516c017-13ac-47b4-ae32-87bd6704d98b > electron-app > @theia/messages > react-perfect-scrollbar@1.5.8" has unmet peer dependency "react@>=16.3.3".
warning "workspace-aggregator-2516c017-13ac-47b4-ae32-87bd6704d98b > electron-app > @theia/messages > react-perfect-scrollbar@1.5.8" has unmet peer dependency "react-dom@>=16.3.3".
warning "workspace-aggregator-2516c017-13ac-47b4-ae32-87bd6704d98b > electron-app > @theia/process > node-pty@0.11.0-beta17" has unmet peer dependency "node-gyp@^8.3.0".
warning "workspace-aggregator-2516c017-13ac-47b4-ae32-87bd6704d98b > arduino-ide-extension > @theia/git > @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-2516c017-13ac-47b4-ae32-87bd6704d98b > arduino-ide-extension > @theia/git > @theia/scm > react-autosize-textarea@7.1.0" has unmet peer dependency "react-dom@^0.14.0 || ^15.0.0 || ^16.0.0".
[4/4] 🔨  Building fresh packages...
[13/18] ⢀ grpc
[2/18] ⢀ puppeteer
[14/18] ⢀ grpc-tools
[8/18] ⢀ oniguruma
warning Error running install script for optional dependency: "/Users/alien/workspace/arduino-ide/node_modules/grpc-tools: Command failed.
Exit code: 1
Command: node-pre-gyp install
Arguments:
Directory: /Users/alien/workspace/arduino-ide/node_modules/grpc-tools
Output:
node-pre-gyp info it worked if it ends with ok
node-pre-gyp info using node-pre-gyp@0.15.0
node-pre-gyp info using node@14.19.0 | darwin | arm64
node-pre-gyp WARN Using request for node-pre-gyp https download
node-pre-gyp info check checked for \"/Users/alien/workspace/arduino-ide/node_modules/grpc-tools/bin/grpc_tools.node\" (not found)
node-pre-gyp http GET https://node-precompiled-binaries.grpc.io/grpc-tools/v1.11.0/darwin-arm64.tar.gz
node-pre-gyp http 404 https://node-precompiled-binaries.grpc.io/grpc-tools/v1.11.0/darwin-arm64.tar.gz
node-pre-gyp ERR! install error
node-pre-gyp ERR! stack Error: 404 status code downloading tarball https://node-precompiled-binaries.grpc.io/grpc-tools/v1.11.0/darwin-arm64.tar.gz
node-pre-gyp ERR! stack     at Request.<anonymous> (/Users/alien/workspace/arduino-ide/node_modules/node-pre-gyp/lib/install.js:142:27)
node-pre-gyp ERR! stack     at Request.emit (events.js:412:35)
node-pre-gyp ERR! stack     at Request.onRequestResponse (/Users/alien/workspace/arduino-ide/node_modules/request/request.js:1059:10)
node-pre-gyp ERR! stack     at ClientRequest.emit (events.js:400:28)
node-pre-gyp ERR! stack     at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:647:27)
node-pre-gyp ERR! stack     at HTTPParser.parserOnHeadersComplete (_http_common.js:127:17)
node-pre-gyp ERR! stack     at TLSSocket.socketOnData (_http_client.js:515:22)
node-pre-gyp ERR! stack     at TLSSocket.emit (events.js:400:28)
node-pre-gyp ERR! stack     at addChunk (internal/streams/readable.js:293:12)
node-pre-gyp ERR! stack     at readableAddChunk (internal/streams/readable.js:267:9)
node-pre-gyp ERR! System Darwin 21.3.0
node-pre-gyp ERR! command \"/Users/alien/.nvm/versions/node/v14.19.0/bin/node\" \"/Users/alien/workspace/arduino-ide/node_modules/grpc-tools/node_modules/.bin/node-pre-gyp\" \"install\"
node-pre-gyp ERR! cwd /Users/alien/workspace/arduino-ide/node_modules/grpc-tools
node-pre-gyp ERR! node -v v14.19.0
$ cross-env THEIA_ELECTRON_SKIP_REPLACE_FFMPEG=1 lerna run prepare && yarn download:plugins
lerna notice cli v3.22.1
lerna info versioning independent
lerna info Executing command in 3 packages: "yarn run prepare"
arduino-ide-extension: yarn run v1.22.10
arduino-ide-extension: $ yarn download-cli && yarn download-fwuploader && yarn download-ls && yarn copy-serial-plotter && yarn clean && yarn download-examples && yarn build && yarn test
arduino-ide-extension: $ node ./scripts/download-cli.js
arduino-ide-extension: 📦  Identified released version of the CLI. Downloading version 0.20.2 from 'https://downloads.arduino.cc/arduino-cli/arduino-cli_0.20.2_macOS_64bit.tar.gz'
arduino-ide-extension: >>> Downloading from 'https://downloads.arduino.cc/arduino-cli/arduino-cli_0.20.2_macOS_64bit.tar.gz'...
arduino-ide-extension: <<< Download succeeded.
arduino-ide-extension: >>> Decompressing...
arduino-ide-extension: <<< Decompressing succeeded.
arduino-ide-extension: Done: /Users/alien/workspace/arduino-ide/arduino-ide-extension/build/arduino-cli
arduino-ide-extension: $ node ./scripts/download-fwuploader.js
arduino-ide-extension: 📦  Identified released version of the Firmware Uploader. Downloading version 2.0.0 from 'https://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.0.0_macOS_64bit.tar.gz'
arduino-ide-extension: >>> Downloading from 'https://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.0.0_macOS_64bit.tar.gz'...
arduino-ide-extension: <<< Download succeeded.
arduino-ide-extension: >>> Decompressing...
arduino-ide-extension: <<< Decompressing succeeded.
arduino-ide-extension: Done: /Users/alien/workspace/arduino-ide/arduino-ide-extension/build/arduino-fwuploader
arduino-ide-extension: $ node ./scripts/download-ls.js
arduino-ide-extension: The arduino-language-server is not available for darwin arm64.
arduino-ide-extension: error Command failed with exit code 1.
arduino-ide-extension: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
arduino-ide-extension: error Command failed with exit code 1.
arduino-ide-extension: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
lerna ERR! yarn run prepare exited 1 in 'arduino-ide-extension'
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

@msujew
Copy link
Contributor Author

msujew commented Feb 10, 2022

@silvanocerza Well, that's a complicated one...

So basically, it boils down to the grpc-tools package not being available for Apple M1 machines, due to not being able to run M1 builds on GitHub Actions, see this discussion. I believe this will also be an issue for this repo considering that the testing Artifacts for the IDE cannot be compiled for M1 on GH Actions.

The referenced issue explains how to build it locally, I'm not sure however, how well this integrates into the Theia build.

I would try to get this PR merged regardless, since it's not a regression (I believe Theia didn't build on M1 before as well?) and not even really Theia related.

@silvanocerza
Copy link
Contributor

That's a shame, does this also mean that developing the project on M1 is not feasible?
Because if it's not I think it's gonna be a problem in the short term. As of now there's only me with an M1 in the team but I mostly use it for testing and other project since I have another Linux machine, but probably others in the team are gonna need an upgrade in the close future so that might become a problem.

@msujew
Copy link
Contributor Author

msujew commented Feb 10, 2022

Given what others have written in the linked issue, it should be possible to build the dependency yourself and instruct node-pre-gyp to use a different mirror for downloading the binary. The comment author links to a version of grcp-tools (1.11.2) running on M1 which is available at https://github.com/maschwenk/grpc-node/raw/2dd28e1ab8211533007dd2df5ae632de60006983/artifacts/. To use it, an env variable has to be set:

npm_config_grpc_tools_binary_host_mirror="https://github.com/maschwenk/grpc-node/raw/2dd28e1ab8211533007dd2df5ae632de60006983/artifacts/" yarn

It shouldn't be a showstopper for you to release the Arduino-IDE on M1, but makes it a bit more difficult.

@silvanocerza
Copy link
Contributor

Good to know, thanks Mark!

@ubidefeo
Copy link

I have been using this build for a few hours and can't say I have found any problem we don't already have in the main.
I think we can merge.
Thanks, Mark :)

# Conflicts:
#	arduino-ide-extension/src/electron-main/theia/electron-main-application.ts
@fstasi fstasi force-pushed the msujew/theia-update-1.22 branch from afd5c6f to 97d15f7 Compare February 11, 2022 11:29
@msujew msujew force-pushed the msujew/theia-update-1.22 branch from 56a398b to 505dd20 Compare February 11, 2022 12:33
@fstasi
Copy link
Contributor

fstasi commented Feb 11, 2022

@msujew this PR looks good to me, anything pending before we can merge it?

@msujew
Copy link
Contributor Author

msujew commented Feb 11, 2022

@fstasi This is ready to merge now :) I removed the --ignore-engines fields in favor of using yarn resolutions and everything seems to work as expected. Thanks for the continuous feedback!

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 topic: theia Related to the Theia IDE framework type: enhancement Proposed improvement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants