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

Theia not buildable on Windows #11235

Closed
fipro78 opened this issue Jun 1, 2022 · 23 comments
Closed

Theia not buildable on Windows #11235

fipro78 opened this issue Jun 1, 2022 · 23 comments
Labels
documentation issues related to documentation OS/Windows issues related to the Windows OS

Comments

@fipro78
Copy link
Contributor

fipro78 commented Jun 1, 2022

I tried to follow the documentation for building Theia on Windows:
https://github.com/eclipse-theia/theia/blob/master/doc/Developing.md#building-on-windows

I installed the necessary tools and tried to build, but it fails with the following error:

gyp info using node-gyp@7.1.2
gyp info using node@12.14.1 | win32 | x64
gyp info find Python using Python version 3.10.4 found at "C:\Users\fad8pl\AppData\Local\Programs\Python\Python310\python.exe"
gyp ERR! find VS
gyp ERR! find VS msvs_version was set from command line or npm config
gyp ERR! find VS - looking for Visual Studio version 2017
gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt
gyp ERR! find VS unknown version "undefined" found at "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools"
gyp ERR! find VS unknown version "undefined" found at "C:\Program Files\Microsoft Visual Studio\2022\Community"
gyp ERR! find VS could not find a version of Visual Studio 2017 or newer to use
gyp ERR! find VS looking for Visual Studio 2015
gyp ERR! find VS - not found

I have installed the Visual Studio Build Tools and the Visual Studio Community and got of course the 2022 version. After trying several things I noticed this ticket: nodejs/gyp-next#132

I locally installed node-gyp 8.4.1 (the newest 9.0 seems to be incompatible with the npm version 12.14.1 that is recommended in the documentation) but that didn't change anything. The build still seems to use node-gyp 7.1.2

Since I am not (yet) aware of all the structures for building Theia etc., where can I update the node-gyp version to be able to build locally on a Windows machine?

@msujew
Copy link
Member

msujew commented Jun 1, 2022

