-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Node.js 12.x + Electron 9x #7968
Conversation
We should set Node.js 12.x as minimal in dependencies, typings, configs and docs that it is aligned between browser and electron targets. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, the native menus on Windows also picked up my OS theme which looks much nicer!
dev-packages/application-manager/src/generator/frontend-generator.ts
Outdated
Show resolved
Hide resolved
packages/core/src/electron-browser/keyboard/electron-keyboard-layout-change-notifier.ts
Outdated
Show resolved
Hide resolved
dev-packages/application-manager/src/generator/frontend-generator.ts
Outdated
Show resolved
Hide resolved
A bit old now, but here's all the areas I updated when we went to Electron 4: https://github.com/eclipse-theia/theia/pull/6307/files Does this PR also update Node to v12? |
We will need a CQ for at least the Electron part - this is a tricky component license-wise. I'll dig the two previous ones. |
Does not yarn takes care about it based on |
It always fails, cannot be used for warnings.
I already expressed my confusion about why and who do you want to notify: #7962 (comment). Feel free to submit a change against this PR. You can also pin a message on Spectrum or where you think it has the greatest visibility. |
Yes. |
CQ info: We have gone through this twice in the past, that I remember. We ended-up having two CQs each time: one for Electron and one for the corresponding bundled FFmpeg library:
The tricky part I think it to provide the attachment for FFmpeg, that reflects how the GPL content is excluded, when built for Electron. I found a way that I documented last time: https://dev.eclipse.org/ipzilla/show_bug.cgi?id=20994#c10 We also need to validate that we are still excluding correctly the h264 codec, by downloading an alternate FFmpeg at build time (made available by the Electron project. We also test for this, failing the build if h264 is still present after replacement - need to validate this still works. (all this is part of @theia/electron) In the spirit of spreading knowledge in the project, is there someone who would like to try registering these CQs for Electron 9x? |
@marcdumais-work Could you take care of it? I've learned today that code which I'm going to port from VS Code to support FS apis makes use of fs apis which are not supported by our current Node.js. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested a few different actions/scenarios with the Electron example and all looks good.
Thanks a lot, @marechal-p 👍 I am going to leave this PR open for a day or so, so if anyone has concerns can object, then I am going to merge it. |
@kittaakos one small thing: could you update gitpod dockerfile to use Node.js 12 too. |
It's done. Please verify it. Thanks! |
browser example works nicely, but electron does not start anymore:
It seems to verify I run from the root: yarn rebuild:electron
jwm & yarn --cwd examples/electron start ../.. --hostname=0.0.0.0 after that VNC session should be available on port 6080 |
Can you please take care of it? Gitpod is out of the context of an Electron update in the Theia repo. If you do not have time, we can drop the Gitpod Docker-related changes and update it in a separate PR. |
The test failure is unrelated:
|
@kittaakos I will push a commit shortly. Keeping working Gitpod setup is as important as local. |
Sure. Feel free squashing and force pushing.
👍 I agree, I just do not have the resources now to deal with the electron VNC issues for Gitpod. |
- Updated the `@babel` dependencies to fix babel/babel#11216#issuecomment-634460665. - Pinned the `node-abi` version in the `resolutions` to support latest `electron`. - Use Node.js 12.14.1 for Gitpod. Closes #7349 Co-authored-by: Anton Kosyakov <[email protected]> Signed-off-by: Akos Kitta <[email protected]>
It seems to work now, but one has to pass |
@akosyakov do you see a way forward? I have recently added a Gitpod config to one of our project, that's a collaboration between my department and a local university research project. Only the Electron version of their example app can run on Gitpod, at the moment, because of a limitation in their extension. The browser version works but only locally. They can stay a little while on |
cc: @tahini - see just above |
I tested briefly on node 10 and 12, and electron. No problem found 👍 @kittaakos I assume we'll need to update |
Great news!
Why do you think we have to update the
Did you mean the |
Thank you all for the help with the reviews, verifications, and the CQs. |
@marcdumais-work, I wanted to update the electron app in the |
Since we're making quite a big Electron version jump with this update, it seemed probable that e.g. we might need to update to a newer electron-builder version. I could not easily test that, so I wondered what you thought.
Not specifically, but good catch - probably at least that needs updating. Thanks for this PR! |
@marcdumais-work They can use |
Fixes #106 A few little tweaks are necessary to accommodate the new Electron and node versions. ATM the Electron example app fails at runtime when running on Gitpod, because of a missing a dynamic library: /workspace/theia-trace-extension/node_modules/electron/dist/electron: error while loading shared libraries: libgbm.so.1: cannot We need to update the Gitpod config so the dockerfile used for this repoi will contain a new Ubuntu package, required for Electron 9. This config file originally came from the main Theia repo, and the updated version is the same. See LICENSE.gitpod.md for more details. Here's where the --no-sandbox idea came from - it permits the Electron version of the example app to start in Gitpod: eclipse-theia/theia#7968 (comment) Signed-off-by: Marc Dumais <[email protected]>
Fixes #106 A few little tweaks are necessary to accommodate the new Electron and node versions. ATM the Electron example app fails at runtime when running on Gitpod, because of a missing a dynamic library: /workspace/theia-trace-extension/node_modules/electron/dist/electron: error while loading shared libraries: libgbm.so.1: cannot We need to update the Gitpod config so the dockerfile used for this repoi will contain a new Ubuntu package, required for Electron 9. This config file originally came from the main Theia repo, and the updated version is the same. See LICENSE.gitpod.md for more details. Here's where the --no-sandbox idea came from - it permits the Electron version of the example app to start in Gitpod: eclipse-theia/theia#7968 (comment) Signed-off-by: Marc Dumais <[email protected]>
Fixes #106 A few little tweaks are necessary to accommodate the new Electron and node versions. ATM the Electron example app fails at runtime when running on Gitpod, because of a missing a dynamic library: /workspace/theia-trace-extension/node_modules/electron/dist/electron: error while loading shared libraries: libgbm.so.1: cannot We need to update the Gitpod config so the dockerfile used for this repoi will contain a new Ubuntu package, required for Electron 9. This config file originally came from the main Theia repo, and the updated version is the same. See LICENSE.gitpod.md for more details. Here's where the --no-sandbox idea came from - it permits the Electron version of the example app to start in Gitpod: eclipse-theia/theia#7968 (comment) Also, for the Electron version of the example application to work correctly in Gitpod (potentially in any container-based environment), it's required to use the "--ignore-gpu-blacklist" startup paramter. Signed-off-by: Marc Dumais <[email protected]>
Fixes #106 A few little tweaks are necessary to accommodate the new Electron and node versions. ATM the Electron example app fails at runtime when running on Gitpod, because of a missing a dynamic library: /workspace/theia-trace-extension/node_modules/electron/dist/electron: error while loading shared libraries: libgbm.so.1: cannot We need to update the Gitpod config so the dockerfile used for this repoi will contain a new Ubuntu package, required for Electron 9. This config file originally came from the main Theia repo, and the updated version is the same. See LICENSE.gitpod.md for more details. Here's where the --no-sandbox idea came from - it permits the Electron version of the example app to start in Gitpod: eclipse-theia/theia#7968 (comment) Also, for the Electron version of the example application to work correctly in Gitpod (potentially in any container-based environment), it's required to use the "--ignore-gpu-blacklist" startup paramter. Signed-off-by: Marc Dumais <[email protected]>
Fixes #106 A few little tweaks are necessary to accommodate the new Electron and node versions. ATM the Electron example app fails at runtime when running on Gitpod, because of a missing a dynamic library: /workspace/theia-trace-extension/node_modules/electron/dist/electron: error while loading shared libraries: libgbm.so.1: cannot We need to update the Gitpod config so the dockerfile used for this repoi will contain a new Ubuntu package, required for Electron 9. This config file originally came from the main Theia repo, and the updated version is the same. See LICENSE.gitpod.md for more details. Here's where the --no-sandbox idea came from - it permits the Electron version of the example app to start in Gitpod: eclipse-theia/theia#7968 (comment) Also, for the Electron version of the example application to work correctly in Gitpod (potentially in any container-based environment), it's required to use the "--ignore-gpu-blacklist" startup paramter. Signed-off-by: Marc Dumais <[email protected]>
What it does
9.x
,node-abi
version, and update the@babel
dependency to support Node.js 12.x,electron
version to 9.x, this PR adjusts theelectron
API used in Theia, andNotes:
Closes #7349
How to test
Review checklist
Reminder for reviewers