-
Notifications
You must be signed in to change notification settings - Fork 147
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
initial implementation of an executable server #168
Conversation
88e9956
to
b3b425f
Compare
@vince-fugnitto @marcdumais-work I am seeing errors coming from a few builtins, do you guys know if this is expected? |
I was wondering what would be good to do in this PR before merging it in master:
I'd like help to try on different platforms as well. I only tested from Windows 10. |
78b1294
to
d5db3df
Compare
One thing I noticed: the help -> about dialog seems broken. |
theia-extensions/theia-blueprint-browser/src/node/theia-blueprint-backend-module.ts
Outdated
Show resolved
Hide resolved
faec2b2
to
2b0a931
Compare
Here are the vscode extensions that seem to fail for me at startup (more might when e.g. .a new LS is triggered):
More from backend startup log:
|
When I try to search for a file in the repo (Ctrl-p), it's not able to spawn
I notice the ripgrep executable does not have execute permission. If I manually add it ( |
I missed a few non-working extensions (or at least extensions that throw exceptions at startup):
|
Many seem to have this same error: Couple of example:
|
seems to come from new code: https://github.com/eclipse-theia/theia-blueprint/pull/168/files#diff-f909d9e80fd47722da8e8ea2c689895ecfe35d5e60adfc9040af4fad1397b9b7R32 |
node function being called in browser context? edit: I mean |
I might have a fix for this locally that I did not push yet. This code is a copy/paste of the original implementation with the intent of fixing this |
d47f27e
to
dca4eea
Compare
OK I figured out this specific error: I had set the node webpack config to I just fixed this specific issue and rebased. Now I think the biggest issue is getting TypeScript to run. |
Thanks for the update Paul. Now it fails for me during
|
Maybe relevant, I have interesting warnings just before the failure, that I do not remember seeing before. Several similar to this:
|
dca4eea
to
1653965
Compare
Yikes, since the rebase a new version of a source parser dependency used for minification might be bogus :S edit: They patched it and we now depend on the bug-free library! |
1364296
to
d95e524
Compare
Locally I get this test failure: "Element with selector "#vsx-extensions:builtin .theia-TreeContainer" not found"
|
@paul-marechal the latest $ ./packaged/blueprint.exe
[...]
Error: node-loader:
Error: /tmp/pkg/694f1da7fa5cb433d1e9645b71e964d078001515fe7d30a7e0105232de015663/drivelist.node: cannot open shared object file: No such file or directory
at Object.20840 (/snapshot/theia-blueprint/applications/browser/bundled/249.js:2:2068497)
at o (/snapshot/theia-blueprint/applications/browser/bundled/blueprint.js:1:10120)
at e.exports (/snapshot/theia-blueprint/applications/browser/bundled/blueprint.js:1:82)
at Object.60841 (/snapshot/theia-blueprint/applications/browser/bundled/249.js:2:1363319)
at o (/snapshot/theia-blueprint/applications/browser/bundled/blueprint.js:1:10120)
at Object.74102 (/snapshot/theia-blueprint/applications/browser/bundled/249.js:2:105092)
at o (/snapshot/theia-blueprint/applications/browser/bundled/blueprint.js:1:10120)
at Object.54406 (/snapshot/theia-blueprint/applications/browser/bundled/249.js:2:106592)
at o (/snapshot/theia-blueprint/applications/browser/bundled/blueprint.js:1:10120)
at Object.27846 (/snapshot/theia-blueprint/applications/browser/bundled/249.js:2:92421)
|
@marcdumais-work the latest issue you are reporting is fixed in a newer version of the |
Thanks @paul-marechal - I will be sure to |
applications/browser/package.json
Outdated
@@ -0,0 +1,120 @@ | |||
{ | |||
"private": true, | |||
"name": "theia-blueprint-node", |
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.
theia-blueprint-browser? Though a private package, we still see the name when e.g. running yarn why pkg
Even starting with a fresh clone, I was not able to get the PR to work. @vince-fugnitto confirmed offline that he has the startup crash too, like above. |
e6a2fb8
to
3f15db3
Compare
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.
I confirmed that the build was now successful, and the web application started on Linux 👍
I verified the following:
Successful:
-
scm
works well, I can see changes under version control - searching works well from
file search
tosearch-in-workspace
- syntax highlighting works
- renaming works (refactoring)
-
find all references
works - terminals work, can be spawned and used
- executing
tasks
works - searching and installing extensions work
Unsuccessful:
- Despite installing
eslint
I did not get markers for things like using double quotes orany
- The list of theia extensions is not populated (duplicate of initial implementation of an executable server #168 (comment))
- Debugging did not seem to work (
run mocha tests
on a*.spec.ts
file):
root ERROR Error starting the debug session Error: It is not possible to provide debug adapter executable.
at t.DebugExtImpl.createDebugAdapter (/snapshot/theia-blueprint/applications/browser/bundled/921.js:1:133563)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at async t.DebugExtImpl.$createDebugSession (/snapshot/theia-blueprint/applications/browser/bundled/921.js:1:131411)
3f15db3
to
7b37a69
Compare
ETA: Everything but JS debugging seems to be working. We are struggling to find why we can't debug JS. Once this issue is solved it should be good to go. |
7480e48
to
eea2f98
Compare
81d1188
to
0ddbc47
Compare
0ddbc47
to
e2e0298
Compare
The goal of this PR is to setup a browser version of Blueprint packaged as a "drag and drop" that's easy to deploy. The setup is a bit tricky and might not apply well to every kind of product made using the Theia framework, but it should work for most usages. Add `theia-blueprint-browser` Theia extension that contributes the required customizations to run in the packaged environment (mostly to accommodate to the new file layout). Use a `node`-specific Webpack configuration to bundle the backend along with the browser-specific customizations. Use a forked `pkg` package to support forking child processes with `execArgv` options. The fork is setup as a git submodule.
e2e0298
to
98d626e
Compare
There was a bug on Windows that froze the backend completely when trying to open a terminal. This is now fixed. I also got rid of the Git submodule in favor of Node.js 16 is now required to build the browser package. |
@jfaltermeier I have been referred to you to get help with building the browser binaries on Jenkins? I have no idea where to start with this, or how to test that the configuration works? Here are the build steps for the browser package: yarn
yarn browser bundle
yarn browser package The output will be the whole contents of |
Hi @paul-marechal , You could temporarily add an In the long run there are also groovy functions defined for signing and notarizing (on Mac), and finally to upload the results to download.eclipse.org. But I guess a good first step would be to have the browser package available for testing from Jenkins. Please let me know if there are any problems |
Closing because backend bundling will be taken care of by eclipse-theia/theia#12412 |
The goal of this PR is to setup a browser version of Blueprint packaged
as a "drag and drop" solution that's easy to deploy.
The setup is a bit tricky and might not apply well to every kind of
product made using the Theia framework, but it should work for most
usages.
Add
theia-blueprint-browser
Theia extension that contributes therequired customizations to run in the packaged environment (mostly to
accommodate to the new file layout).
Use a
node
-specific Webpack configuration to bundle the backend alongwith the browser-specific customizations.
Use a forked
pkg
package to support forking child processes withexecArgv
options. The fork is setup as a git submodule.Upstream patches to
pkg
How to test
Run:
This should result in the browser application being packaged into
applications/browser/packaged
.Review checklist
Reminder for reviewers