Hi @fipro78, we are currently in the process of dropping node 12 (see #11210).

I would recommend you to go with Node 14 or 16, as they also come with their own (compatible) versions of the VS build tools pre-installed. Can you try that?

@fipro78
Copy link
Contributor Author

fipro78 commented Jun 1, 2022

@msujew
I tried but it doesn't change anything. It still shows this:

yarn install v1.22.19
$ node-gyp install
gyp info it worked if it ends with ok
gyp info using node-gyp@7.1.2
gyp info using node@14.19.3 | win32 | x64

nvm list node-gyp shows this:

$ npm list node-gyp
@theia/monorepo@0.0.0 C:\Development\Sources\theia_playground\theia
`-- lerna@4.0.0
  +-- @lerna/add@4.0.0
  | `-- pacote@11.3.5
  |   `-- @npmcli/run-script@1.8.6
  |     `-- node-gyp@7.1.2
  `-- @lerna/bootstrap@4.0.0
    `-- @lerna/run-lifecycle@4.0.0
      `-- npm-lifecycle@3.1.5
        `-- node-gyp@5.1.1

As I am new to all this stuff, is there a way to force the usage of a newer node-gyp version?

@msujew
Copy link
Member

msujew commented Jun 1, 2022

@paul-marechal Any better recommendations?

@vince-fugnitto vince-fugnitto added OS/Windows issues related to the Windows OS documentation issues related to documentation labels Jun 1, 2022
@paul-marechal
Copy link
Member

paul-marechal commented Jun 1, 2022

yarn install v1.22.19
$ node-gyp install
gyp info it worked if it ends with ok
gyp info using node-gyp@7.1.2
gyp info using node@14.19.3 | win32 | x64

This doesn't tell us anything regarding an eventual failure.

gyp info using node-gyp@7.1.2
gyp info using node@12.14.1 | win32 | x64
gyp info find Python using Python version 3.10.4 found at "C:\Users\fad8pl\AppData\Local\Programs\Python\Python310\python.exe"
gyp ERR! find VS
gyp ERR! find VS msvs_version was set from command line or npm config
gyp ERR! find VS - looking for Visual Studio version 2017
gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt
gyp ERR! find VS unknown version "undefined" found at "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools"
gyp ERR! find VS unknown version "undefined" found at "C:\Program Files\Microsoft Visual Studio\2022\Community"
gyp ERR! find VS could not find a version of Visual Studio 2017 or newer to use
gyp ERR! find VS looking for Visual Studio 2015
gyp ERR! find VS - not found

This is clearly stating the problem.

I've had issues with npm windows-build-tools not properly installing Visual Studio Build Tools, but installing it manually worked.

@paul-marechal
Copy link
Member

@fipro78
Copy link
Contributor Author

fipro78 commented Jun 3, 2022

@paul-marechal
I followed the instructions already, and I have installed the Visual Studio Build Tools manually and not via npm. Actually I also clearly stated the problem.

I have installed Visual Studio 2022 manually. Not 2017 as I am not able to find that. Maybe my bad, but for a new setup I thought 2022 should also work. If that assumption is wrong, please let me know.

Visual Studio 2022 is NOT RECOGNIZED by node-gyp in version 7.1.2 that is used by the Theia build. This is a bug in node-gyp and was fixed in a version 8.4 if I read the ticket correctly. But updating to a newer node-gyp version via npm did not change anything, as the Theia build is NOT CONSUMING a newer node-gyp version.

There is neither an indication in the Theia docs, the nvm docs, or the node-gyp docs on how I can solve this. From my understanding a newer node-gyp version needs to be used to make it work with Visual Studio 2022 as the older version does not recognize that version. But how and where can I force the build to use the newer node-gyp version?

@paul-marechal
Copy link
Member

paul-marechal commented Jun 3, 2022

I'm just surprised that you are having this issue as I have been developing for Theia on Windows for quite some time now, and recently had to help interns setup their own Windows machine and didn't encounter your issue. Maybe just an issue with VS 2022 indeed?

But how and where can I force the build to use the newer node-gyp version?

If you are using Yarn you can specify a resolution field in the root package.json.

node-gyp is a special package, not sure which one ends up being used: is it the one in repo? Is it the one bundled in your npm install?

@paul-marechal
Copy link
Member

paul-marechal commented Jun 3, 2022

Looking at my setup, I am using VS 2019 available here: https://visualstudio.microsoft.com/vs/older-downloads/

edit: The VS Build Tools setup even seem to propose older MSVC versions (see bottom):

image

I'll try installing VS 2022 see if I have the same problem as you.

@paul-marechal
Copy link
Member

paul-marechal commented Jun 3, 2022

From your trace you had not set msvs_version to 2022:

gyp ERR! find VS msvs_version was set from command line or npm config
gyp ERR! find VS - looking for Visual Studio version 2017

But after trying on my side, it still doesn't work and is indeed a "bug" from node-gyp: They seem to explicitly list all supported versions, and if something falls out of it then it won't work. This is a pretty surprising mechanism to me, but after looking at their PR it looks like this is why.

Installing The MSVC v142 (VS 2019) from the 2022 installation also doesn't seem to help.

edit: To add insult to the injury, yarn seems to pick a random node-gyp version instead of the hoisted node-gyp@8.4.1.

Sorry if I came across with a bad tone, I've seen so many working installations on Windows that I took some shortcuts here.


The conclusion is that without updating your node-gyp installation, then using VS 2022 won't work. This is out of this repo's hands, but you can do this by following the following instructions: https://github.com/nodejs/node-gyp/blob/master/docs/Updating-npm-bundled-node-gyp.md

Alternatively, you can use VS 2019 from https://visualstudio.microsoft.com/vs/older-downloads/.

edit: Note that in our documentation we mention using VS 2017.

@fipro78
Copy link
Contributor Author

fipro78 commented Jun 7, 2022

To add insult to the injury, yarn seems to pick a random node-gyp version instead of the hoisted node-gyp@8.4.1

Not sure if this is really random. If I execute npm list node-gyp in the theia source folder locally I get this output:

@theia/monorepo@0.0.0 C:\Development\Sources\theia_playground\theia
`-- lerna@4.0.0
  +-- @lerna/add@4.0.0
  | `-- pacote@11.3.5
  |   `-- @npmcli/run-script@1.8.6
  |     `-- node-gyp@7.1.2
  `-- @lerna/bootstrap@4.0.0
    `-- @lerna/run-lifecycle@4.0.0
      `-- npm-lifecycle@3.1.5
        `-- node-gyp@5.1.1

I followed the instructions you linked to, to update the the node-gyp version in the node installation. But it did not have any effect. It still uses the 7.1.2 version. Nothing I tried so far lead to using node-gyp in version 8.4.1 when calling yarn in the theia root folder.

Note that in our documentation we mention using VS 2017

Yes the documentation mentions this. As I said initially, I am new to the whole web-based IDE development and Visual Studio topic. So I simply followed the tutorial and the links provided there. And this lead to a Visual Studio 2022 installation. I noticed that there are options for installing the 2017 and 2019 versions within the installation and I selected those options. But as you also noticed, without any effect.

I now installed VS 2019 manually, and suddenly get another error:

error c:\Development\Sources\theia_playground\theia\node_modules\electron: Command failed.
Exit code: 1
Command: node install.js
Arguments:
Directory: c:\Development\Sources\theia_playground\theia\node_modules\electron
Output:
RequestError: getaddrinfo ENOTFOUND github.com
    at ClientRequest.<anonymous> (c:\Development\Sources\theia_playground\theia\node_modules\@electron\get\node_modules\got\source\request-as-event-emitter.js:178:14)
    at Object.onceWrapper (events.js:520:26)
    at ClientRequest.emit (events.js:412:35)
    at ClientRequest.origin.emit (c:\Development\Sources\theia_playground\theia\node_modules\@szmarczak\http-timer\source\index.js:37:11)
    at TLSSocket.socketErrorListener (_http_client.js:475:9)
    at TLSSocket.emit (events.js:400:28)

I assume it is some networking error. I am behind a proxy firewall and have CNTLM configured. I have set the proxy configuration for npm and yarn. But with no success. Any idea?

@paul-marechal
Copy link
Member

This new error means you got passed the node-gyp build, it is now @electron/get that is having issues with your proxy.

Found the following info:

If I understand correctly you need to set a few environment variables:

  • ELECTRON_GET_USE_PROXY=1
  • GLOBAL_AGENT_HTTP_PROXY=<your proxy url?>
  • Optionally set GLOBAL_AGENT_HTTPS_PROXY=<your proxy url?>?

@paul-marechal
Copy link
Member

Not sure if this is really random. If I execute npm list node-gyp in the theia source folder locally I get this output [...]

yarn why node-gyp shows me a different layout:

yarn why v1.22.17
[1/4] Why do we have the module "node-gyp"...?
[2/4] Initialising dependency graph...
[3/4] Finding dependency...
[4/4] Calculating file sizes...
=> Found "node-gyp@8.4.1" // <---------------------- note: most up to date version in our repo
info Reasons this module exists
   - "_project_#@theia#application-manager#electron-rebuild" depends on it
   - Hoisted from "_project_#@theia#application-manager#electron-rebuild#node-gyp"
info Disk size without dependencies: "2.63MB"
info Disk size with unique dependencies: "3.54MB"
info Disk size with transitive dependencies: "7.19MB"
info Number of shared dependencies: 77
=> Found "npm-lifecycle#node-gyp@5.1.1"
info This module exists because "_project_#lerna#@lerna#bootstrap#@lerna#run-lifecycle#npm-lifecycle" depends on it.
info Disk size without dependencies: "2.02MB"
info Disk size with unique dependencies: "3.46MB"
info Disk size with transitive dependencies: "10.53MB"
info Number of shared dependencies: 76
=> Found "@npmcli/run-script#node-gyp@7.1.2"
info This module exists because "_project_#lerna#@lerna#add#pacote#@npmcli#run-script" depends on it.
info Disk size without dependencies: "2.18MB"
info Disk size with unique dependencies: "3.59MB"
info Disk size with transitive dependencies: "10.69MB"
info Number of shared dependencies: 76

And it seems like the highest hoisted node-gyp version is not the one being "installed" by yarn under node_modules/.bin:

> npx node-gyp -v
v7.1.2

We can see the path used to run node-gyp in node_modules/.bin/node-gyp.cmd:

@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\..\@npmcli\run-script\node_modules\node-gyp\bin\node-gyp.js" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node  "%~dp0\..\@npmcli\run-script\node_modules\node-gyp\bin\node-gyp.js" %*
)

