Skip to content

Commit 65c70ec

Browse files
committed
chore: update publishing doc and update archive script
1 parent b703e93 commit 65c70ec

File tree

2 files changed

+11
-17
lines changed

2 files changed

+11
-17
lines changed

doc/Publishing.md

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Publishing VS Code built-in Extensions for a given VS Code Version
22

3-
Publishing the VS Code built-in extensions for a given relase of VS Code entails multiple steps (in order)
3+
Publishing the VS Code built-in extensions for a given release of VS Code entails multiple steps (in order)
44

55
1. Perform IP-checks with the Eclipse foundation for the extensions included in the VS Code repo ("builtin")
66
2. Perform IP-checks with the Eclipse foundation for each extension that is included with VS Code, but with source in a different location ("external")
@@ -18,7 +18,7 @@ extensions for compatibility with the Theia license. There are a couple of packa
1818

1919
This will run the dash-licenses tool an all extensions in the VS Code repo. To automatically open issues with the Eclipse [IP-issue tracker](https://gitlab.eclipse.org/eclipsefdn/emo-team/iplab), you can pass a `--token` parameter to the `ip-check:builtin` script. The token is described [in the dash-licenses README](https://github.com/eclipse/dash-licenses?tab=readme-ov-file#automatic-ip-team-review-requests).
2020

21-
npm run ip-check:builtin --token <your gitlab token>
21+
npm run ip-check:builtin -- --token <your gitlab token>
2222

2323
Any issues will show up as opened by you (or the account owning the token) at <https://gitlab.eclipse.org/eclipsefdn/emo-team/iplab>. In general, it's a good idea to wait for the
2424
IP tickets to be closed before publishing the built-in. Technically, this restriction applies to publishing the built-ins as part of an Eclipse project artifact like Theia IDE.
@@ -30,7 +30,7 @@ Generate a source zip of the extensions folder. You can use a package script tha
3030

3131
This will `git clean` all extension directories and generate a zip file named like so: `vscode-builtins-<version>.src.zip`
3232

33-
Open an issue that looks like this: <https://gitlab.eclipse.org/eclipsefdn/emo-team/iplab/-/issues/11676>. Use the template "vet third party" on the new issue and fill in the templata liek in the example issue. Attach the source file generated in step one as "source". Since there is no real "clearlydefined id" for the built-ins, we set the title of the issue to `project/ecd.theia/-/vscode-builtin-extensions/<VS Code version>`
33+
Open an issue that looks like this: <https://gitlab.eclipse.org/eclipsefdn/emo-team/iplab/-/issues/11676>. Use the template "vet third party" on the new issue and fill in the template link in the example issue. Attach the source file generated in step one as "source". Since there is no real "clearlydefined id" for the built-ins, we set the title of the issue to `project/ecd.theia/-/vscode-builtin-extensions/<VS Code version>`
3434

3535
## IP checks for external VS Code built-ins
3636

@@ -42,10 +42,10 @@ the correct tag into a folder named `external-builtins`.
4242

4343
We now have to run the checks for the dependencies of those extensions:
4444

45-
npm run ip-check:external --token <your gitlab token>
45+
npm run ip-check:external -- --token <your gitlab token>
4646

4747
Again, this will open issues with the Eclipse IP issue tracker. Once this is done, it's time to open an ip-check issue for the content of each of the external built ins.
48-
For extensions from github, it's usually enough to open a "vet third party" issue with just the project in the details, like this one: <https://gitlab.eclipse.org/eclipsefdn/emo-team/iplab/-/issues/14430>. The title should be the clearlydefined id of the form `git/github/<github org>/<project>/v<version>`. The IP-check bot is usually able to download the source from the github release page on its own. In the issue template, just fill in the "project" field.
48+
For extensions from github, it's usually enough to open a "vet third party" issue with just the project in the details, like this one: <https://gitlab.eclipse.org/eclipsefdn/emo-team/iplab/-/issues/14430>. The title should be the "clearlydefined" id of the form `git/github/<github org>/<project>/v<version>`. The IP-check bot is usually able to download the source from the github release page on its own. In the issue template, just fill in the "project" field.
4949
If the IP-check bot cannot figure out the source (it will ask for source in a comment on the issue), you can zip up the source of all external built-ins into files of the form `<publisher>.<name>-<version>.src.zip>` with a package script:
5050

5151
npm run archive:external
@@ -85,17 +85,11 @@ Note that startup will take a bit longer than usual while Theia unzips the *.vsi
8585

8686
File issues for problems found. Some problems may require changing how we build or package, in which case a fix would be made on `vscode-builtin-extensions` as part of the ongoing release PR. If the issue is with the upstream Theia repo, we open the issue there.
8787

88-
While testing buitins 1.72.2, we found the following, for example:
89-
90-
- [RangeError: Maximum call stack size exceeded with recent vscode.html builtin extension #12434](https://github.com/eclipse-theia/theia/issues/12434)
91-
- [[builtins] [proposed API] [vscode.markdown-language-features]: Theia misses proposed API: `Document Paste`](https://github.com/eclipse-theia/theia/issues/12430)
92-
- [[builtins] [proposed API] [[email protected]]: Theia misses proposed API: `Edit session identifier provider`](https://github.com/eclipse-theia/theia/issues/12437)
93-
9488
Once you are confident that the new set of builtins do not have obvious issues, you can proceed with publishing them to `open-vsx.org`. It's ok if there are issues that will later be fixed in Theia - older version of the builtin can be temporarily used instead in most cases.
9589

9690
Now it's time to open a PR against master. The convention is to create a branch that is named after the version of VS Code wer're using:
9791

98-
git checkout -b <major>.<minor>.<patch> # replace the version here wiht the VS Code version, for example "1.88.1"
92+
git checkout -b <major>.<minor>.<patch> # replace the version here with the VS Code version, for example "1.88.1"
9993

10094
Now commit all changes you had to make to get the built-ins to correctly build, **including the `vscode` folder**. Adding `vscode` will update the submodule configuration n this repo to
10195
check out the correct version of VS Code upon `git submodule update`. The convention is to make a single commit named `changes for builtins v<major>.<minor>.<patch>`. Open a PR and have it reviewed as usual.

src/archive-source.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ const globPromise = util.promisify(glob);
2121
const { root, vscodeExtensions, vscode, externalBuiltinsRepos } = require('./paths');
2222
const fs = require('fs');
2323
const path = require('path');
24-
const { computeVersion } = require('./version');
24+
const { resolveVscodeVersion } = require('./version');
2525

2626
const yargs = require('yargs');
2727

@@ -40,7 +40,7 @@ async function addExtensionToArchive(archive, extensionDir) {
4040
console.log(`adding extension ${extensionDir}`);
4141
const filesToInclude = await globPromise('**', {
4242
cwd: extensionDir,
43-
ignore: ['**/test/**/*', '**/test-workspace/**/*'],
43+
ignore: ['**/test/**/*', '**/test-workspace/**/*', '**/node_modules/**/*'],
4444
dot: true,
4545
nodir: true
4646
});
@@ -97,15 +97,15 @@ async function archiveExternal() {
9797
async function archiveBuiltins() {
9898
const { execa } = await import('execa');
9999

100-
process.stdout.write('cleaning vscode directory');
100+
process.stdout.write('cleaning vscode directory...\n');
101101
execa('git', ['clean', '-xfd'], {
102102
cwd: vscode()
103103
});
104104

105105
process.stdout.write('done\n');
106106

107-
const excludedDirs = ['vscode-colorize-tests', 'vscode-api-tests', 'microsoft-authentication']
108-
const version = await computeVersion('latest');
107+
const excludedDirs = ['vscode-colorize-tests', 'vscode-api-tests', 'microsoft-authentication', 'vscode-colorize-perf-tests', 'vscode-test-resolver', 'prompt-basics']
108+
const version = await resolveVscodeVersion('latest');
109109
const zipFile = root(`vscode-built-ins-${version}.src.zip`);
110110

111111
const archive = archiver('zip');

0 commit comments

Comments
 (0)