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

List all vscode built-ins #40

Closed
koegel opened this issue Jan 19, 2021 · 8 comments · Fixed by #56
Closed

List all vscode built-ins #40

koegel opened this issue Jan 19, 2021 · 8 comments · Fixed by #56

Comments

@koegel
Copy link

koegel commented Jan 19, 2021

There should be a way to get the list of all vscode built-ins of this repo.
For now the list can be obtained only from the package.json.

@marcdumais-work
Copy link
Contributor

marcdumais-work commented Jan 21, 2021

(for a given vscode version, I assume - the list can change in time)

I am not sure if this is a great idea, but one way would be to generate and publish an extension pack that references all built-in extensions that we build/publish in a run. Looking at the pack's package.json, one could see the list contained.

@koegel
Copy link
Author

koegel commented Jan 21, 2021

I guess Theia does not support installing extension packs, does it? So the only purpose of the extension pack would be to list all built-ins?

@marcdumais-work
Copy link
Contributor

I guess Theia does not support installing extension packs

It does, but with some limitations, e.g. all extensions, part of a pack, have to be available in your registry (open-vsx.org by default).

The vscode-builtins are a unique case and pose a special challenge, to be installed with a pack. It's related to the intelligence in the VSX client, that attempts to pick a version of an extension that would likely work, given its stated required vscode API level (engines.vscode field in package.json). Unfortunately vscode-builtins do not set this field, at all or correctly, and so the mechanism breaks and we end-up installing the latest solid version, I think.

In practice, for a vanilla Theia app, If a user installs a vscode-builtins pack at runtime, they'll not get a fully-working set. Individual extensions will work, but some will not, including some key ones. Which is why for now we hand-pick the exact extensions/versions we want, adding their URLs in the app's package.json. Once the VSX client/server get smart enough or we work-around the problem in some other way, we might be able to install all these from one or more packs, as we see fit.

Potential vscode-builtins packs we could publish along with the builtins (under a different namespace I think would be more appropriate):

  • all of them pack
  • basic syntax highlight support for all languages pack (grammars and snippets)
  • advanced web dev pack (HTML, TS, ...)
  • recommended pack (markdown, ...)
  • ???

WDYT?

@koegel
Copy link
Author

koegel commented Jan 25, 2021

Sounds good to me, creating an all of them pack would be a good starting point.

@marcdumais-work
Copy link
Contributor

I think we'll need this PR merged first, that has some improvements for handling vscode-builtins (looking close to being merged):
eclipse-theia/theia#8191

@marcdumais-work
Copy link
Contributor

Ok, then I think we can start by generating a pack that supports all vscode-builtins that are likely to work, at the same time we build them, and eventually publish the pack along the individual extensions (using a different namespace - e.g. project name?).

We could exclude a few like markdown-language-features that do not correctly work unless pinned to an old version, to prevent having a bad version installed that can't be updated.

Or maybe we can make sure that a working version of such extensions are installed before the pack - they should remain unchanged and the pack will still install correctly. To be confirmed.

alvsan09 added a commit to alvsan09/vscode-builtin-extensions that referenced this issue Mar 18, 2021
The new script 'create-extension-pack.js' is a subsequent step to
the script 'package-vsix.js'.

The result will be an extension package in .vsix format installed
under the 'dist' folder.
This extension package will include a reference to all extensions
resolved by the 'package-vsix.js' script.

Fixes: eclipse-theia#40

Signed-off-by: Alvaro Sanchez-Leon <[email protected]>
alvsan09 added a commit to alvsan09/vscode-builtin-extensions that referenced this issue Mar 18, 2021
The new script 'create-extension-pack.js' can be executed directly
after a project build (i.e. yarn) when extensions are already
available in the registry.

When the extensions are not yet available in the registry the script
'package-vsix.js' needs to be executed as a fist step.

The result will be an extension package in .vsix format installed
under the 'dist' folder.
This extension package will include a reference to all extensions
resolved during the build step.

Fixes: eclipse-theia#40

Signed-off-by: Alvaro Sanchez-Leon <[email protected]>
alvsan09 added a commit to alvsan09/vscode-builtin-extensions that referenced this issue Mar 18, 2021
The new script 'create-extension-pack.js' can be executed directly
after a project build (i.e. yarn) as long as the extensions
associated with the build are already available in the registry.

When the extensions are not yet available in the registry the script
'package-vsix.js' needs to be executed as a previous step.

The result will be an extension package in .vsix format installed
under the 'dist' folder (which is then used as the source for the
existing publishing step).

This extension package will include a reference to all extensions
resolved during the build step.

Fixes: eclipse-theia#40

Signed-off-by: Alvaro Sanchez-Leon <[email protected]>
alvsan09 added a commit to alvsan09/vscode-builtin-extensions that referenced this issue Mar 18, 2021
The new script 'create-extension-pack.js' can be executed directly
after a project build (i.e. yarn) as long as the extensions
associated with the build are already available in the registry.

When the extensions are not yet available in the registry the script
'package-vsix.js' needs to be executed as a previous step.