This is quite confusing, and looks like a quirk from Yarn?


Explicitly declaring a dev-dependency on node-gyp@latest in the root package.json fixed it, will open a PR for it.

@fipro78
Copy link
Contributor Author

fipro78 commented Jun 8, 2022

@paul-marechal Thanks a lot for your support!

If I understand correctly you need to set a few environment variables

That was the missing part indeed. I configured the proxy for npm and for yarn as described here, but I missed the environment variables for the global agent (probably because I was not aware of that thing). Maybe the proxy configuration settings needed for the Theia build (npm/yarn/global agent) would be interesting as a chapter in the Developer docu?

Explicitly declaring a dev-dependency on node-gyp@latest in the root package.json fixed it, will open a PR for it.

I think that is exactly the answer to my initial question. :)
IIUC node-gyp is included transitively in the build. But to be able to build with Visual Studio 2022 Build Tools, a newer version needs to be forced.

Let me know once the PR got merged. Then I will uninstall the 2019 version again and try to build with only 2022 and the Theia build.

@fipro78
Copy link
Contributor Author

fipro78 commented Jun 29, 2022

Today I tried to create a Theia based application as described here https://theia-ide.org/docs/composing_applications/

Having only Visual Studio 2022 installed it is impossible to build. Again the node-gyp version issue. But I am also not able to add a newer node-gyp version to the dev dependencies of the package.json. Probably I still don't fully understand how the build works.

