Feature/1.32.0 update (#117)

* Update VS Code to 1.32.0

* Update patch

Most changes are moved files, most notably shell.contribution.ts which
is now main.contribution.ts.

Also:
- repl.ts no longer uses isMacintosh
- shell.ts doesn't exist
- added back the commented-out CSP headers

* Use es6 target for bootstrap-fork

* Directly reference cross-env binary

yarn and npm find the binary just fine when running the tasks from the
root but it doesn't work if you run one of those tasks directly from
within those directories.

* Update import paths and bootstrap-fork ignores

* Increase memory limit for building default extensions

* Fix invalid regex in Firefox

* Update startup function

* Fix global.require error

* Update zip extract arguments

* Update travis to minimum required Node version

* Always chmod executable dependencies

Fixes EACCESS errors for users that had the files unpacked before we
added the chmod call.

* Remove unused var declaration
This commit is contained in:
Asher 2019-03-08 10:37:03 -06:00 committed by Kyle Carberry
parent 5c435a3b6c
commit 36c05ed335
16 changed files with 371 additions and 408 deletions

View File

@ -1,8 +1,8 @@
language: node_js language: node_js
node_js: node_js:
- 8.9.3 - 8.10.0
env: env:
- VERSION="1.31.1-$TRAVIS_BUILD_NUMBER" - VERSION="1.32.0-$TRAVIS_BUILD_NUMBER"
matrix: matrix:
include: include:
- os: linux - os: linux

View File

@ -194,7 +194,7 @@ const buildDefaultExtensions = register("build:default-extensions", async (runne
if (!fs.existsSync(defaultExtensionsPath)) { if (!fs.existsSync(defaultExtensionsPath)) {
await copyForDefaultExtensions(); await copyForDefaultExtensions();
runner.cwd = extDirPath; runner.cwd = extDirPath;
const resp = await runner.execute(isWin ? "npx.cmd" : "npx", [isWin ? "gulp.cmd" : "gulp", "vscode-linux-x64"]); const resp = await runner.execute(isWin ? "npx.cmd" : "npx", [isWin ? "gulp.cmd" : "gulp", "vscode-linux-x64", "--max-old-space-size=32384"]);
if (resp.exitCode !== 0) { if (resp.exitCode !== 0) {
throw new Error(`Failed to build default extensions: ${resp.stderr}`); throw new Error(`Failed to build default extensions: ${resp.stderr}`);
} }
@ -224,7 +224,7 @@ const ensureCloned = register("vscode:clone", async (runner) => {
} }
runner.cwd = vscodePath; runner.cwd = vscodePath;
const checkout = await runner.execute("git", ["checkout", "tags/1.31.1"]); const checkout = await runner.execute("git", ["checkout", "tags/1.32.0"]);
if (checkout.exitCode !== 0) { if (checkout.exitCode !== 0) {
throw new Error(`Failed to checkout: ${checkout.stderr}`); throw new Error(`Failed to checkout: ${checkout.stderr}`);
} }

View File

@ -258,7 +258,7 @@ export class Server extends React.Component<ServerProps, {
if (xhr.status === 200) { if (xhr.status === 200) {
this.setState({ this.setState({
status: "Online", status: "Online",
version: "v1.31.0", version: process.env.VERSION,
}); });
} else { } else {
this.setState({ this.setState({

View File

@ -5,7 +5,7 @@
"files": [], "files": [],
"scripts": { "scripts": {
"start": "node --max-old-space-size=32384 --require ts-node/register --require tsconfig-paths/register src/cli.ts", "start": "node --max-old-space-size=32384 --require ts-node/register --require tsconfig-paths/register src/cli.ts",
"build": "rm -rf ./out && cross-env CLI=true UV_THREADPOOL_SIZE=100 node --max-old-space-size=32384 ../../node_modules/webpack/bin/webpack.js --config ./webpack.config.js", "build": "rm -rf ./out && ../../node_modules/.bin/cross-env CLI=true UV_THREADPOOL_SIZE=100 node --max-old-space-size=32384 ../../node_modules/webpack/bin/webpack.js --config ./webpack.config.js",
"build:nexe": "node scripts/nexe.js" "build:nexe": "node scripts/nexe.js"
}, },
"dependencies": { "dependencies": {

View File

@ -3,8 +3,6 @@ import * as path from "path";
import * as os from "os"; import * as os from "os";
import { isCli, buildDir } from "./constants"; import { isCli, buildDir } from "./constants";
declare var __non_webpack_require__: typeof require;
/** /**
* Handling of native modules within the CLI * Handling of native modules within the CLI
*/ */
@ -27,10 +25,9 @@ export const setup = (dataDirectory: string): void => {
const diskFile = path.join(dataDirectory, "dependencies", moduleName); const diskFile = path.join(dataDirectory, "dependencies", moduleName);
if (!fs.existsSync(diskFile)) { if (!fs.existsSync(diskFile)) {
fs.writeFileSync(diskFile, fs.readFileSync(memFile)); fs.writeFileSync(diskFile, fs.readFileSync(memFile));
}
if (markExecutable) { if (markExecutable) {
fs.chmodSync(diskFile, "755"); fs.chmodSync(diskFile, "755");
}
} }
}; };

View File

@ -3,7 +3,7 @@
"description": "VS Code implementation of the browser-based IDE client.", "description": "VS Code implementation of the browser-based IDE client.",
"main": "src/index.ts", "main": "src/index.ts",
"scripts": { "scripts": {
"build:bootstrap-fork": "cross-env UV_THREADPOOL_SIZE=100 node --max-old-space-size=32384 ../../node_modules/webpack/bin/webpack.js --config ./webpack.bootstrap.config.js" "build:bootstrap-fork": "../../node_modules/.bin/cross-env UV_THREADPOOL_SIZE=100 node --max-old-space-size=32384 ../../node_modules/webpack/bin/webpack.js --config ./webpack.bootstrap.config.js"
}, },
"dependencies": { "dependencies": {
"iconv-lite": "^0.4.24", "iconv-lite": "^0.4.24",

View File

@ -1,10 +1,11 @@
import * as labels from "vs/base/common/labels"; import * as labels from "vs/base/common/labels";
// Here we simply disable translation of mnemonics and leave everything as &&. // Disable all mnemonics for now until we implement it.
// Since we're in the browser, we can handle all platforms in the same way.
const target = labels as typeof labels; const target = labels as typeof labels;
target.mnemonicMenuLabel = (label: string, forceDisable?: boolean): string => { target.mnemonicMenuLabel = (label: string, forceDisable?: boolean): string => {
return forceDisable ? label.replace(/\(&&\w\)|&&/g, "") : label; return label.replace(/\(&&\w\)|&&/g, "");
};
target.mnemonicButtonLabel = (label: string): string => {
return label.replace(/\(&&\w\)|&&/g, "");
}; };
target.mnemonicButtonLabel = (label: string): string => { return label; };
target.unmnemonicLabel = (label: string): string => { return label; }; target.unmnemonicLabel = (label: string): string => { return label; };

View File

@ -1,9 +1,9 @@
import * as nls from "vs/nls"; import * as nls from "vs/nls";
import { Action } from "vs/base/common/actions"; import { Action } from "vs/base/common/actions";
import { TERMINAL_COMMAND_ID } from "vs/workbench/parts/terminal/common/terminalCommands"; import { TERMINAL_COMMAND_ID } from "vs/workbench/contrib/terminal/common/terminalCommands";
import { ITerminalService } from "vs/workbench/parts/terminal/common/terminal"; import { ITerminalService } from "vs/workbench/contrib/terminal/common/terminal";
import * as actions from "vs/workbench/parts/terminal/electron-browser/terminalActions"; import * as actions from "vs/workbench/contrib/terminal/electron-browser/terminalActions";
import * as instance from "vs/workbench/parts/terminal/electron-browser/terminalInstance"; import * as instance from "vs/workbench/contrib/terminal/electron-browser/terminalInstance";
import { client } from "../client"; import { client } from "../client";
const getLabel = (key: string, enabled: boolean): string => { const getLabel = (key: string, enabled: boolean): string => {

View File

@ -1,4 +1,4 @@
import { IProductConfiguration } from "vs/platform/node/product"; import { IProductConfiguration } from "vs/platform/product/node/product";
const product = { const product = {
nameShort: "code-server", nameShort: "code-server",

View File

@ -5,8 +5,8 @@ import { IWorkbenchActionRegistry, Extensions } from "vs/workbench/common/action
import { SyncActionDescriptor } from "vs/platform/actions/common/actions"; import { SyncActionDescriptor } from "vs/platform/actions/common/actions";
import { ContextKeyExpr } from "vs/platform/contextkey/common/contextkey"; import { ContextKeyExpr } from "vs/platform/contextkey/common/contextkey";
import { ToggleDevToolsAction } from "vs/workbench/electron-browser/actions/developerActions"; import { ToggleDevToolsAction } from "vs/workbench/electron-browser/actions/developerActions";
import { TerminalPasteAction } from "vs/workbench/parts/terminal/electron-browser/terminalActions"; import { TerminalPasteAction } from "vs/workbench/contrib/terminal/electron-browser/terminalActions";
import { KEYBINDING_CONTEXT_TERMINAL_FOCUS } from "vs/workbench/parts/terminal/common/terminal"; import { KEYBINDING_CONTEXT_TERMINAL_FOCUS } from "vs/workbench/contrib/terminal/common/terminal";
import { KeyCode, KeyMod } from "vs/base/common/keyCodes"; import { KeyCode, KeyMod } from "vs/base/common/keyCodes";
import { workbench } from "../workbench"; import { workbench } from "../workbench";

View File

@ -58,7 +58,7 @@ export function zip(tarPath: string, files: IFile[]): Promise<string> {
}); });
} }
export async function extract(tarPath: string, targetPath: string, options: IExtractOptions = {}, logService: ILogService, token: CancellationToken): Promise<void> { export async function extract(tarPath: string, targetPath: string, options: IExtractOptions = {}, token: CancellationToken): Promise<void> {
const sourcePathRegex = new RegExp(options.sourcePath ? `^${options.sourcePath}` : ''); const sourcePathRegex = new RegExp(options.sourcePath ? `^${options.sourcePath}` : '');
return new Promise<void>(async (c, e) => { return new Promise<void>(async (c, e) => {

View File

@ -17,8 +17,8 @@ import "./fill/workspacesService";
import * as paths from "./fill/paths"; import * as paths from "./fill/paths";
import { PasteAction } from "./fill/paste"; import { PasteAction } from "./fill/paste";
import { ExplorerItem, ExplorerModel } from "vs/workbench/parts/files/common/explorerModel"; import { ExplorerItem, ExplorerModel } from "vs/workbench/contrib/files/common/explorerModel";
import { IEditorGroup } from "vs/workbench/services/group/common/editorGroupsService"; import { IEditorGroup } from "vs/workbench/services/editor/common/editorGroupsService";
import { IEditorService, IResourceEditor } from "vs/workbench/services/editor/common/editorService"; import { IEditorService, IResourceEditor } from "vs/workbench/services/editor/common/editorService";
import { INotificationService } from "vs/platform/notification/common/notification"; import { INotificationService } from "vs/platform/notification/common/notification";
import { IProgressService2, ProgressLocation } from "vs/platform/progress/common/progress"; import { IProgressService2, ProgressLocation } from "vs/platform/progress/common/progress";
@ -171,7 +171,7 @@ export class Workbench {
// If we try to import this above, workbench will be undefined due to // If we try to import this above, workbench will be undefined due to
// circular imports. // circular imports.
require("vs/workbench/workbench.main"); require("vs/workbench/workbench.main");
const { startup } = require("vs/workbench/electron-browser/main"); const { main } = require("vs/workbench/electron-browser/main");
const config: IWindowConfiguration = { const config: IWindowConfiguration = {
machineId: "1", machineId: "1",
windowId: this.windowId, windowId: this.windowId,
@ -189,7 +189,7 @@ export class Workbench {
} else { } else {
config.folderUri = workspace as URI; config.folderUri = workspace as URI;
} }
await startup(config); await main(config);
const contextKeys = this.serviceCollection.get(IContextKeyService) as IContextKeyService; const contextKeys = this.serviceCollection.get(IContextKeyService) as IContextKeyService;
const bounded = this.clipboardContextKey.bindTo(contextKeys); const bounded = this.clipboardContextKey.bindTo(contextKeys);
client.clipboard.onPermissionChange((enabled) => { client.clipboard.onPermissionChange((enabled) => {

View File

@ -8,7 +8,7 @@ const vsFills = path.join(root, "packages/vscode/src/fill");
module.exports = merge( module.exports = merge(
require(path.join(root, "scripts/webpack.node.config.js"))({ require(path.join(root, "scripts/webpack.node.config.js"))({
typescriptCompilerOptions: { typescriptCompilerOptions: {
target: "es5", target: "es6",
}, },
}), { }), {
entry: path.join(root, "lib/vscode/src/bootstrap-fork.js"), entry: path.join(root, "lib/vscode/src/bootstrap-fork.js"),
@ -36,7 +36,7 @@ module.exports = merge(
loader: "ignore-loader", loader: "ignore-loader",
}], }],
}, { }, {
test: /((\\|\/)vs(\\|\/)code(\\|\/)electron-main(\\|\/))|((\\|\/)test(\\|\/))|(OSSREADME\.json$)|(\.(test\.ts|test\.js|d\.ts|qwoff|node|html|txt|exe|wuff|md|sh|scpt|less)$)/, test: /((\\|\/)vs(\\|\/)code(\\|\/)electron-main(\\|\/))|((\\|\/)test(\\|\/))|(OSSREADME\.json$)|\/browser\//,
use: [{ use: [{
loader: "ignore-loader", loader: "ignore-loader",
}], }],
@ -49,6 +49,8 @@ module.exports = merge(
"node-pty": path.resolve(fills, "empty.ts"), "node-pty": path.resolve(fills, "empty.ts"),
"windows-mutex": path.resolve(fills, "empty.ts"), "windows-mutex": path.resolve(fills, "empty.ts"),
"windows-process-tree": path.resolve(fills, "empty.ts"), "windows-process-tree": path.resolve(fills, "empty.ts"),
"vscode-windows-registry": path.resolve(fills, "empty.ts"),
"vscode-sqlite3": path.resolve(fills, "empty.ts"),
"vs/base/browser/browser": path.resolve(fills, "empty.ts"), "vs/base/browser/browser": path.resolve(fills, "empty.ts"),
"electron": path.join(vsFills, "stdioElectron.ts"), "electron": path.join(vsFills, "stdioElectron.ts"),
@ -57,9 +59,9 @@ module.exports = merge(
"native-watchdog": path.join(vsFills, "native-watchdog.ts"), "native-watchdog": path.join(vsFills, "native-watchdog.ts"),
"vs/base/common/amd": path.resolve(vsFills, "amd.ts"), "vs/base/common/amd": path.resolve(vsFills, "amd.ts"),
"vs/base/node/paths": path.resolve(vsFills, "paths.ts"), "vs/base/node/paths": path.resolve(vsFills, "paths.ts"),
"vs/platform/node/package": path.resolve(vsFills, "package.ts"), "vs/platform/product/node/package": path.resolve(vsFills, "package.ts"),
"vs/platform/node/product": path.resolve(vsFills, "product.ts"), "vs/platform/product/node/product": path.resolve(vsFills, "product.ts"),
"vs/platform/node/zip": path.resolve(vsFills, "zip.ts"), "vs/base/node/zip": path.resolve(vsFills, "zip.ts"),
"vs": path.resolve(root, "lib/vscode/src/vs"), "vs": path.resolve(root, "lib/vscode/src/vs"),
}, },
}, },

View File

@ -1,6 +1,6 @@
{ {
"name": "@coder/web", "name": "@coder/web",
"scripts": { "scripts": {
"build": "cross-env UV_THREADPOOL_SIZE=100 node --max-old-space-size=32384 ../../node_modules/webpack/bin/webpack.js --config ./webpack.config.js" "build": "../../node_modules/.bin/cross-env UV_THREADPOOL_SIZE=100 node --max-old-space-size=32384 ../../node_modules/webpack/bin/webpack.js --config ./webpack.config.js"
} }
} }

View File

@ -32,6 +32,7 @@ module.exports = merge(
"selenium-webdriver": path.join(fills, "empty.ts"), "selenium-webdriver": path.join(fills, "empty.ts"),
"vscode": path.join(fills, "empty.ts"), "vscode": path.join(fills, "empty.ts"),
"vscode-fsevents": path.join(fills, "empty.ts"), "vscode-fsevents": path.join(fills, "empty.ts"),
"vscode-windows-registry": path.resolve(fills, "empty.ts"),
"vsda": path.join(fills, "empty.ts"), "vsda": path.join(fills, "empty.ts"),
"windows-foreground-love": path.join(fills, "empty.ts"), "windows-foreground-love": path.join(fills, "empty.ts"),
"windows-mutex": path.join(fills, "empty.ts"), "windows-mutex": path.join(fills, "empty.ts"),
@ -66,11 +67,14 @@ module.exports = merge(
"native-watchdog": path.join(vsFills, "native-watchdog.ts"), "native-watchdog": path.join(vsFills, "native-watchdog.ts"),
"iconv-lite": path.join(vsFills, "iconv-lite.ts"), "iconv-lite": path.join(vsFills, "iconv-lite.ts"),
// This seems to be in the wrong place?
"vs/workbench/contrib/codeEditor/electron-browser/media/WordWrap_16x.svg": "vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/WordWrap_16x.svg",
"vs/base/node/paths": path.join(vsFills, "paths.ts"), "vs/base/node/paths": path.join(vsFills, "paths.ts"),
"vs/base/common/amd": path.join(vsFills, "amd.ts"), "vs/base/common/amd": path.join(vsFills, "amd.ts"),
"vs/platform/node/product": path.join(vsFills, "product.ts"), "vs/platform/product/node/package": path.resolve(vsFills, "package.ts"),
"vs/platform/node/package": path.join(vsFills, "package.ts"), "vs/platform/product/node/product": path.resolve(vsFills, "product.ts"),
"vs/platform/node/zip": path.resolve(vsFills, "zip.ts"), "vs/base/node/zip": path.resolve(vsFills, "zip.ts"),
"vs": path.join(root, "lib", "vscode", "src", "vs"), "vs": path.join(root, "lib", "vscode", "src", "vs"),
}, },
}, },

File diff suppressed because it is too large Load Diff