The result will be an extension package in .vsix format installed
under the 'dist' folder (which is then used as the source for the
existing publishing step).

This extension package will include a reference to all extensions
resolved during the build step.

Fixes: eclipse-theia#40

Signed-off-by: Alvaro Sanchez-Leon <[email protected]>
alvsan09 added a commit to alvsan09/vscode-builtin-extensions that referenced this issue Mar 18, 2021
The new script 'create-extension-pack.js' can be executed directly
after a project build (i.e. yarn) as long as the extensions
associated with the build are already available in the registry.

When the extensions are not yet available in the registry the script
'package-vsix.js' needs to be executed as a previous step.

The result will be an extension package in .vsix format installed
under the 'dist' folder (which is then used as the source for the
existing publishing step).

This extension package will include a reference to all extensions
resolved during the build step.

Fixes: eclipse-theia#40

Signed-off-by: Alvaro Sanchez-Leon <[email protected]>
alvsan09 added a commit to alvsan09/vscode-builtin-extensions that referenced this issue Mar 19, 2021
The new script 'create-extension-pack.js' can be executed directly
after a project build (i.e. yarn) as long as the extensions
associated with the build are already available in the registry.

When the extensions are not yet available in the registry the script
'package-vsix.js' needs to be executed as a previous step.

The result will be an extension package in .vsix format installed
under the 'dist' folder (which is then used as the source for the
existing publishing step).

This extension package will include a reference to all extensions
resolved during the build step.

Fixes: eclipse-theia#40

Signed-off-by: Alvaro Sanchez-Leon <[email protected]>
@alvsan09
Copy link
Contributor

Hello,
The proposed implementation to create the built-in 'all of them' pack is ready for you to review, and test
Comments are very welcome,

When it comes to the next step to select subsets of them, we can follow that up as the next step under issue:
#58

alvsan09 added a commit to alvsan09/vscode-builtin-extensions that referenced this issue May 6, 2021
The new script 'create-extension-pack.js' can be executed directly
after a project build (i.e. yarn) as long as the extensions
associated with the build are already available in the registry.

When the extensions are not yet available in the registry the script
'package-vsix.js' needs to be executed as a previous step.

The result will be an extension package in .vsix format installed
under the 'dist' folder (which is then used as the source for the
existing publishing step).

This extension package will include a reference to all extensions
resolved during the build step.

Fixes: eclipse-theia#40

Signed-off-by: Alvaro Sanchez-Leon <[email protected]>
alvsan09 added a commit to alvsan09/vscode-builtin-extensions that referenced this issue May 6, 2021
The new script 'create-extension-pack.js' can be executed directly
after a project build (i.e. yarn) as long as the extensions
associated with the build are already available in the registry.

When the extensions are not yet available in the registry the script
'package-vsix.js' needs to be executed as a previous step.

The result will be an extension package in .vsix format installed
under the 'dist' folder (which is then used as the source for the
existing publishing step).

This extension package will include a reference to all extensions
resolved during the build step.

Fixes: eclipse-theia#40

Signed-off-by: Alvaro Sanchez-Leon <[email protected]>
alvsan09 added a commit to alvsan09/vscode-builtin-extensions that referenced this issue May 7, 2021
The new script 'create-extension-pack.js' can be executed directly
after a project build (i.e. yarn) as long as the extensions
associated with the build are already available in the registry.

When the extensions are not yet available in the registry the script
'package-vsix.js' needs to be executed as a previous step.

The result will be an extension package in .vsix format installed
under the 'dist' folder (which is then used as the source for the
existing publishing step).

This extension package will include a reference to all extensions
resolved during the build step.

Fixes: eclipse-theia#40

Signed-off-by: Alvaro Sanchez-Leon <[email protected]>
marcdumais-work pushed a commit that referenced this issue May 11, 2021
The new script 'create-extension-pack.js' can be executed directly
after a project build (i.e. yarn) as long as the extensions
associated with the build are already available in the registry.

When the extensions are not yet available in the registry the script
'package-vsix.js' needs to be executed as a previous step.

The result will be an extension package in .vsix format installed
under the 'dist' folder (which is then used as the source for the
existing publishing step).

This extension package will include a reference to all extensions
resolved during the build step.

Fixes: #40

Signed-off-by: Alvaro Sanchez-Leon <[email protected]>
marcdumais-work pushed a commit that referenced this issue May 12, 2021
The new script 'create-extension-pack.js' can be executed directly
after a project build (i.e. yarn) as long as the extensions
associated with the build are already available in the registry.

When the extensions are not yet available in the registry the script
'package-vsix.js' needs to be executed as a previous step.

The result will be an extension package in .vsix format installed
under the 'dist' folder (which is then used as the source for the
existing publishing step).

This extension package will include a reference to all extensions
resolved during the build step.

Fixes: #40

Signed-off-by: Alvaro Sanchez-Leon <[email protected]>
@marcdumais-work
Copy link
Contributor

The built-in extensions pack is now published on open-vsx:
https://open-vsx.org/extension/eclipse-theia/builtin-extension-pack/1.50.0

There is a "bundled extensions" section, that lists them. Just the first few:
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants