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

feat(vscode): update to version 1.57.0 #3544

Merged
merged 51 commits into from
Jul 13, 2021
Merged
Show file tree
Hide file tree
Changes from 49 commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
bb14cfe
Squashed 'lib/vscode/' changes from cfa2e218100..2064d4c301c
Jun 4, 2021
92e6bb1
chore(vscode): update to 1.57.0
Jun 4, 2021
d7cc072
chore(deps): fixup lockfiles
Jun 8, 2021
8c72047
chore: restore .gitignore
Jun 8, 2021
ea4705b
fix(vscode): redo extra extension paths
Jun 8, 2021
943504b
fix(vscode): add setSocket to PersistentProtocol
Jun 8, 2021
8c05721
fix(vscode): restore server files
Jun 8, 2021
ddf2616
fix(vscode): restore typings
Jun 10, 2021
a02b0ad
fix(vscode): restore proxy_agent.ts symlink
Jun 10, 2021
9f524bd
fix(vscode): use ptyHost.getEnv
Jun 10, 2021
b88ce55
fix(vscode): uriTransformer refactoring
Jun 10, 2021
c9a28aa
fix(vscode): add new terminal listener
Jun 10, 2021
f993944
fix(vscode): fix + enable layering lint
Jun 10, 2021
8c3c30a
chore: format file
Jun 10, 2021
41a72f1
Squashed 'lib/vscode/' changes from 2064d4c301c..b4c1bd0a9b0
Jun 10, 2021
0c818a6
Merge commit '41a72f14e8a1f0f7a9d9c7fbf4c24d89f087c733' into vscode-1.57
Jun 10, 2021
a4f9ff0
fix(lib/vscode): restore product.json
Jun 10, 2021
a07260f
fix(vscode): backport resources hotfix
Jun 10, 2021
e41351e
Merge branch 'main' into vscode-1.57
Jun 10, 2021
1aaea7e
refactor(lib/vscode): reorganize code to fit vs rules
Jun 14, 2021
42794e3
fix(ci): remove stray symlinks
Jun 14, 2021
280d609
cleanup(lib/vscode): format .gitignore
Jun 14, 2021
b5af44e
chore(vscode): fix formatting
Jun 14, 2021
5429bc1
refactor(vscode): remove parsePathArg in envService
Jun 14, 2021
62801c8
fix(vscode): add missing terminal commands
Jun 14, 2021
180fbfc
fix(vscode): update .eslintignore paths
Jun 14, 2021
ef29d56
chore: document uriTransformer hacks
Jun 14, 2021
863cf60
fix(lib/vscode): restore patches
Jun 15, 2021
3558f5d
fix(lib/vscode): restore more patches
Jun 21, 2021
5fd98a5
Squashed 'lib/vscode/' changes from b4c1bd0a9b0..507ce72a446
Jun 21, 2021
6a62fe8
Merge commit '5fd98a52efbbbd7ca28922fdc9c7282d9bf1ec3d' into vscode-1.57
Jun 21, 2021
60673bd
fmt(docs): remove trailing whitespace
Jun 21, 2021
4271b60
fix(test): fix e2e tests
Jun 22, 2021
49e9fdd
chore(deps): update vulnerable vscode deps
Jun 22, 2021
55dc16b
fix(test): clean up terminal test
Jun 22, 2021
b5f408f
Merge branch 'main' into vscode-1.57
Jun 29, 2021
4b418f5
Retry menu navigation in e2e tests
code-asher Jun 29, 2021
7c9b1f0
Update VS Code loader with trusted types policy
code-asher Jul 1, 2021
6987dd3
Update build resources with renamed file
code-asher Jul 1, 2021
47d8866
Restore proposed API patch
code-asher Jun 22, 2021
9e46573
Restore async storage write patch
code-asher Jun 22, 2021
d8a1f7d
Remove duplicate telemetry service registration
code-asher Jun 22, 2021
a445588
Use service in terminal channel instead of interface
code-asher Jun 22, 2021
23594b2
Rename uri transformer using camel case
code-asher Jun 22, 2021
3c95888
Update yarn.lock
code-asher Jun 21, 2021
b0e9eff
Restore .yarnrc patch
code-asher Jun 21, 2021
7e3bb46
Remove gulp-tar dependency
code-asher Jul 1, 2021
5e8fe4e
Cancel current menu navigation on retry
code-asher Jul 2, 2021
476fcf3
chore(docs): update docs with patches
Jul 10, 2021
ed9c59d
Merge branch 'main' into vscode-1.57
Jul 13, 2021
df85813
chore(ci): increase timeout to 15 minutes
Jul 13, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 3 additions & 1 deletion ci/build/build-release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -82,10 +82,12 @@ bundle_vscode() {
rsync "$VSCODE_SRC_PATH/resources/linux/code.png" "$VSCODE_OUT_PATH/resources/linux/code.png"
rsync "$VSCODE_SRC_PATH/resources/web/callback.html" "$VSCODE_OUT_PATH/resources/web/callback.html"

# Adds the commit and date to product.json
# Add the commit and date and enable telemetry. This just makes telemetry
# available; telemetry can still be disabled by flag or setting.
jq --slurp '.[0] * .[1]' "$VSCODE_SRC_PATH/product.json" <(
cat << EOF
{
"enableTelemetry": true,
"commit": "$(git rev-parse HEAD)",
"date": $(jq -n 'now | todate')
}
Expand Down
6 changes: 6 additions & 0 deletions ci/build/build-standalone-release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@ main() {

cd "$RELEASE_PATH"
yarn --production --frozen-lockfile

# HACK: the version of Typescript vscode 1.57 uses in extensions/
# leaves a few stray symlinks. Clean them up so nfpm does not fail.
# Remove this line when its no longer needed.

rm -fr "$RELEASE_PATH/lib/vscode/extensions/node_modules/.bin"
}

main "$@"
66 changes: 56 additions & 10 deletions docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,16 +174,62 @@ the VS Code front-end and implements the server. We do this by using a git subtr

Some noteworthy changes in our version of VS Code:

- Adding our build file, which includes our code and VS Code's web code
- Allowing multiple extension directories (both user and built-in)
- Modifying the loader, websocket, webview, service worker, and asset requests to
use the URL of the page as a base (and TLS, if necessary for the websocket)
- Sending client-side telemetry through the server
- Allowing modification of the display language
- Making it possible for us to load code on the client
- Making it possible to install extensions of any kind
- Fixing issue with getting disconnected when your machine sleeps or hibernates
- Adding connection type to web socket query parameters
- Adding our build file, [`lib/vscode/coder.js`](../lib/vscode/coder.js), which includes build steps specific to code-server
- Node.js version detection changes in [`build/lib/node.ts`](../lib/vscode/build/lib/node.ts) and [`build/lib/util.ts`](../lib/vscode/build/lib/util.ts)
- Allowing extra extension directories
- Added extra arguments to [`src/vs/platform/environment/common/argv.ts`](../lib/vscode/src/vs/platform/environment/common/argv.ts) and to [`src/vs/platform/environment/node/argv.ts`](../lib/vscode/src/vs/platform/environment/node/argv.ts)
- Added extra environment state to [`src/vs/platform/environment/common/environment.ts`](../lib/vscode/src/vs/platform/environment/common/environment.ts);
- Added extra getters to [`src/vs/platform/environment/common/environmentService.ts`](../lib/vscode/src/vs/platform/environment/common/environmentService.ts)
- Added extra scanning paths to [`src/vs/platform/extensionManagement/node/extensionsScanner.ts`](../lib/vscode/src/vs/platform/extensionManagement/node/extensionsScanner.ts)
- Additions/removals from [`package.json`](../lib/vscode/package.json):
- Removing `electron`, `keytar` and `native-keymap` to avoid pulling in desktop dependencies during build on Linux
- Removing `gulp-azure-storage` and `gulp-tar` (unsued in our build process, may pull in outdated dependencies)
- Adding `proxy-agent`, `proxy-from-env` (for proxying) and `rimraf` (used during build/install steps)
- Adding our branding/custom URLs/version:
- [`product.json`](../lib/vscode/product.json)
- [`src/vs/base/common/product.ts`](../lib/vscode/src/vs/base/common/product.ts)
- [`src/vs/workbench/browser/parts/dialogs/dialogHandler.ts`](../lib/vscode/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts)
- [`src/vs/workbench/contrib/welcome/page/browser/vs_code_welcome_page.ts`](../lib/vscode/src/vs/workbench/contrib/welcome/page/browser/vs_code_welcome_page.ts)
- [`src/vs/workbench/contrib/welcome/page/browser/welcomePage.ts`](../lib/vscode/src/vs/workbench/contrib/welcome/page/browser/welcomePage.ts)
- Removing azure/macOS signing related dependencies from [`build/package.json`](../lib/vscode/build/package.json)
- Modifying `.gitignore` to allow us to add files to `src/vs/server` and modifying `.eslintignore` to ignore lint on the shared files below (we use different formatter settings than VS Code).
- Sharing some files with our codebase via symlinks:
- [`src/vs/base/common/ipc.d.ts`](../lib/vscode/src/vs/base/common/ipc.d.ts) points to [`typings/ipc.d.ts`](../typings/ipc.d.ts)
- [`src/vs/base/common/util.ts`](../lib/vscode/src/vs/base/common/util.ts) points to [`src/common/util.ts`](../src/common/util.ts)
- [`src/vs/base/node/proxy_agent.ts`](../lib/vscode/src/vs/base/node/proxy_agent.ts) points to [`src/node/proxy_agent.ts`](../src/node/proxy_agent.ts)
- Allowing socket changes by adding `setSocket` in [`src/vs/base/parts/ipc/common/ipc.net.ts`](../lib/vscode/src/vs/base/parts/ipc/common/ipc.net.ts)
- We use this for connection persistence in our server-side code.
- Added our server-side Node.JS code to `src/vs/server`.
- This code includes the logic to spawn the various services (extension host, terminal, etc.) and some glue
- Added [`src/vs/workbench/browser/client.ts`](../lib/vscode/src/vs/workbench/browser/client.ts) to hold some server customizations.
- Includes the functionality for the Log Out command and menu item
- Also, imported and called `initialize` from the main web file, [`src/vs/workbench/browser/web.main.ts`](../lib/vscode/src/vs/workbench/browser/web.main.ts)
- Added a (hopefully temporary) hotfix to [`src/vs/workbench/common/resources.ts`](../lib/vscode/src/vs/workbench/common/resources.ts) to get context menu actions working for the Git integration.
- Added connection type to WebSocket query parameters in [`src/vs/platform/remote/common/remoteAgentConnection.ts`](../lib/vscode/src/vs/platform/remote/common/remoteAgentConnection.ts)
- Added `CODE_SERVER*` variables to the sanitization list in [`src/vs/base/common/processes.ts`](../lib/vscode/src/vs/base/common/processes.ts)
- Fix localization support:
- Added file [`src/vs/workbench/services/localizations/browser/localizationsService.ts`](../lib/vscode/src/vs/workbench/services/localizations/browser/localizationsService.ts).
- Modified file [`src/vs/base/common/platform.ts`](../lib/vscode/src/vs/base/common/platform.ts)
- Modified file [`src/vs/base/node/languagePacks.js`](../lib/vscode/src/vs/base/node/languagePacks.js)
- Added code to allow server to inject settings to [`src/vs/platform/product/common/product.ts`](../lib/vscode/src/vs/platform/product/common/product.ts)
- Extension fixes:
- Avoid disabling extensions by extensionKind in [`src/vs/workbench/services/extensionManagement/browser/extensionEnablementService.ts`](../lib/vscode/src/vs/workbench/services/extensionManagement/browser/extensionEnablementService.ts) (Needed for vscode-icons)
- Remove broken symlinks in [`extensions/postinstall.js`](../lib/vscode/extensions/postinstall.js)
- Add tip about extension gallery in [`src/vs/workbench/contrib/extensions/browser/extensionsViewlet.ts`](../lib/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.ts)
- Use our own server for GitHub authentication in [`extensions/github-authentication/src/githubServer.ts`](../lib/vscode/extensions/github-authentication/src/githubServer.ts)
- Settings persistence on the server in [`src/vs/workbench/services/environment/browser/environmentService.ts`](../lib/vscode/src/vs/workbench/services/environment/browser/environmentService.ts)
- Add extension install fallback in [`src/vs/workbench/services/extensionManagement/common/extensionManagementService.ts`](../lib/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementService.ts)
- Add proxy-agent monkeypatch and keep extension host indefinitely running in [`src/vs/workbench/services/extensions/node/extensionHostProcessSetup.ts`](../lib/vscode/src/vs/workbench/services/extensions/node/extensionHostProcessSetup.ts)
- Patch build system to avoid removing extension dependencies for `yarn global add` users in [`build/lib/extensions.ts`](../lib/vscode/build/lib/extensions.ts)
- Allow all extensions to use proposed APIs in [`src/vs/workbench/services/environment/browser/environmentService.ts`](../lib/vscode/src/vs/workbench/services/environment/browser/environmentService.ts)
- Make storage writes async to allow extensions to wait for them to complete in [`src/vs/platform/storage/common/storage.ts`](../lib/vscode/src/vs/platform/storage/common/storage.ts)
- Specify webview path in [`src/vs/code/browser/workbench/workbench.ts`](../lib/vscode/src/vs/code/browser/workbench/workbench.ts)
- URL readability improvements for folder/workspace in [`src/vs/code/browser/workbench/workbench.ts`](../lib/vscode/src/vs/code/browser/workbench/workbench.ts)
- Socket/Authority-related fixes (for remote proxying etc.):
- [`src/vs/code/browser/workbench/workbench.ts`](../lib/vscode/src/vs/code/browser/workbench/workbench.ts)
- [`src/vs/platform/remote/browser/browserSocketFactory.ts`](../lib/vscode/src/vs/platform/remote/browser/browserSocketFactory.ts)
- [`src/vs/base/common/network.ts`](../lib/vscode/src/vs/base/common/network.ts)
- Added code to write out IPC path in [`src/vs/workbench/api/node/extHostCLIServer.ts`](../lib/vscode/src/vs/workbench/api/node/extHostCLIServer.ts)

As the web portion of VS Code matures, we'll be able to shrink and possibly
eliminate our modifications. In the meantime, upgrading the VS Code version requires
Expand Down
Loading