I had to install Visual Studio 2019 to make the build work. Yes it is described that you should use a 2017 (2019 also works, but not 2022), but the link in the documentation points only to the download of the 2022. This is misleading for newcomers.

https://github.com/eclipse-theia/theia/blob/master/doc/Developing.md#building-on-windows

BTW, in the building on windows section it still says that node 12.14.1 should be used, but in the top it information was updated to >= 14.

@paul-marechal
Copy link
Member

paul-marechal commented Jun 29, 2022

Probably I still don't fully understand how the build works.

It's a dependency mess. For some reason, some transient packages pull various versions of node-gyp, and even when a more up to date node-gyp version is installed at the top of the package tree, Yarn keeps running a different version which makes no sense to me.

Can you share your package.json that references the newer node-gyp, along with a copy of the terminal output displaying your dependency tree? Using Yarn the command for that is yarn why node-gyp.

but the link in the documentation points only to the download of the 2022. This is misleading for newcomers.

Ultimately there's no good reason for 2022 to not work... We just got to figure out here how we can get all the tooling to play well enough to pick up the right node-gyp version. My current guess is that it's a Yarn bug (as it doesn't seem to generate scripts pointing to the top-most node-gyp), though it's only a guess for now.

It could be a good idea to mention this limitation in the documentation until this is sorted out, I agree.

BTW, in the building on windows section it still says that node 12.14.1 should be used, but in the top it information was updated to >= 14.

Good catch, PRs are welcome ;)

@fipro78
Copy link
Contributor Author

fipro78 commented Jun 30, 2022

I followed the Build your own IDE/Tool tutorial and added the dev dependency:

{
    "private": true,
    "dependencies": {
      "@theia/callhierarchy": "next",
      "@theia/file-search": "next",
      "@theia/git": "next",
      "@theia/markers": "next",
      "@theia/messages": "next",
      "@theia/mini-browser": "next",
      "@theia/navigator": "next",
      "@theia/outline-view": "next",
      "@theia/plugin-ext-vscode": "next",
      "@theia/preferences": "next",
      "@theia/preview": "next",
      "@theia/search-in-workspace": "next",
      "@theia/terminal": "next",
      "@theia/vsx-registry": "next"
    },
    "devDependencies": {
      "@theia/cli": "next",
      "node-gyp": "^9.0.0"
    },
    "scripts": {
      "prepare": "yarn run clean && yarn build && yarn run download:plugins",
      "clean": "theia clean",
      "build": "theia build --mode development",
      "start": "theia start --plugins=local-dir:plugins",
      "download:plugins": "theia download:plugins"
    },
    "theiaPluginsDir": "plugins",
    "theiaPlugins": {
      "vscode-builtin-extensions-pack": "https://open-vsx.org/api/eclipse-theia/builtin-extension-pack/1.62.3/file/eclipse-theia.builtin-extension-pack-1.62.3.vsix"
    },
    "theiaPluginsExcludeIds": [
      "vscode.extension-editing",
      "vscode.git",
      "vscode.git-ui",
      "vscode.github",
      "vscode.markdown-language-features",
      "vscode.microsoft-authentication"
    ]
  }

The problem is that the yarn command is not even able to work and stops with this message:

