-
Notifications
You must be signed in to change notification settings - Fork 36
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
[WIP] Vsix packaging - Generate a .vsix for all built-ins #13
Conversation
Note: the generated .vsix does not work at this time. The generated extension manifest does not have entries for the various built-ins, which it probably not correct (missing configurations in this PR, probably). As well I think we do not yet support extension packs in Theia: eclipse-theia/theia#6611 |
In the For example, in the java-extension-pack the following is described: "extensionPack": [
"redhat.java",
"vscjava.vscode-java-debug",
"vscjava.vscode-java-test",
"vscjava.vscode-maven",
"vscjava.vscode-java-dependency",
"VisualStudioExptTeam.vscodeintellicode"
], |
There might be an issue using the
In the case of "name": "@theia/vscode-builtin-git",
"displayName": "%displayName%",
"description": "%description%",
"publisher": "vscode",
"version": "0.2.1",
... The following is not supported: ( |
I tried to add such a block in our So we may need to wait until we have an extension registry that we are allowed to use, and have published there the built-in extensions we build from this repo. |
It would be nice to publish each built-in extension individually, for it we have to iterate over For now doing GitHub release would be enough. I don't think we can push them to VS Code marketplace. Later we can publish them to our registry then it is deployed somewhere. cc @spoenemann We should also clean up scripts that there is no anymore renaming of packages, archiving of node_modules, publishing to npmjs and so on. In Theia repo it is better to consume each extension individually that it is not magic and everybody see the full list of links. |
99b9925
to
f7dd9c2
Compare
This commit does a bit of massaging so that "vsce" will accept to package the built-ins we build onto a .vsix file. To generate it: $> cd <repo root>/vscode-builtin-extensions $> yarn package The resulting .vsix file will be saved in the repo root Signed-off-by: Marc Dumais <marc.dumais@ericsson.com>
f7dd9c2
to
b5ffb10
Compare
If we get rid of publishing to npmjs, how we will publish nightly versions for testing? @spoenemann would the registry support tags similar to npm? How does it decide what is the latest? |
Good question. I found this related vscode issue: I read quickly and it sounds like what the Microsoft marketplace accepts as valid version identifier for its extensions is quite limited and does not permit letters, just numbers. One suggested way forward is to publish 2 distinct extensions: one "stable" and one "preview/beta/nightly". I am not sure if our own registry will follow the same or maybe be more flexible? |
No. The VS Code marketplace has a notion of tags, but rather in the sense of improving search for marketplace users, not in the sense of version tags. We reuse the same concept in Open VSX.
Using semantic versioning rules, currently implemented in SemanticVersion.java
We will also support the By the way, if you would like to see a preview of our registry: |
@spoenemann It is more that we need to publish nightly next version which won't change latest version. Would you apply the semantic versioning somehow to decide what is the latest? |
You could mark the We could improve this by allowing to browse all available versions like npm does. The REST API already supports that, it's just not covered by the UI. |
closing this - we can make an extension pack for all built-ins when we have our upcoming public registry. |
(eventually) fixes #5
I was able to generate a .vsix file that contains all the built-ins. I had to do a few things:
vscode-builtin-extensions/package.json
vsce
was complaining about some missing fields. Added them.vsce
does not like having VS Code extensions depend on external things - they have to be self-contained. So I had to remove dependency to@theia/plugin-ext-vscode
vsce
as a dev-dependencypackage
script that callsvsce package
and saves the .vsix one folder above (so it's easier to find)Example applications:
@theia/plugin-ext-vscode
dependency, removed above, in each, so they can build/workNote: the example applications does not consume the
.vsix
at this time, but rather still use"vscode-builtin-extensions": "0.0.0"
TODO: I am still not sure how to publish the .vsix. One option is to use a npm module that makes it easier to publish towards GH releases.