eclipse-theia / eclipse-theia/vscode-builtin-extensions

API evolution on vscode builtins build process

Open
#136 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
85
Forks
43
PR merge metrics
No merged PRs in 30d

Description

Since https://github.com/microsoft/vscode/commit/305134296c4087e8e21a2eb3a26d83bb31a3793e#diff-e22182660ab607268f41de1a913f34ec1af8bcc5644be5782f9269b2c150fa24R259, there are some evolutions in the build process with native and non-native extensions. This cause some breakage in the API used to build the builtins for Theia.

evolutions:
- compileExtensionsBuildTask is not available anymore, may be replaced by compileAllExtensionsBuildTask from vscode/build/gulpfile.extensions.js
- packageLocalExtensionsStream may be replaced by packageAllLocalExtensionsStream or equivalent from vscode/build/extension.js

I also got some issues when building the new terminal completion extension. I did not have time to further investigate
log:
```
{
message: "Module not found: Error: Can't resolve 'fs/promises' in '/home/remi/Git/vscode-builtin-extensions/vscode/extensions/terminal-suggest/src'",
moduleId: 0,
moduleTrace: [],
details: "resolve 'fs/promises' in '/home/remi/Git/vscode-builtin-extensions/vscode/extensions/terminal-suggest/src'\n" +
' Parsed request is a module\n' +
' using description file: /home/remi/Git/vscode-builtin-extensions/vscode/extensions/terminal-suggest/package.json (relative path: ./src)\n' +
" Field 'browser' doesn't contain a valid alias configuration\n" +
' resolve as module\n' +
" /home/remi/Git/vscode-builtin-extensions/vscode/extensions/terminal-suggest/src/node_modules doesn't exist or is not a directory\n" +
" /home/remi/Git/vscode-builtin-extensions/vscode/extensions/terminal-suggest/node_modules doesn't exist or is not a directory\n" +
' looking for modules in /home/remi/Git/vscode-builtin-extensions/vscode/extensions/node_modules\n' +
" /home/remi/Git/vscode-builtin-extensions/vscode/extensions/node_modules/fs doesn't exist\n" +
' looking for modules in /home/remi/Git/vscode-builtin-extensions/vscode/node_modules\n' +
" /home/remi/Git/vscode-builtin-extensions/vscode/node_modules/fs doesn't exist\n" +
' looking for modules in /home/remi/Git/vscode-builtin-extensions/node_modules\n' +
" /home/remi/Git/vscode-builtin-extensions/node_modules/fs doesn't exist\n" +
" /home/remi/Git/node_modules doesn't exist or is not a directory\n" +
" /home/remi/node_modules doesn't exist or is not a directory\n" +
" /home/node_modules doesn't exist or is not a directory\n" +
" /node_modules doesn't exist or is not a directory",
stack: "ModuleNotFoundError: Module not found: Error: Can't resolve 'fs/promises' in '/home/remi/Git/vscode-builtin-extensions/vscode/extensions/terminal-suggest/src'\n" +
' at /home/remi/Git/vscode-builtin-extensions/vscode/node_modules/webpack/lib/Compilation.js:2109:28\n' +
' at /home/remi/Git/vscode-builtin-extensions/vscode/node_modules/webpack/lib/NormalModuleFactory.js:908:13\n' +
' at eval (eval at create (/home/remi/Git/vscode-builtin-extensions/vscode/node_modules/tapable/lib/HookCodeFactory.js:33:10), :10:1)\n' +
' at /home/remi/Git/vscode-builtin-extensions/vscode/node_modules/webpack/lib/NormalModuleFactory.js:333:22\n' +
' at eval (eval at create (/home/remi/Git/vscode-builtin-extensions/vscode/node_modules/tapable/lib/HookCodeFactory.js:33:10), :9:1)\n' +
' at /home/remi/Git/vscode-builtin-extensions/vscode/node_modules/webpack/lib/NormalModuleFactory.js:512:22\n' +
' at /home/remi/Git/vscode-builtin-extensions/vscode/node_modules/webpack/lib/NormalModuleFactory.js:150:10\n' +
' at /home/remi/Git/vscode-builtin-extensions/vscode/node_modules/webpack/lib/NormalModuleFactory.js:775:25\n' +
' at /home/remi/Git/vscode-builtin-extensions/vscode/node_modules/webpack/lib/NormalModuleFactory.js:992:8\n' +
' at /home/remi/Git/vscode-builtin-extensions/vscode/node_modules/webpack/lib/NormalModuleFactory.js:1121:5'
}

```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by comparing the Theia build integration with the referenced VS Code changes, especially compileAllExtensionsBuildTask in vscode/build/gulpfile.extensions.js and packageAllLocalExtensionsStream or its equivalent in vscode/build/extension.js. Reproduce the builtins build and inspect the terminal-suggest resolution failure for fs/promises. Done means the updated native and non-native extension build process works, including terminal completion.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, vscode, webpack
Domain
build-system, devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.