gyp info it worked if it ends with ok
gyp info using node-gyp@5.1.0
gyp info using node@14.19.3 | win32 | x64
gyp info find Python using Python version 3.10.4 found at "<xxx>\Python\Python310\python.exe"
gyp ERR! find VS
gyp ERR! find VS msvs_version was set from command line or npm config
gyp ERR! find VS - looking for Visual Studio version 2019
gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt
gyp ERR! find VS unknown version "undefined" found at "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools"
gyp ERR! find VS unknown version "undefined" found at "C:\Program Files\Microsoft Visual Studio\2022\Community"
gyp ERR! find VS could not find a version of Visual Studio 2017 or newer to use
gyp ERR! find VS looking for Visual Studio 2015
gyp ERR! find VS - not found
gyp ERR! find VS not looking for VS2013 as it is only supported up to Node.js 8
gyp ERR! find VS
gyp ERR! find VS valid versions for msvs_version:
gyp ERR! find VS
gyp ERR! find VS **************************************************************
gyp ERR! find VS You need to install the latest version of Visual Studio
gyp ERR! find VS including the "Desktop development with C++" workload.
gyp ERR! find VS For more information consult the documentation at:
gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows
gyp ERR! find VS **************************************************************
gyp ERR! find VS
gyp ERR! configure error
gyp ERR! stack Error: Could not find any Visual Studio installation to use

Only after I installed Visual Studio 2019 the build works at least until - resolve 1 extension - (which then fails for some socket connection). After that is done the yarn why output is

[1/4] Why do we have the module "node-gyp"...?
[2/4] Initialising dependency graph...
[3/4] Finding dependency...
[4/4] Calculating file sizes...
=> Found "node-gyp@9.0.0"
info Has been hoisted to "node-gyp"
info This module exists because it's specified in "devDependencies".
info Disk size without dependencies: "2.63MB"
info Disk size with unique dependencies: "3.65MB"
info Disk size with transitive dependencies: "7.55MB"
info Number of shared dependencies: 78
=> Found "electron-rebuild#node-gyp@8.4.1"
info This module exists because "@theia#cli#@theia#application-manager#electron-rebuild" depends on it.
info Disk size without dependencies: "2.24MB"
info Disk size with unique dependencies: "3.27MB"
info Disk size with transitive dependencies: "7.16MB"
info Number of shared dependencies: 78
Done in 0.82s.

That output actually looks ok from what I can see. But somehow the initialization fails. Or is it somehow possible to configure the dependency to be taken up in an earlier step?

BTW, when calling yarn it produces multiple warnings and even errors in the console, e.g.

WARNING in ./node_modules/inversify/lib/annotation/decorator_utils.js
Module Warning (from ./node_modules/source-map-loader/dist/cjs.js):
Failed to parse source map from <xxx>\theia_playground\theia-app\node_modules\inversify\src\annotation\decorator_utils.ts' file: Error: ENOENT: no such file or directory, open '<xxx>\theia_playground\theia-app\node_modules\inversify\src\annotation\decorator_utils.ts'
 @ ./node_modules/inversify/lib/inversify.js 38:24-63
 @ ./src-gen/frontend/index.js 5:22-42

Is this known? Should it be this way? Or does this show up an issue, either in the project setup as shown in the documentation or in my local setup?

And do you have any idea about the following error?

$ theia download:plugins
--- downloading plugins ---
+ vscode-builtin-extensions-pack: downloaded successfully
--- collecting extension-packs ---
'vscode.extension-editing' referred to by 'builtin-extension-pack' (ext pack) is excluded because of 'theiaPluginsExcludeIds'
'vscode.git' referred to by 'builtin-extension-pack' (ext pack) is excluded because of 'theiaPluginsExcludeIds'
'vscode.github' referred to by 'builtin-extension-pack' (ext pack) is excluded because of 'theiaPluginsExcludeIds'
'vscode.markdown-language-features' referred to by 'builtin-extension-pack' (ext pack) is excluded because of 'theiaPluginsExcludeIds'
'vscode.microsoft-authentication' referred to by 'builtin-extension-pack' (ext pack) is excluded because of 'theiaPluginsExcludeIds'
--- resolving 1 extension-packs ---
Error: socket hang up
    at connResetException (internal/errors.js:639:14)
    at TLSSocket.socketCloseListener (_http_client.js:449:25)
    at TLSSocket.emit (events.js:412:35)
    at TLSSocket.emit (domain.js:475:12)
    at net.js:686:12
    at Socket.done (_tls_wrap.js:564:7)
    at Object.onceWrapper (events.js:520:26)
    at Socket.emit (events.js:400:28)
    at Socket.emit (domain.js:475:12)
    at TCP.<anonymous> (net.js:686:12) {
  code: 'ECONNRESET'
}

I'm behind a proxy and have configured the proxy via environment variables (HTTP_PROXY, HTTPS_PROXY, GLOBAL_AGENT_HTTP_PROXY, GLOBAL_AGENT_HTTPS_PROXY, ELECTRON_GET_USE_PROXY), via npm config and yarn config. Is there any configuration I have missed that could cause the issue. I haven't found any information on that. Or could it be some other networking isssue I haven't thought of?

@msujew
Copy link
Member

msujew commented Jun 30, 2022

I'm behind a proxy and have configured the proxy via environment variables

@fipro78 Are you using a Theia newer than 1.26.0? #11043 introduced a more sophisticated proxying mechanism, that should properly utilize HTTP_PROXY and HTTPS_PROXY by default. Alternatively you can use the --proxy-url argument. Maybe your proxy additional requires auth, then you might also need to set the --proxy-authentification argument. Though that would usually result in another error code.

BTW, when calling yarn it produces multiple warnings and even errors in the console, e.g.

Yeah, that's a webpack issue, but it doesn't affect the build in any way.

@fipro78
Copy link
Contributor Author

fipro78 commented Jun 30, 2022

@msujew

Hm, well I am using the package.json that is shown in the documentation which is using the next version. I suppose that means 1.2.17 if I understand the content in the node_modules correctly.

Where would I need to set the --proxy-url argument? In the scripts section of the package.json? I at least tried that and it didn't change anything.

Looking into the examples I haven't seen the usage of the builtin-extension-pack anywhere. Is this still needed or maybe an outdated information in the documentation? After I removed that one, the build succeeds. But actually then I do not have any plugin that is installed at build time.

@msujew
Copy link
Member

msujew commented Jun 30, 2022

@fipro78 You can run yarn why @theia/cli to find out which version you're actually using. Depending on the time you've started using Theia, the next version could've been 1.25.0 or even earlier, since running yarn install doesn't automatically update your dependencies, even if they're pinned to next. yarn.lock is the only source of truth here.

Where would I need to set the --proxy-url argument? In the scripts section of the package.json?

In the script which calls the theia download:plugins command. The script should be titled download:plugins by default.

Looking into the examples I haven't seen the usage of the builtin-extension-pack anywhere. Is this still needed or maybe an outdated information in the documentation? After I removed that one, the build succeeds. But actually then I do not have any plugin that is installed at build time.

We have the plugins in the root of our repo instead of the examples. You can see the builtin-extension-pack in here:

"vscode-builtin-extensions-pack": "https://open-vsx.org/api/eclipse-theia/builtin-extension-pack/1.50.1/file/eclipse-theia.builtin-extension-pack-1.50.1.vsix",

Your build failed at the point where the @theia/cli tried to resolve your plugin pack. So, it kind of makes sense that removing the plugin pack makes the build succeed, albeit at the cost of removing all plugins.

@fipro78
Copy link
Contributor Author

fipro78 commented Jul 1, 2022

@msujew
How would I then update to the latest version? Only by deleting the .lock files etc.? Actually not necessary as I started over and over the last weeks as nothing really works for me. :(

What I meant by "didn't see in the examples" is, that the builtin-extension-pack is not used anywhere in the examples. It is only mentioned in the documentation, but without any explanation what this plugin is used for. I have found the sources and the readme here: https://github.com/eclipse-theia/vscode-builtin-extensions

But if it is required, why is it not used by any of the examples that consume built-in plugins? Probably I again misunderstand something. :(

@msujew
Copy link
Member

msujew commented Jul 1, 2022

@fipro78 Theia users usually pin their Theia version to the one they want to use (the newest is 1.27.0 as of yesterday). That way they don't accidentally pull in mismatching versions and know exactly what they're pulling. Updating Theia versions can be as simple as updating the pinned Theia dependencies, assuming no breaking changes prevent you from compiling. Our documentation usually refers to next or latest so we don't have to update our documentation on every release.

As the name suggests, the builtin extension pack is an extension pack that contains all builtin extensions. It isn't required in any way, and there are other ways to pull all builtin extensions on build (such as declaring them explicitly) if you want. The builtin extensions are just the list of extensions that are deployed with vscode by default.

@tsmaeder
Copy link
Contributor

@msujew @paul-marechal should we update the documentation with some information uncovered in this issue? If we are happy with the state of the doc, let's close this.

@tsmaeder
Copy link
Contributor

If we have no action item and no actual bug seeming to come out of this, I'm closing the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation issues related to documentation OS/Windows issues related to the Windows OS
Projects
None yet
Development

No branches or pull requests

5 participants