-
Notifications
You must be signed in to change notification settings - Fork 35
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 - package and publish built-ins individually #15
Conversation
bb9d30f
to
181f523
Compare
8062362
to
e328b10
Compare
6fb5f17
to
14c4f91
Compare
I am having issues with packaging the Typescript LS in a way that it can start: Relevant comment from #13 (comment):
I am having a couple of issues with this part, once
Is strategic patching of the vscode build-in extensions a good way forward in cases like this? It would for sure be more fragile if the upstream code changes... Any ideas? |
14c4f91
to
3f85b75
Compare
About releasing on GH: I have tried a couple of npm packages that help with that. It looks like we need to tie a GH release to a tag in the repo. ATM the built-in's version (at least for One option is to let the publishing tool, as part of the CI, do a release commit, tag it and push it to our repo. This way we'll always have a distinct commit/tag that corresponds to a release of the built-ins, to publish against. Does that sound like a reasonable way forward? |
sounds good to me. would be good to have releases for upstream releases of VS Code as well |
@marcdumais-work Could we split to 2 steps:
I would prefer if you just work on master without PRs and make it work for vsix GitHub releases. As far as this approach can do all the same what works for npmjs, we can remove npmjs support. Till then just let it be. How to version can be the same for now for simplicity. Let's work on it after release workflow works for vxis files with Github ok? The same for publishing to our registry, let's make it another step later. I hope such approach is good enough to unblock you from reviews. |
Sounds good. So I'll just push to master without review, just being careful not to break npm publishing, which we will remove later, when not needed anymore. |
+1 Builtins releases based on proper vscode releases feel more like "latest" releases, rather than "next" releases, based on an arbitrary vscode commit that happens to be the latest master at the time when CI runs. So releases of builtins based on vscode releases could be done manually, at least to start-with. |
We should not switch |
@marcdumais-work |
3f85b75
to
dea07ff
Compare
Hi @tolusha , There is still a bit of manual intervention needed to obtain working typescript language support. What I can do is try for a first manual "latest" release, targeting 1.39.1, and publish the result on this repo's I'll try to do so today. |
If you'd like to try for yourself, starting from the PR's code, other than the change above regarding typescript language support, I think you only need to reset the vscode git submodule to the version you target and do:
The .vsix will be in the |
@marcdumais-work publishing results implies creating a tag. Do you mind? |
Signed-off-by: Marc Dumais <[email protected]>
dea07ff
to
169967c
Compare
Ok with me. But please pull the latest version of this PR - I added one more work-around during vsix packaging that you'll need for Typescript to work. edit: you should not have to manually change anything with the latest version. |
@marcdumais-work |
should be fixed now @tolusha |
Error while starting
|
@tolusha @benoitf @marcdumais-work Is there a way to remove a release? As I said don't publish broke stuff, publish with next against commit, then test, if it is fine publish with a proper tag. I have not seen anywhere that there was an agreement to align with VS Code versions. It was said that first everything should work like as currently working for npmjs on master, after that we can look into versioning of properly tested artifacts. |
I've deleted all releases, you can create vsix files locally till a proper solution is developed. |
I have not tried what @tolusha had published. But when I test locally, the currently generated vsix work as well (or as badly - there are a few that generate exceptions) as the current master. So it's looking promising. @akosyakov I seem to remember a test suite that we can use to test vscode extensions. Would that be useful with the built-ins? |
Not really, it does not test functionality of built-in extensions. Let's work on testing afterwards. I hope to finish vscode theming this month and work on the integration testing framework in Jan, with this in place we can write tests for built-in extensions. Also some built-in extensions can have tests already and some are themes which is not really auto testable. I would rather focus on getting the first cut and be able to publish 0.2.1 and nightly builds as GH releases. |
Hi @tolusha , I just did a manual pre-release on GitHub: As discussed in today's dev-meeting, I have given it a version number that points to the vscode version the built-ins are from. Let's use this release as a base to test the built-in. When we are satisfied, I can release a "solid" @akosyakov I hope I did this ok: in the tagged release commit, I committed the version in |
closing this PR since we agreed that I would push directly to master, which was done for the packaging part. Publish of next TBD. |
I think I know the issue - |
@akosyakov I have a question: ATM, if I look at this repo after build, the vscode built-ins are in However some of the other extensions do have a
I have not checked them all, but I know at least some have runtime dependencies in these |
It can be dev dependencies and binaries? |
Most of them, I think so. But not all: https://github.com/microsoft/vscode/blob/master/extensions/git/package.json#L1758-L1766 |
Ah, I think I understand what's happening: each built-in extension's https://github.com/microsoft/vscode/blob/master/build/lib/extensions.ts#L243 Edit: confirmed: looking in built extension's |
I added a script,
src/package-vsix.js
, that packages each built-in extension in its own.vsix
.Run it like so:
The generated packages will be under
./out/
TODO:
vsix
files - as a first draft I kept the same we had for the npm packagesSigned-off-by: Marc Dumais [email protected]