From b6411b1af12ab59a274a8e74a133d709a602fe98 Mon Sep 17 00:00:00 2001 From: Baptiste Augrain Date: Sat, 1 Jun 2024 18:31:12 +0200 Subject: [PATCH 01/12] feat(1.90): update patches and notarize macos (#1864) --- .github/workflows/insider-macos.yml | 7 +- .github/workflows/stable-macos.yml | 7 +- insider.json | 4 +- patches/brand.patch | 187 ++++++++++++++-------------- patches/fix-build-linux.patch | 6 +- patches/linux/reh-node16.patch | 18 +-- patches/report-issue.patch | 95 +++++++------- prepare_assets.sh | 48 ++++--- 8 files changed, 195 insertions(+), 177 deletions(-) diff --git a/.github/workflows/insider-macos.yml b/.github/workflows/insider-macos.yml index bfafb7b00a4..bf4676ca60d 100644 --- a/.github/workflows/insider-macos.yml +++ b/.github/workflows/insider-macos.yml @@ -84,9 +84,10 @@ jobs: - name: Prepare assets env: - CERTIFICATE_OSX_P12: ${{ secrets.CERTIFICATE_OSX_P12 }} - CERTIFICATE_OSX_PASSWORD: ${{ secrets.CERTIFICATE_OSX_PASSWORD }} - CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_ID }} + CERTIFICATE_OSX_APP_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_APP_PASSWORD }} + CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_NEW_ID }} + CERTIFICATE_OSX_P12_DATA: ${{ secrets.CERTIFICATE_OSX_NEW_P12_DATA }} + CERTIFICATE_OSX_P12_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_P12_PASSWORD }} run: ./prepare_assets.sh if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true') diff --git a/.github/workflows/stable-macos.yml b/.github/workflows/stable-macos.yml index 62be90cf362..b201fe0c270 100644 --- a/.github/workflows/stable-macos.yml +++ b/.github/workflows/stable-macos.yml @@ -83,9 +83,10 @@ jobs: - name: Prepare assets env: - CERTIFICATE_OSX_P12: ${{ secrets.CERTIFICATE_OSX_P12 }} - CERTIFICATE_OSX_PASSWORD: ${{ secrets.CERTIFICATE_OSX_PASSWORD }} - CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_ID }} + CERTIFICATE_OSX_APP_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_APP_PASSWORD }} + CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_NEW_ID }} + CERTIFICATE_OSX_P12_DATA: ${{ secrets.CERTIFICATE_OSX_NEW_P12_DATA }} + CERTIFICATE_OSX_P12_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_P12_PASSWORD }} run: ./prepare_assets.sh if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true') diff --git a/insider.json b/insider.json index b7f13d8b166..25c45e60079 100644 --- a/insider.json +++ b/insider.json @@ -1,4 +1,4 @@ { - "tag": "1.88.0", - "commit": "d994aede3529f4d1af9eeaeb234d32fd936243e7" + "tag": "1.90.0", + "commit": "ca688da9fb6dad00996cee7d5342490daa7bb1fb" } diff --git a/patches/brand.patch b/patches/brand.patch index e5dba5f61ae..3fd09cc31fe 100644 --- a/patches/brand.patch +++ b/patches/brand.patch @@ -62,7 +62,7 @@ index 1be4d0e..73a8f3e 100644 -export const redundantImplicitActivationEvent = l10n.t("This activation event can be removed as VS Code generates these automatically from your package.json contribution declarations."); +export const redundantImplicitActivationEvent = l10n.t("This activation event can be removed as VSCodium generates these automatically from your package.json contribution declarations."); diff --git a/extensions/extension-editing/src/extensionLinter.ts b/extensions/extension-editing/src/extensionLinter.ts -index 8bb2a46..7cee594 100644 +index dd1727e..6a5d304 100644 --- a/extensions/extension-editing/src/extensionLinter.ts +++ b/extensions/extension-editing/src/extensionLinter.ts @@ -34,4 +34,4 @@ const relativeUrlRequiresHttpsRepository = l10n.t("Relative image URLs require a @@ -354,7 +354,7 @@ index 6259b15..385797a 100644 + "comment": "The simpler (?<=\\bProcess\\.|\\bCommandLine\\.) breaks VSCodium / Atom, see https://github.com/textmate/swift.tmbundle/issues/29", "name": "support.variable.swift", diff --git a/extensions/typescript-language-features/package.nls.json b/extensions/typescript-language-features/package.nls.json -index e60451e..f2c6fe4 100644 +index 4f27690..6a09471 100644 --- a/extensions/typescript-language-features/package.nls.json +++ b/extensions/typescript-language-features/package.nls.json @@ -74,4 +74,4 @@ @@ -369,20 +369,24 @@ index e60451e..f2c6fe4 100644 - "typescript.updateImportsOnFileMove.enabled": "Enable/disable automatic updating of import paths when you rename or move a file in VS Code.", + "typescript.updateImportsOnFileMove.enabled": "Enable/disable automatic updating of import paths when you rename or move a file in VSCodium.", "typescript.updateImportsOnFileMove.enabled.prompt": "Prompt on each rename.", -@@ -164,3 +164,3 @@ +@@ -164,5 +164,5 @@ "typescript.suggest.enabled": "Enabled/disable autocomplete suggestions.", - "configuration.surveys.enabled": "Enabled/disable occasional surveys that help us improve VS Code's JavaScript and TypeScript support.", + "configuration.surveys.enabled": "Enabled/disable occasional surveys that help us improve VSCodium's JavaScript and TypeScript support.", "configuration.suggest.completeJSDocs": "Enable/disable suggestion to complete JSDoc comments.", -@@ -217,5 +217,5 @@ +- "configuration.tsserver.useVsCodeWatcher": "Use VS Code's file watchers instead of TypeScript's. Requires using TypeScript 5.4+ in the workspace.", ++ "configuration.tsserver.useVsCodeWatcher": "Use VSCodium's file watchers instead of TypeScript's. Requires using TypeScript 5.4+ in the workspace.", + "configuration.tsserver.watchOptions": "Configure which watching strategies should be used to keep track of files and directories.", +@@ -217,6 +217,6 @@ "configuration.suggest.objectLiteralMethodSnippets.enabled": "Enable/disable snippet completions for methods in object literals.", - "configuration.tsserver.web.projectWideIntellisense.enabled": "Enable/disable project-wide IntelliSense on web. Requires that VS Code is running in a trusted context.", + "configuration.tsserver.web.projectWideIntellisense.enabled": "Enable/disable project-wide IntelliSense on web. Requires that VSCodium is running in a trusted context.", - "configuration.tsserver.web.projectWideIntellisense.suppressSemanticErrors": "Suppresses semantic errors. This is needed when using external packages as these can't be included analyzed on web.", + "configuration.tsserver.web.projectWideIntellisense.suppressSemanticErrors": "Suppresses semantic errors on web even when project wide IntelliSense is enabled. This is always on when project wide IntelliSense is not enabled or available. See `#typescript.tsserver.web.projectWideIntellisense.enabled#`", + "configuration.tsserver.web.typeAcquisition.enabled": "Enable/disable package acquisition on the web. This enables IntelliSense for imported packages. Requires `#typescript.tsserver.web.projectWideIntellisense.enabled#`. Currently not supported for Safari.", - "configuration.tsserver.nodePath": "Run TS Server on a custom Node installation. This can be a path to a Node executable, or 'node' if you want VS Code to detect a Node installation.", + "configuration.tsserver.nodePath": "Run TS Server on a custom Node installation. This can be a path to a Node executable, or 'node' if you want VSCodium to detect a Node installation.", - "configuration.experimental.tsserver.web.typeAcquisition.enabled": "Enable/disable package acquisition on the web.", -@@ -230,6 +230,6 @@ + "configuration.updateImportsOnPaste": "Automatically update imports when pasting code. Requires TypeScript 5.5+.", +@@ -231,6 +231,6 @@ "walkthroughs.nodejsWelcome.debugJsFile.title": "Run and Debug your JavaScript", - "walkthroughs.nodejsWelcome.debugJsFile.description": "Once you've installed Node.js, you can run JavaScript programs at a terminal by entering ``node your-file-name.js``\nAnother easy way to run Node.js programs is by using VS Code's debugger which lets you run your code, pause at different points, and help you understand what's going on step-by-step.\n[Start Debugging](command:javascript-walkthrough.commands.debugJsFile)", + "walkthroughs.nodejsWelcome.debugJsFile.description": "Once you've installed Node.js, you can run JavaScript programs at a terminal by entering ``node your-file-name.js``\nAnother easy way to run Node.js programs is by using VSCodium's debugger which lets you run your code, pause at different points, and help you understand what's going on step-by-step.\n[Start Debugging](command:javascript-walkthrough.commands.debugJsFile)", @@ -419,26 +423,26 @@ index 04f08a1..2b2b1bb 100644 + vscode.l10n.t("Please open a folder in VSCodium to use a TypeScript or JavaScript project")); return; diff --git a/extensions/typescript-language-features/src/typescriptServiceClient.ts b/extensions/typescript-language-features/src/typescriptServiceClient.ts -index 78a77f2..f72c027 100644 +index 24742f9..13011a5 100644 --- a/extensions/typescript-language-features/src/typescriptServiceClient.ts +++ b/extensions/typescript-language-features/src/typescriptServiceClient.ts -@@ -640,3 +640,3 @@ export default class TypeScriptServiceClient extends Disposable implements IType +@@ -639,3 +639,3 @@ export default class TypeScriptServiceClient extends Disposable implements IType prompt = vscode.window.showErrorMessage( - vscode.l10n.t("The JS/TS language service immediately crashed 5 times. The service will not be restarted.\nThis may be caused by a plugin contributed by one of these extensions: {0}.\nPlease try disabling these extensions before filing an issue against VS Code.", pluginExtensionList)); + vscode.l10n.t("The JS/TS language service immediately crashed 5 times. The service will not be restarted.\nThis may be caused by a plugin contributed by one of these extensions: {0}.\nPlease try disabling these extensions before filing an issue against VSCodium.", pluginExtensionList)); } else { -@@ -661,3 +661,3 @@ export default class TypeScriptServiceClient extends Disposable implements IType +@@ -660,3 +660,3 @@ export default class TypeScriptServiceClient extends Disposable implements IType prompt = vscode.window.showWarningMessage( - vscode.l10n.t("The JS/TS language service crashed 5 times in the last 5 Minutes.\nThis may be caused by a plugin contributed by one of these extensions: {0}\nPlease try disabling these extensions before filing an issue against VS Code.", pluginExtensionList)); + vscode.l10n.t("The JS/TS language service crashed 5 times in the last 5 Minutes.\nThis may be caused by a plugin contributed by one of these extensions: {0}\nPlease try disabling these extensions before filing an issue against VSCodium.", pluginExtensionList)); } else { -@@ -675,3 +675,3 @@ export default class TypeScriptServiceClient extends Disposable implements IType +@@ -674,3 +674,3 @@ export default class TypeScriptServiceClient extends Disposable implements IType prompt = vscode.window.showWarningMessage( - vscode.l10n.t("The JS/TS language service crashed.\nThis may be caused by a plugin contributed by one of these extensions: {0}.\nPlease try disabling these extensions before filing an issue against VS Code.", pluginExtensionList), reportIssueItem); + vscode.l10n.t("The JS/TS language service crashed.\nThis may be caused by a plugin contributed by one of these extensions: {0}.\nPlease try disabling these extensions before filing an issue against VSCodium.", pluginExtensionList), reportIssueItem); } else { diff --git a/extensions/vscode-api-tests/package.json b/extensions/vscode-api-tests/package.json -index 8c9bdfd..0370d95 100644 +index 868f7cf..d10e730 100644 --- a/extensions/vscode-api-tests/package.json +++ b/extensions/vscode-api-tests/package.json @@ -2,3 +2,3 @@ @@ -447,7 +451,7 @@ index 8c9bdfd..0370d95 100644 + "description": "API tests for VSCodium", "version": "0.0.1", diff --git a/extensions/vscode-colorize-tests/package.json b/extensions/vscode-colorize-tests/package.json -index eb72136..2a92671 100644 +index 159bd29..c65f5cc 100644 --- a/extensions/vscode-colorize-tests/package.json +++ b/extensions/vscode-colorize-tests/package.json @@ -2,3 +2,3 @@ @@ -473,7 +477,7 @@ index 6680753..48f66bb 100644 + "c": "broken highlighting in VSCodium", "t": "source.css.less meta.selector.less meta.group.less meta.property-value.less string.quoted.double.less", diff --git a/extensions/vscode-test-resolver/package.json b/extensions/vscode-test-resolver/package.json -index e538d43..45e4056 100644 +index 8ab2171..33fb9e0 100644 --- a/extensions/vscode-test-resolver/package.json +++ b/extensions/vscode-test-resolver/package.json @@ -2,3 +2,3 @@ @@ -516,7 +520,7 @@ index fa001b5..13abac2 100644 + throw Error(`Failed to download and unzip VSCodium ${quality} - ${commit}`); } diff --git a/src/vs/code/electron-main/app.ts b/src/vs/code/electron-main/app.ts -index 4417e6b..e43e115 100644 +index 46193cd..30a8d77 100644 --- a/src/vs/code/electron-main/app.ts +++ b/src/vs/code/electron-main/app.ts @@ -571,3 +571,3 @@ export class CodeApplication extends Disposable { @@ -524,15 +528,6 @@ index 4417e6b..e43e115 100644 - this.logService.debug('Starting VS Code'); + this.logService.debug('Starting VSCodium'); this.logService.debug(`from: ${this.environmentMainService.appRoot}`); -diff --git a/src/vs/code/electron-sandbox/issue/issueReporterService.ts b/src/vs/code/electron-sandbox/issue/issueReporterService.ts -index bfb1d01..a48311d 100644 ---- a/src/vs/code/electron-sandbox/issue/issueReporterService.ts -+++ b/src/vs/code/electron-sandbox/issue/issueReporterService.ts -@@ -810,3 +810,3 @@ export class IssueReporter extends Disposable { - hide(descriptionTextArea); -- reset(descriptionTitle, localize('handlesIssuesElsewhere', "This extension handles issues outside of VS Code")); -+ reset(descriptionTitle, localize('handlesIssuesElsewhere', "This extension handles issues outside of VSCodium")); - reset(descriptionSubtitle, localize('elsewhereDescription', "The '{0}' extension prefers to use an external issue reporter. To be taken to that issue reporting experience, click the button below.", selectedExtension.displayName)); diff --git a/src/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.ts b/src/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.ts index 7578cd6..3a8504b 100644 --- a/src/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.ts @@ -552,29 +547,29 @@ index 296245b..cf03674 100644 +export const ProductQualityContext = new RawContextKey('productQualityType', '', localize('productQualityType', "Quality type of VSCodium")); diff --git a/src/vs/platform/extensionManagement/node/extensionManagementService.ts b/src/vs/platform/extensionManagement/node/extensionManagementService.ts -index 53630b7..0e8fd04 100644 +index 2bcc19c..6c43d52 100644 --- a/src/vs/platform/extensionManagement/node/extensionManagementService.ts +++ b/src/vs/platform/extensionManagement/node/extensionManagementService.ts -@@ -152,3 +152,3 @@ export class ExtensionManagementService extends AbstractExtensionManagementServi +@@ -149,3 +149,3 @@ export class ExtensionManagementService extends AbstractExtensionManagementServi if (manifest.engines && manifest.engines.vscode && !isEngineValid(manifest.engines.vscode, this.productService.version, this.productService.date)) { - throw new Error(nls.localize('incompatible', "Unable to install extension '{0}' as it is not compatible with VS Code '{1}'.", extensionId, this.productService.version)); + throw new Error(nls.localize('incompatible', "Unable to install extension '{0}' as it is not compatible with VSCodium '{1}'.", extensionId, this.productService.version)); } -@@ -229,3 +229,3 @@ export class ExtensionManagementService extends AbstractExtensionManagementServi +@@ -226,3 +226,3 @@ export class ExtensionManagementService extends AbstractExtensionManagementServi } catch (e) { - throw new Error(nls.localize('removeError', "Error while removing the extension: {0}. Please Quit and Start VS Code before trying again.", toErrorMessage(e))); + throw new Error(nls.localize('removeError', "Error while removing the extension: {0}. Please Quit and Start VSCodium before trying again.", toErrorMessage(e))); } -@@ -1030,3 +1030,3 @@ class InstallVSIXTask extends InstallExtensionTask { - } catch (e) { -- throw new Error(nls.localize('restartCode', "Please restart VS Code before reinstalling {0}.", this.manifest.displayName || this.manifest.name)); -+ throw new Error(nls.localize('restartCode', "Please restart VSCodium before reinstalling {0}.", this.manifest.displayName || this.manifest.name)); - } -@@ -1043,3 +1043,3 @@ class InstallVSIXTask extends InstallExtensionTask { - } catch (e) { -- throw new Error(nls.localize('restartCode', "Please restart VS Code before reinstalling {0}.", this.manifest.displayName || this.manifest.name)); -+ throw new Error(nls.localize('restartCode', "Please restart VSCodium before reinstalling {0}.", this.manifest.displayName || this.manifest.name)); - } +@@ -942,3 +942,3 @@ class InstallExtensionInProfileTask extends AbstractExtensionTask v instanceof TestItemImpl, extHostTypeConverter.TestItem.from); diff --git a/src/vs/workbench/api/test/browser/extHostNotebook.test.ts b/src/vs/workbench/api/test/browser/extHostNotebook.test.ts -index 806a6b6..3ea5aa5 100644 +index 5a7ed7e..e5a8047 100644 --- a/src/vs/workbench/api/test/browser/extHostNotebook.test.ts +++ b/src/vs/workbench/api/test/browser/extHostNotebook.test.ts @@ -362,3 +362,3 @@ suite('NotebookCell#Document', function () { @@ -673,10 +668,10 @@ index 806a6b6..3ea5aa5 100644 + test('Opening a notebook results in VSCodium firing the event onDidChangeActiveNotebookEditor twice #118470', function () { let count = 0; diff --git a/src/vs/workbench/browser/workbench.contribution.ts b/src/vs/workbench/browser/workbench.contribution.ts -index 4824d6c..e3edd5b 100644 +index 8494c96..63f6ec3 100644 --- a/src/vs/workbench/browser/workbench.contribution.ts +++ b/src/vs/workbench/browser/workbench.contribution.ts -@@ -640,3 +640,3 @@ const registry = Registry.as(ConfigurationExtensions.Con +@@ -645,3 +645,3 @@ const registry = Registry.as(ConfigurationExtensions.Con localize('profileName', "`${profileName}`: name of the profile in which the workspace is opened (e.g. Data Science (Profile)). Ignored if default profile is used."), - localize('appName', "`${appName}`: e.g. VS Code."), + localize('appName', "`${appName}`: e.g. VSCodium."), @@ -691,81 +686,81 @@ index 4233162..9bd6599 100644 + description: nls.localize('debugServer', "For debug extension development only: if a port is specified VSCodium tries to connect to a debug adapter running in server mode"), default: 4711 diff --git a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts b/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts -index b38717d..dc91d34 100644 +index 0ff4dca..a0b1776 100644 --- a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts +++ b/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts -@@ -302,3 +302,3 @@ CommandsRegistry.registerCommand({ +@@ -303,3 +303,3 @@ CommandsRegistry.registerCommand({ description: '(optional) Options for installing the extension. Object with the following properties: ' + - '`installOnlyNewlyAddedFromExtensionPackVSIX`: When enabled, VS Code installs only newly added extensions from the extension pack VSIX. This option is considered only when installing VSIX. ', + '`installOnlyNewlyAddedFromExtensionPackVSIX`: When enabled, VSCodium installs only newly added extensions from the extension pack VSIX. This option is considered only when installing VSIX. ', isOptional: true, -@@ -309,3 +309,3 @@ CommandsRegistry.registerCommand({ +@@ -310,3 +310,3 @@ CommandsRegistry.registerCommand({ 'type': 'boolean', - 'description': localize('workbench.extensions.installExtension.option.installOnlyNewlyAddedFromExtensionPackVSIX', "When enabled, VS Code installs only newly added extensions from the extension pack VSIX. This option is considered only while installing a VSIX."), + 'description': localize('workbench.extensions.installExtension.option.installOnlyNewlyAddedFromExtensionPackVSIX', "When enabled, VSCodium installs only newly added extensions from the extension pack VSIX. This option is considered only while installing a VSIX."), default: false -@@ -314,3 +314,3 @@ CommandsRegistry.registerCommand({ +@@ -315,3 +315,3 @@ CommandsRegistry.registerCommand({ 'type': 'boolean', - 'description': localize('workbench.extensions.installExtension.option.installPreReleaseVersion', "When enabled, VS Code installs the pre-release version of the extension if available."), + 'description': localize('workbench.extensions.installExtension.option.installPreReleaseVersion', "When enabled, VSCodium installs the pre-release version of the extension if available."), default: false -@@ -319,3 +319,3 @@ CommandsRegistry.registerCommand({ +@@ -320,3 +320,3 @@ CommandsRegistry.registerCommand({ 'type': 'boolean', - 'description': localize('workbench.extensions.installExtension.option.donotSync', "When enabled, VS Code do not sync this extension when Settings Sync is on."), + 'description': localize('workbench.extensions.installExtension.option.donotSync', "When enabled, VSCodium do not sync this extension when Settings Sync is on."), default: false -@@ -865,3 +865,3 @@ class ExtensionsContributions extends Disposable implements IWorkbenchContributi +@@ -866,3 +866,3 @@ class ExtensionsContributions extends Disposable implements IWorkbenchContributi const requireReload = !(extension.local && extensionService.canAddExtension(toExtensionDescription(extension.local))); - const message = requireReload ? localize('InstallVSIXAction.successReload', "Completed installing {0} extension from VSIX. Please reload Visual Studio Code to enable it.", extension.displayName || extension.name) + const message = requireReload ? localize('InstallVSIXAction.successReload', "Completed installing {0} extension from VSIX. Please reload VSCodium to enable it.", extension.displayName || extension.name) : localize('InstallVSIXAction.success', "Completed installing {0} extension from VSIX.", extension.displayName || extension.name); diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts b/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts -index f514487..84574e2 100644 +index fc17420..0017062 100644 --- a/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts +++ b/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts -@@ -106,3 +106,3 @@ export class PromptExtensionInstallFailureAction extends Action { +@@ -105,3 +105,3 @@ export class PromptExtensionInstallFailureAction extends Action { if (this.error.name === ExtensionManagementErrorCode.Unsupported) { - const productName = isWeb ? localize('VS Code for Web', "{0} for the Web", this.productService.nameLong) : this.productService.nameLong; + const productName = isWeb ? localize('VSCodium for Web', "{0} for the Web", this.productService.nameLong) : this.productService.nameLong; const message = localize('cannot be installed', "The '{0}' extension is not available in {1}. Click 'More Information' to learn more.", this.extension.displayName || this.extension.identifier.id, productName); -@@ -387,3 +387,3 @@ export class InstallAction extends ExtensionAction { +@@ -386,3 +386,3 @@ export class InstallAction extends ExtensionAction { } else if (this.extension.deprecationInfo.settings) { - detail = localize('deprecated with alternate settings message', "This extension is deprecated as this functionality is now built-in to VS Code."); + detail = localize('deprecated with alternate settings message', "This extension is deprecated as this functionality is now built-in to VSCodium."); -@@ -775,3 +775,3 @@ export class UninstallAction extends ExtensionAction { +@@ -774,3 +774,3 @@ export class UninstallAction extends ExtensionAction { await this.extensionsWorkbenchService.uninstall(this.extension); - alert(localize('uninstallExtensionComplete', "Please reload Visual Studio Code to complete the uninstallation of the extension {0}.", this.extension.displayName)); + alert(localize('uninstallExtensionComplete', "Please reload VSCodium to complete the uninstallation of the extension {0}.", this.extension.displayName)); } catch (error) { -@@ -2381,3 +2381,3 @@ export class ExtensionStatusAction extends ExtensionAction { +@@ -2386,3 +2386,3 @@ export class ExtensionStatusAction extends ExtensionAction { const link = `[${localize('settings', "settings")}](${URI.parse(`command:workbench.action.openSettings?${encodeURIComponent(JSON.stringify([this.extension.deprecationInfo.settings.map(setting => `@id:${setting}`).join(' ')]))}`)})`; - this.updateStatus({ icon: warningIcon, message: new MarkdownString(localize('deprecated with alternate settings tooltip', "This extension is deprecated as this functionality is now built-in to VS Code. Configure these {0} to use this functionality.", link)) }, true); + this.updateStatus({ icon: warningIcon, message: new MarkdownString(localize('deprecated with alternate settings tooltip', "This extension is deprecated as this functionality is now built-in to VSCodium. Configure these {0} to use this functionality.", link)) }, true); } else { -@@ -2405,3 +2405,3 @@ export class ExtensionStatusAction extends ExtensionAction { +@@ -2410,3 +2410,3 @@ export class ExtensionStatusAction extends ExtensionAction { if (this.extensionManagementServerService.webExtensionManagementServer) { - const productName = localize('VS Code for Web', "{0} for the Web", this.productService.nameLong); + const productName = localize('VSCodium for Web', "{0} for the Web", this.productService.nameLong); const message = new MarkdownString(`${localize('not web tooltip', "The '{0}' extension is not available in {1}.", this.extension.displayName || this.extension.identifier.id, productName)} [${localize('learn why', "Learn Why")}](https://aka.ms/vscode-web-extensions-guide)`); -@@ -2682,3 +2682,3 @@ export class ReinstallAction extends Action { +@@ -2686,3 +2686,3 @@ export class ReinstallAction extends Action { const requireReload = !(extension.local && this.extensionService.canAddExtension(toExtensionDescription(extension.local))); - const message = requireReload ? localize('ReinstallAction.successReload', "Please reload Visual Studio Code to complete reinstalling the extension {0}.", extension.identifier.id) + const message = requireReload ? localize('ReinstallAction.successReload', "Please reload VSCodium to complete reinstalling the extension {0}.", extension.identifier.id) : localize('ReinstallAction.success', "Reinstalling the extension {0} is completed.", extension.identifier.id); diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts b/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts -index f3ef2fb..4301dcb 100644 +index 3eb8c7e..58eb9c9 100644 --- a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts +++ b/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts -@@ -405,3 +405,3 @@ export class Extension implements IExtension { +@@ -406,3 +406,3 @@ export class Extension implements IExtension { return Promise.resolve(`# ${this.displayName || this.name} -**Notice:** This extension is bundled with Visual Studio Code. It can be disabled but not uninstalled. +**Notice:** This extension is bundled with VSCodium. It can be disabled but not uninstalled. ## Features -@@ -443,3 +443,3 @@ ${this.description} +@@ -444,3 +444,3 @@ ${this.description} if (this.type === ExtensionType.System) { -- return Promise.resolve('Please check the [VS Code Release Notes](command:update.showCurrentReleaseNotes) for changes to the built-in extensions.'); -+ return Promise.resolve('Please check the [VSCodium Release Notes](command:update.showCurrentReleaseNotes) for changes to the built-in extensions.'); +- return Promise.resolve(`Please check the [VS Code Release Notes](command:${ShowCurrentReleaseNotesActionId}) for changes to the built-in extensions.`); ++ return Promise.resolve(`Please check the [VSCodium Release Notes](command:${ShowCurrentReleaseNotesActionId}) for changes to the built-in extensions.`); } diff --git a/src/vs/workbench/contrib/extensions/common/extensionsFileTemplate.ts b/src/vs/workbench/contrib/extensions/common/extensionsFileTemplate.ts index 3e8cd71..6142f61 100644 @@ -846,7 +841,7 @@ index b24d91f..a098a62 100644 + const message = await this.tasExperimentService?.getTreatment('CESSurveyMessage') ?? nls.localize('cesSurveyQuestion', 'Got a moment to help the VSCodium team? Please tell us about your experience with VSCodium so far.'); const button = await this.tasExperimentService?.getTreatment('CESSurveyButton') ?? nls.localize('giveFeedback', "Give Feedback"); diff --git a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts -index cd47379..9395987 100644 +index 0e9b787..0cb2d8c 100644 --- a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts +++ b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts @@ -3174,3 +3174,3 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer @@ -869,7 +864,7 @@ index 9cae427..bfb5063 100644 + description: nls.localize('JsonSchema.promptOnClose', 'Whether the user is prompted when VSCodium closes with a running background task.'), default: false diff --git a/src/vs/workbench/contrib/tasks/common/jsonSchema_v2.ts b/src/vs/workbench/contrib/tasks/common/jsonSchema_v2.ts -index 4d90798..38bd65b 100644 +index 658cb5f..70eac33 100644 --- a/src/vs/workbench/contrib/tasks/common/jsonSchema_v2.ts +++ b/src/vs/workbench/contrib/tasks/common/jsonSchema_v2.ts @@ -411,3 +411,3 @@ const taskConfiguration: IJSONSchema = { @@ -887,7 +882,7 @@ index 9efbc2a..18c7aec 100644 + message: nls.localize('TaskSystem.noProcess', 'The launched task doesn\'t exist anymore. If the task spawned background processes exiting VSCodium might result in orphaned processes. To avoid this start the last background process with a wait flag.'), primaryButton: nls.localize({ key: 'TaskSystem.exitAnyways', comment: ['&& denotes a mnemonic'] }, "&&Exit Anyways"), diff --git a/src/vs/workbench/contrib/terminal/browser/terminalView.ts b/src/vs/workbench/contrib/terminal/browser/terminalView.ts -index ea49f68..10acc6a 100644 +index 966c4ea..fe0fc91 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalView.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalView.ts @@ -201,3 +201,3 @@ export class TerminalViewPane extends ViewPane { @@ -896,56 +891,56 @@ index ea49f68..10acc6a 100644 + this._notificationService.prompt(Severity.Warning, nls.localize('terminal.monospaceOnly', "The terminal only supports monospace fonts. Be sure to restart VSCodium if this is a newly installed font."), choices); } diff --git a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts -index cb9ab6e..01af4ea 100644 +index 7704e72..1ce33b4 100644 --- a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts +++ b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts -@@ -286,3 +286,3 @@ const terminalConfiguration: IConfigurationNode = { +@@ -294,3 +294,3 @@ const terminalConfiguration: IConfigurationNode = { [TerminalSettingId.DetectLocale]: { - markdownDescription: localize('terminal.integrated.detectLocale', "Controls whether to detect and set the `$LANG` environment variable to a UTF-8 compliant option since VS Code's terminal only supports UTF-8 encoded data coming from the shell."), + markdownDescription: localize('terminal.integrated.detectLocale', "Controls whether to detect and set the `$LANG` environment variable to a UTF-8 compliant option since VSCodium's terminal only supports UTF-8 encoded data coming from the shell."), type: 'string', -@@ -300,3 +300,3 @@ const terminalConfiguration: IConfigurationNode = { +@@ -308,3 +308,3 @@ const terminalConfiguration: IConfigurationNode = { markdownEnumDescriptions: [ - localize('terminal.integrated.gpuAcceleration.auto', "Let VS Code detect which renderer will give the best experience."), + localize('terminal.integrated.gpuAcceleration.auto', "Let VSCodium detect which renderer will give the best experience."), localize('terminal.integrated.gpuAcceleration.on', "Enable GPU acceleration within the terminal."), -@@ -389,3 +389,3 @@ const terminalConfiguration: IConfigurationNode = { +@@ -396,3 +396,3 @@ const terminalConfiguration: IConfigurationNode = { 'terminal.integrated.commandsToSkipShell', - "A set of command IDs whose keybindings will not be sent to the shell but instead always be handled by VS Code. This allows keybindings that would normally be consumed by the shell to act instead the same as when the terminal is not focused, for example `Ctrl+P` to launch Quick Open.\n\n \n\nMany commands are skipped by default. To override a default and pass that command's keybinding to the shell instead, add the command prefixed with the `-` character. For example add `-workbench.action.quickOpen` to allow `Ctrl+P` to reach the shell.\n\n \n\nThe following list of default skipped commands is truncated when viewed in Settings Editor. To see the full list, {1} and search for the first command from the list below.\n\n \n\nDefault Skipped Commands:\n\n{0}", + "A set of command IDs whose keybindings will not be sent to the shell but instead always be handled by VSCodium. This allows keybindings that would normally be consumed by the shell to act instead the same as when the terminal is not focused, for example `Ctrl+P` to launch Quick Open.\n\n \n\nMany commands are skipped by default. To override a default and pass that command's keybinding to the shell instead, add the command prefixed with the `-` character. For example add `-workbench.action.quickOpen` to allow `Ctrl+P` to reach the shell.\n\n \n\nThe following list of default skipped commands is truncated when viewed in Settings Editor. To see the full list, {1} and search for the first command from the list below.\n\n \n\nDefault Skipped Commands:\n\n{0}", DEFAULT_COMMANDS_TO_SKIP_SHELL.sort().map(command => `- ${command}`).join('\n'), -@@ -401,3 +401,3 @@ const terminalConfiguration: IConfigurationNode = { +@@ -408,3 +408,3 @@ const terminalConfiguration: IConfigurationNode = { [TerminalSettingId.AllowChords]: { - markdownDescription: localize('terminal.integrated.allowChords', "Whether or not to allow chord keybindings in the terminal. Note that when this is true and the keystroke results in a chord it will bypass {0}, setting this to false is particularly useful when you want ctrl+k to go to your shell (not VS Code).", '`#terminal.integrated.commandsToSkipShell#`'), + markdownDescription: localize('terminal.integrated.allowChords', "Whether or not to allow chord keybindings in the terminal. Note that when this is true and the keystroke results in a chord it will bypass {0}, setting this to false is particularly useful when you want ctrl+k to go to your shell (not VSCodium).", '`#terminal.integrated.commandsToSkipShell#`'), type: 'boolean', -@@ -412,3 +412,3 @@ const terminalConfiguration: IConfigurationNode = { +@@ -419,3 +419,3 @@ const terminalConfiguration: IConfigurationNode = { restricted: true, - markdownDescription: localize('terminal.integrated.env.osx', "Object with environment variables that will be added to the VS Code process to be used by the terminal on macOS. Set to `null` to delete the environment variable."), + markdownDescription: localize('terminal.integrated.env.osx', "Object with environment variables that will be added to the VSCodium process to be used by the terminal on macOS. Set to `null` to delete the environment variable."), type: 'object', -@@ -421,3 +421,3 @@ const terminalConfiguration: IConfigurationNode = { +@@ -428,3 +428,3 @@ const terminalConfiguration: IConfigurationNode = { restricted: true, - markdownDescription: localize('terminal.integrated.env.linux', "Object with environment variables that will be added to the VS Code process to be used by the terminal on Linux. Set to `null` to delete the environment variable."), + markdownDescription: localize('terminal.integrated.env.linux', "Object with environment variables that will be added to the VSCodium process to be used by the terminal on Linux. Set to `null` to delete the environment variable."), type: 'object', -@@ -430,3 +430,3 @@ const terminalConfiguration: IConfigurationNode = { +@@ -437,3 +437,3 @@ const terminalConfiguration: IConfigurationNode = { restricted: true, - markdownDescription: localize('terminal.integrated.env.windows', "Object with environment variables that will be added to the VS Code process to be used by the terminal on Windows. Set to `null` to delete the environment variable."), + markdownDescription: localize('terminal.integrated.env.windows', "Object with environment variables that will be added to the VSCodium process to be used by the terminal on Windows. Set to `null` to delete the environment variable."), type: 'object', -@@ -593,3 +593,3 @@ const terminalConfiguration: IConfigurationNode = { +@@ -561,3 +561,3 @@ const terminalConfiguration: IConfigurationNode = { [TerminalSettingId.AutoReplies]: { - markdownDescription: localize('terminal.integrated.autoReplies', "A set of messages that, when encountered in the terminal, will be automatically responded to. Provided the message is specific enough, this can help automate away common responses.\n\nRemarks:\n\n- Use {0} to automatically respond to the terminate batch job prompt on Windows.\n- The message includes escape sequences so the reply might not happen with styled text.\n- Each reply can only happen once every second.\n- Use {1} in the reply to mean the enter key.\n- To unset a default key, set the value to null.\n- Restart VS Code if new don't apply.", '`"Terminate batch job (Y/N)": "Y\\r"`', '`"\\r"`'), + markdownDescription: localize('terminal.integrated.autoReplies', "A set of messages that, when encountered in the terminal, will be automatically responded to. Provided the message is specific enough, this can help automate away common responses.\n\nRemarks:\n\n- Use {0} to automatically respond to the terminate batch job prompt on Windows.\n- The message includes escape sequences so the reply might not happen with styled text.\n- Each reply can only happen once every second.\n- Use {1} in the reply to mean the enter key.\n- To unset a default key, set the value to null.\n- Restart VSCodium if new don't apply.", '`"Terminate batch job (Y/N)": "Y\\r"`', '`"\\r"`'), type: 'object', -@@ -606,3 +606,3 @@ const terminalConfiguration: IConfigurationNode = { +@@ -574,3 +574,3 @@ const terminalConfiguration: IConfigurationNode = { restricted: true, - markdownDescription: localize('terminal.integrated.shellIntegration.enabled', "Determines whether or not shell integration is auto-injected to support features like enhanced command tracking and current working directory detection. \n\nShell integration works by injecting the shell with a startup script. The script gives VS Code insight into what is happening within the terminal.\n\nSupported shells:\n\n- Linux/macOS: bash, fish, pwsh, zsh\n - Windows: pwsh, git bash\n\nThis setting applies only when terminals are created, so you will need to restart your terminals for it to take effect.\n\n Note that the script injection may not work if you have custom arguments defined in the terminal profile, have enabled {1}, have a [complex bash `PROMPT_COMMAND`](https://code.visualstudio.com/docs/editor/integrated-terminal#_complex-bash-promptcommand), or other unsupported setup. To disable decorations, see {0}", '`#terminal.integrated.shellIntegrations.decorationsEnabled#`', '`#editor.accessibilitySupport#`'), + markdownDescription: localize('terminal.integrated.shellIntegration.enabled', "Determines whether or not shell integration is auto-injected to support features like enhanced command tracking and current working directory detection. \n\nShell integration works by injecting the shell with a startup script. The script gives VSCodium insight into what is happening within the terminal.\n\nSupported shells:\n\n- Linux/macOS: bash, fish, pwsh, zsh\n - Windows: pwsh, git bash\n\nThis setting applies only when terminals are created, so you will need to restart your terminals for it to take effect.\n\n Note that the script injection may not work if you have custom arguments defined in the terminal profile, have enabled {1}, have a [complex bash `PROMPT_COMMAND`](https://code.visualstudio.com/docs/editor/integrated-terminal#_complex-bash-promptcommand), or other unsupported setup. To disable decorations, see {0}", '`#terminal.integrated.shellIntegrations.decorationsEnabled#`', '`#editor.accessibilitySupport#`'), type: 'boolean', diff --git a/src/vs/workbench/contrib/themes/browser/themes.contribution.ts b/src/vs/workbench/contrib/themes/browser/themes.contribution.ts -index 24293e2..e21ac83 100644 +index def265b..2959766 100644 --- a/src/vs/workbench/contrib/themes/browser/themes.contribution.ts +++ b/src/vs/workbench/contrib/themes/browser/themes.contribution.ts @@ -922,3 +922,3 @@ class DefaultThemeUpdatedNotificationContribution implements IWorkbenchContribut @@ -975,7 +970,7 @@ index af1b3d5..7b06e7a 100644 + detail: nls.localize('selectSyncService.detail', "The Insiders version of VSCodium will synchronize your settings, keybindings, extensions, snippets and UI State using separate insiders settings sync service by default."), buttons: [ diff --git a/src/vs/workbench/contrib/url/browser/trustedDomainsFileSystemProvider.ts b/src/vs/workbench/contrib/url/browser/trustedDomainsFileSystemProvider.ts -index c5c2258..fb5045b 100644 +index 62ab7f3..9ce0651 100644 --- a/src/vs/workbench/contrib/url/browser/trustedDomainsFileSystemProvider.ts +++ b/src/vs/workbench/contrib/url/browser/trustedDomainsFileSystemProvider.ts @@ -55,3 +55,3 @@ function computeTrustedDomainContent(defaultTrustedDomains: string[], trustedDom @@ -989,10 +984,10 @@ index c5c2258..fb5045b 100644 + content += `// By default, VSCodium trusts "localhost".\n`; } diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts -index c957f53..77c3717 100644 +index c581ac0..2be335c 100644 --- a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts +++ b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts -@@ -324,3 +324,3 @@ configurationRegistry.registerConfiguration({ +@@ -325,3 +325,3 @@ configurationRegistry.registerConfiguration({ localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'workbench.startupEditor.none' }, "Start without an editor."), - localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'workbench.startupEditor.welcomePage' }, "Open the Welcome page, with content to aid in getting started with VS Code and extensions."), + localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'workbench.startupEditor.welcomePage' }, "Open the Welcome page, with content to aid in getting started with VSCodium and extensions."), @@ -1114,30 +1109,30 @@ index 541f119..64f3b80 100644 + markdownDescription: localize('workspace.trust.emptyWindow.description', "Controls whether or not the empty window is trusted by default within VSCodium. When used with `#{0}#`, you can enable the full functionality of VSCodium without prompting in an empty window.", WORKSPACE_TRUST_UNTRUSTED_FILES), tags: [WORKSPACE_TRUST_SETTING_TAG], diff --git a/src/vs/workbench/electron-sandbox/desktop.contribution.ts b/src/vs/workbench/electron-sandbox/desktop.contribution.ts -index ff0aeec..23d9fcb 100644 +index e1519b9..4c0d94f 100644 --- a/src/vs/workbench/electron-sandbox/desktop.contribution.ts +++ b/src/vs/workbench/electron-sandbox/desktop.contribution.ts -@@ -387,3 +387,3 @@ import { MAX_ZOOM_LEVEL, MIN_ZOOM_LEVEL } from 'vs/platform/window/electron-sand +@@ -391,3 +391,3 @@ import { MAX_ZOOM_LEVEL, MIN_ZOOM_LEVEL } from 'vs/platform/window/electron-sand type: 'boolean', - description: localize('argv.disableChromiumSandbox', "Disables the Chromium sandbox. This is useful when running VS Code as elevated on Linux and running under Applocker on Windows.") + description: localize('argv.disableChromiumSandbox', "Disables the Chromium sandbox. This is useful when running VSCodium as elevated on Linux and running under Applocker on Windows.") }, -@@ -391,3 +391,3 @@ import { MAX_ZOOM_LEVEL, MIN_ZOOM_LEVEL } from 'vs/platform/window/electron-sand +@@ -395,3 +395,3 @@ import { MAX_ZOOM_LEVEL, MIN_ZOOM_LEVEL } from 'vs/platform/window/electron-sand type: 'boolean', - description: localize('argv.useInMemorySecretStorage', "Ensures that an in-memory store will be used for secret storage instead of using the OS's credential store. This is often used when running VS Code extension tests or when you're experiencing difficulties with the credential store.") + description: localize('argv.useInMemorySecretStorage', "Ensures that an in-memory store will be used for secret storage instead of using the OS's credential store. This is often used when running VSCodium extension tests or when you're experiencing difficulties with the credential store.") } diff --git a/src/vs/workbench/services/extensionManagement/common/extensionManagementService.ts b/src/vs/workbench/services/extensionManagement/common/extensionManagementService.ts -index 8e69418..f6b7355 100644 +index 7e4bc40..f6a1272 100644 --- a/src/vs/workbench/services/extensionManagement/common/extensionManagementService.ts +++ b/src/vs/workbench/services/extensionManagement/common/extensionManagementService.ts -@@ -678,3 +678,3 @@ export class ExtensionManagementService extends Disposable implements IWorkbench +@@ -711,3 +711,3 @@ export class ExtensionManagementService extends Disposable implements IWorkbench - const productName = localize('VS Code for Web', "{0} for the Web", this.productService.nameLong); + const productName = localize('VSCodium for Web', "{0} for the Web", this.productService.nameLong); const virtualWorkspaceSupport = this.extensionManifestPropertiesService.getExtensionVirtualWorkspaceSupportType(manifest); diff --git a/src/vs/workbench/services/extensions/browser/extensionUrlHandler.ts b/src/vs/workbench/services/extensions/browser/extensionUrlHandler.ts -index 65672a1..062933d 100644 +index 696f822..f548e73 100644 --- a/src/vs/workbench/services/extensions/browser/extensionUrlHandler.ts +++ b/src/vs/workbench/services/extensions/browser/extensionUrlHandler.ts @@ -86,3 +86,3 @@ type ExtensionUrlHandlerClassification = { @@ -1146,30 +1141,30 @@ index 65672a1..062933d 100644 + comment: 'This is used to understand the drop funnel of extension URI handling by the OS & VSCodium.'; }; diff --git a/src/vs/workbench/services/extensions/common/extensionsRegistry.ts b/src/vs/workbench/services/extensions/common/extensionsRegistry.ts -index ed8bae3..863e6dd 100644 +index f39fd30..4dbc5ce 100644 --- a/src/vs/workbench/services/extensions/common/extensionsRegistry.ts +++ b/src/vs/workbench/services/extensions/common/extensionsRegistry.ts -@@ -171,3 +171,3 @@ export const schema: IJSONSchema = { +@@ -178,3 +178,3 @@ export const schema: IJSONSchema = { type: 'string', - description: nls.localize('vscode.extension.engines.vscode', 'For VS Code extensions, specifies the VS Code version that the extension is compatible with. Cannot be *. For example: ^0.10.5 indicates compatibility with a minimum VS Code version of 0.10.5.'), + description: nls.localize('vscode.extension.engines.vscode', 'For VSCodium extensions, specifies the VSCodium version that the extension is compatible with. Cannot be *. For example: ^0.10.5 indicates compatibility with a minimum VSCodium version of 0.10.5.'), default: '^1.22.0', -@@ -177,3 +177,3 @@ export const schema: IJSONSchema = { +@@ -184,3 +184,3 @@ export const schema: IJSONSchema = { publisher: { - description: nls.localize('vscode.extension.publisher', 'The publisher of the VS Code extension.'), + description: nls.localize('vscode.extension.publisher', 'The publisher of the VSCodium extension.'), type: 'string' -@@ -181,3 +181,3 @@ export const schema: IJSONSchema = { +@@ -188,3 +188,3 @@ export const schema: IJSONSchema = { displayName: { - description: nls.localize('vscode.extension.displayName', 'The display name for the extension used in the VS Code gallery.'), + description: nls.localize('vscode.extension.displayName', 'The display name for the extension used in the VSCodium gallery.'), type: 'string' -@@ -185,3 +185,3 @@ export const schema: IJSONSchema = { +@@ -192,3 +192,3 @@ export const schema: IJSONSchema = { categories: { - description: nls.localize('vscode.extension.categories', 'The categories used by the VS Code gallery to categorize the extension.'), + description: nls.localize('vscode.extension.categories', 'The categories used by the VSCodium gallery to categorize the extension.'), type: 'array', -@@ -202,6 +202,6 @@ export const schema: IJSONSchema = { +@@ -209,6 +209,6 @@ export const schema: IJSONSchema = { type: 'object', - description: nls.localize('vscode.extension.galleryBanner', 'Banner used in the VS Code marketplace.'), + description: nls.localize('vscode.extension.galleryBanner', 'Banner used in the VSCodium marketplace.'), @@ -1178,27 +1173,27 @@ index ed8bae3..863e6dd 100644 - description: nls.localize('vscode.extension.galleryBanner.color', 'The banner color on the VS Code marketplace page header.'), + description: nls.localize('vscode.extension.galleryBanner.color', 'The banner color on the VSCodium marketplace page header.'), type: 'string' -@@ -216,3 +216,3 @@ export const schema: IJSONSchema = { +@@ -223,3 +223,3 @@ export const schema: IJSONSchema = { contributes: { - description: nls.localize('vscode.extension.contributes', 'All contributions of the VS Code extension represented by this package.'), + description: nls.localize('vscode.extension.contributes', 'All contributions of the VSCodium extension represented by this package.'), type: 'object', -@@ -250,3 +250,3 @@ export const schema: IJSONSchema = { +@@ -257,3 +257,3 @@ export const schema: IJSONSchema = { activationEvents: { - description: nls.localize('vscode.extension.activationEvents', 'Activation events for the VS Code extension.'), + description: nls.localize('vscode.extension.activationEvents', 'Activation events for the VSCodium extension.'), type: 'array', -@@ -382,3 +382,3 @@ export const schema: IJSONSchema = { +@@ -389,3 +389,3 @@ export const schema: IJSONSchema = { label: '*', - description: nls.localize('vscode.extension.activationEvents.star', 'An activation event emitted on VS Code startup. To ensure a great end user experience, please use this activation event in your extension only when no other activation events combination works in your use-case.'), + description: nls.localize('vscode.extension.activationEvents.star', 'An activation event emitted on VSCodium startup. To ensure a great end user experience, please use this activation event in your extension only when no other activation events combination works in your use-case.'), body: '*' -@@ -554,3 +554,3 @@ export const schema: IJSONSchema = { +@@ -561,3 +561,3 @@ export const schema: IJSONSchema = { 'vscode:prepublish': { - description: nls.localize('vscode.extension.scripts.prepublish', 'Script executed before the package is published as a VS Code extension.'), + description: nls.localize('vscode.extension.scripts.prepublish', 'Script executed before the package is published as a VSCodium extension.'), type: 'string' -@@ -558,3 +558,3 @@ export const schema: IJSONSchema = { +@@ -565,3 +565,3 @@ export const schema: IJSONSchema = { 'vscode:uninstall': { - description: nls.localize('vscode.extension.scripts.uninstall', 'Uninstall hook for VS Code extension. Script that gets executed when the extension is completely uninstalled from VS Code which is when VS Code is restarted (shutdown and start) after the extension is uninstalled. Only Node scripts are supported.'), + description: nls.localize('vscode.extension.scripts.uninstall', 'Uninstall hook for VSCodium extension. Script that gets executed when the extension is completely uninstalled from VSCodium which is when VSCodium is restarted (shutdown and start) after the extension is uninstalled. Only Node scripts are supported.'), diff --git a/patches/fix-build-linux.patch b/patches/fix-build-linux.patch index c10af2eb7b6..d067077fb8f 100644 --- a/patches/fix-build-linux.patch +++ b/patches/fix-build-linux.patch @@ -19,21 +19,21 @@ index 8c2b62f..843e8d4 100644 + const buildRpmTask = task.define(`vscode-linux-${arch}-build-rpm`, task.series(prepareRpmTask, buildRpmPackage(arch))); gulp.task(buildRpmTask); diff --git a/build/linux/dependencies-generator.js b/build/linux/dependencies-generator.js -index 80c247d..40f1df2 100644 +index bff0c9a..57c12e0 100644 --- a/build/linux/dependencies-generator.js +++ b/build/linux/dependencies-generator.js @@ -24,3 +24,3 @@ const product = require("../../product.json"); // are valid, are in dep-lists.ts -const FAIL_BUILD_FOR_NEW_DEPENDENCIES = true; +const FAIL_BUILD_FOR_NEW_DEPENDENCIES = false; - // Based on https://source.chromium.org/chromium/chromium/src/+/refs/tags/120.0.6099.268:chrome/installer/linux/BUILD.gn;l=64-80 + // Based on https://source.chromium.org/chromium/chromium/src/+/refs/tags/122.0.6261.156:chrome/installer/linux/BUILD.gn;l=64-80 @@ -56,3 +56,3 @@ async function getDependencies(packageType, buildDir, applicationName, arch) { // Add the tunnel binary. - files.push(path.join(buildDir, 'bin', product.tunnelApplicationName)); + // files.push(path.join(buildDir, 'bin', product.tunnelApplicationName)); // Add the main executable. diff --git a/build/linux/dependencies-generator.ts b/build/linux/dependencies-generator.ts -index 9f1a068..48e3d52 100644 +index 226310e..e75f652 100644 --- a/build/linux/dependencies-generator.ts +++ b/build/linux/dependencies-generator.ts @@ -25,3 +25,3 @@ import product = require('../../product.json'); diff --git a/patches/linux/reh-node16.patch b/patches/linux/reh-node16.patch index a0deb7b25f4..151c2cdfaa0 100644 --- a/patches/linux/reh-node16.patch +++ b/patches/linux/reh-node16.patch @@ -20,28 +20,28 @@ index c2b81d0..2e94d99 100644 - return result.pipe(vfs.dest(destination)); diff --git a/remote/.yarnrc b/remote/.yarnrc -index 4e7208c..f7304bc 100644 +index 4c99388..71a7164 100644 --- a/remote/.yarnrc +++ b/remote/.yarnrc @@ -1,3 +1,3 @@ disturl "https://nodejs.org/dist" --target "18.18.2" +-target "20.11.1" +target "16.20.2" - ms_build_id "256117" + ms_build_id "275039" diff --git a/remote/package.json b/remote/package.json -index 974450e..513856f 100644 +index b84f513..42d8e41 100644 --- a/remote/package.json +++ b/remote/package.json @@ -31,3 +31,3 @@ "native-watchdog": "^1.4.1", - "node-pty": "1.1.0-beta11", + "node-pty": "1.1.0-beta4", - "tas-client-umd": "0.1.8", + "tas-client-umd": "0.2.0", diff --git a/remote/yarn.lock b/remote/yarn.lock -index d62eb4b..f175b85 100644 +index 4241bf0..5ce4431 100644 --- a/remote/yarn.lock +++ b/remote/yarn.lock -@@ -391,2 +391,7 @@ ms@2.1.2: +@@ -412,2 +412,7 @@ ms@2.1.2: +nan@^2.17.0: + version "2.18.0" @@ -49,12 +49,12 @@ index d62eb4b..f175b85 100644 + integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w== + napi-build-utils@^1.0.1: -@@ -408,3 +413,3 @@ node-abi@^3.3.0: +@@ -429,3 +434,3 @@ node-abi@^3.3.0: -node-addon-api@7.1.0, node-addon-api@^7.1.0: +node-addon-api@7.1.0: version "7.1.0" -@@ -433,8 +438,8 @@ node-gyp-build@^4.3.0: +@@ -454,8 +459,8 @@ node-gyp-build@4.8.1, node-gyp-build@^4.3.0: -node-pty@1.1.0-beta11: - version "1.1.0-beta11" diff --git a/patches/report-issue.patch b/patches/report-issue.patch index 79a0c584a1d..c970e56b54b 100644 --- a/patches/report-issue.patch +++ b/patches/report-issue.patch @@ -1,39 +1,25 @@ -diff --git a/src/vs/code/electron-sandbox/issue/issueReporterModel.ts b/src/vs/code/electron-sandbox/issue/issueReporterModel.ts -index 74f9939..341ef06 100644 ---- a/src/vs/code/electron-sandbox/issue/issueReporterModel.ts -+++ b/src/vs/code/electron-sandbox/issue/issueReporterModel.ts -@@ -79,3 +79,3 @@ ${this._data.issueDescription} - ${this.getExtensionVersion()} --VS Code version: ${this._data.versionInfo && this._data.versionInfo.vscodeVersion} -+VSCodium version: ${this._data.versionInfo && this._data.versionInfo.vscodeVersion} - OS version: ${this._data.versionInfo && this._data.versionInfo.os} -diff --git a/src/vs/code/electron-sandbox/issue/issueReporterPage.ts b/src/vs/code/electron-sandbox/issue/issueReporterPage.ts -index 96ec5f7..5c091d9 100644 ---- a/src/vs/code/electron-sandbox/issue/issueReporterPage.ts -+++ b/src/vs/code/electron-sandbox/issue/issueReporterPage.ts -@@ -18,3 +18,3 @@ const reviewGuidanceLabel = localize( // intentionally not escaped because of it - comment: [ -- '{Locked=""}', -+ '{Locked=""}', - '{Locked=""}' -@@ -22,3 +22,3 @@ const reviewGuidanceLabel = localize( // intentionally not escaped because of it - }, -- 'Before you report an issue here please review the guidance we provide.' -+ 'Before you report an issue here please review the guidance we provide.' - ); -diff --git a/src/vs/code/electron-sandbox/issue/issueReporterService.ts b/src/vs/code/electron-sandbox/issue/issueReporterService.ts -index d7f98f6..ed54042 100644 ---- a/src/vs/code/electron-sandbox/issue/issueReporterService.ts -+++ b/src/vs/code/electron-sandbox/issue/issueReporterService.ts -@@ -517,5 +517,5 @@ export class IssueReporter extends Disposable { +diff --git a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts b/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts +index 87839a6..49727fc 100644 +--- a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts ++++ b/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts +@@ -153,3 +153,3 @@ class ReportExtensionSlowAction extends Action { + - OS Version: \`${osVersion}\` +-- VS Code version: \`${this._productService.version}\`\n\n${message}`); ++- VSCodium version: \`${this._productService.version}\`\n\n${message}`); + +diff --git a/src/vs/workbench/contrib/issue/browser/issue.ts b/src/vs/workbench/contrib/issue/browser/issue.ts +index 79e4485..33f09a4 100644 +--- a/src/vs/workbench/contrib/issue/browser/issue.ts ++++ b/src/vs/workbench/contrib/issue/browser/issue.ts +@@ -451,5 +451,5 @@ export class BaseIssueReporterService extends Disposable { -- private searchVSCodeIssues(title: string, issueDescription?: string): void { -+ private searchVSCodeIssues(title: string, _issueDescription?: string): void { +- public searchVSCodeIssues(title: string, issueDescription?: string): void { ++ public searchVSCodeIssues(title: string, _issueDescription?: string): void { if (title) { - this.searchDuplicates(title, issueDescription); + this.searchGitHub('VSCodium/vscodium', title); } else { -@@ -611,33 +611,2 @@ export class IssueReporter extends Disposable { +@@ -545,33 +545,2 @@ export class BaseIssueReporterService extends Disposable { - @debounce(300) - private searchDuplicates(title: string, body?: string): void { @@ -67,17 +53,38 @@ index d7f98f6..ed54042 100644 - } - private displaySearchResults(results: SearchResult[]) { -@@ -729,3 +698,3 @@ export class IssueReporter extends Disposable { +@@ -667,4 +636,4 @@ export class BaseIssueReporterService extends Disposable { sourceSelect.append(this.makeOption('', localize('selectSource', "Select source"), true)); -- sourceSelect.append(this.makeOption('vscode', localize('vscode', "Visual Studio Code"), false)); -+ sourceSelect.append(this.makeOption('vscode', localize('vscode', "VSCodium"), false)); - sourceSelect.append(this.makeOption('extension', localize('extension', "An extension"), false)); -diff --git a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts b/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts -index 87839a6..49727fc 100644 ---- a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts -+++ b/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts -@@ -153,3 +153,3 @@ class ReportExtensionSlowAction extends Action { - - OS Version: \`${osVersion}\` --- VS Code version: \`${this._productService.version}\`\n\n${message}`); -+- VSCodium version: \`${this._productService.version}\`\n\n${message}`); - +- sourceSelect.append(this.makeOption(IssueSource.VSCode, localize('vscode', "Visual Studio Code"), false)); +- sourceSelect.append(this.makeOption(IssueSource.Extension, localize('extension', "A VS Code extension"), false)); ++ sourceSelect.append(this.makeOption(IssueSource.VSCode, localize('vscode', "VSCodium"), false)); ++ sourceSelect.append(this.makeOption(IssueSource.Extension, localize('extension', "A VSCodium extension"), false)); + if (this.product.reportMarketplaceIssueUrl) { +@@ -728,3 +697,3 @@ export class BaseIssueReporterService extends Disposable { + hide(descriptionTextArea); +- reset(descriptionTitle, localize('handlesIssuesElsewhere', "This extension handles issues outside of VS Code")); ++ reset(descriptionTitle, localize('handlesIssuesElsewhere', "This extension handles issues outside of VSCodium")); + reset(descriptionSubtitle, localize('elsewhereDescription', "The '{0}' extension prefers to use an external issue reporter. To be taken to that issue reporting experience, click the button below.", selectedExtension.displayName)); +diff --git a/src/vs/workbench/contrib/issue/browser/issueReporterModel.ts b/src/vs/workbench/contrib/issue/browser/issueReporterModel.ts +index f8274d9..15fcc8b 100644 +--- a/src/vs/workbench/contrib/issue/browser/issueReporterModel.ts ++++ b/src/vs/workbench/contrib/issue/browser/issueReporterModel.ts +@@ -92,3 +92,3 @@ ${this._data.issueDescription} + ${this.getExtensionVersion()} +-VS Code version: ${this._data.versionInfo && this._data.versionInfo.vscodeVersion} ++VSCodium version: ${this._data.versionInfo && this._data.versionInfo.vscodeVersion} + OS version: ${this._data.versionInfo && this._data.versionInfo.os} +diff --git a/src/vs/workbench/contrib/issue/browser/issueReporterPage.ts b/src/vs/workbench/contrib/issue/browser/issueReporterPage.ts +index 195857e..68163c0 100644 +--- a/src/vs/workbench/contrib/issue/browser/issueReporterPage.ts ++++ b/src/vs/workbench/contrib/issue/browser/issueReporterPage.ts +@@ -18,3 +18,3 @@ const reviewGuidanceLabel = localize( // intentionally not escaped because of it + comment: [ +- '{Locked=""}', ++ '{Locked=""}', + '{Locked=""}' +@@ -22,3 +22,3 @@ const reviewGuidanceLabel = localize( // intentionally not escaped because of it + }, +- 'Before you report an issue here please review the guidance we provide.' ++ 'Before you report an issue here please review the guidance we provide.' + ); diff --git a/prepare_assets.sh b/prepare_assets.sh index 9b9de9360fa..ddeba4c44e0 100755 --- a/prepare_assets.sh +++ b/prepare_assets.sh @@ -19,32 +19,46 @@ mkdir -p assets if [[ "${OS_NAME}" == "osx" ]]; then if [[ "${CI_BUILD}" != "no" ]]; then - cd "VSCode-darwin-${VSCODE_ARCH}" - CERTIFICATE_P12="${APP_NAME}.p12" - KEYCHAIN="${RUNNER_TEMP}/build.keychain" + KEYCHAIN="${RUNNER_TEMP}/buildagent.keychain" - echo "${CERTIFICATE_OSX_P12}" | base64 --decode > "${CERTIFICATE_P12}" + echo "AGENT_TEMPDIRECTORY: ${AGENT_TEMPDIRECTORY}" + echo "RUNNER_TEMP: ${RUNNER_TEMP}" + + echo "${CERTIFICATE_OSX_P12_DATA}" | base64 --decode > "${CERTIFICATE_P12}" echo "+ create temporary keychain" - security create-keychain -p mysecretpassword "${KEYCHAIN}" + security create-keychain -p pwd "${KEYCHAIN}" security set-keychain-settings -lut 21600 "${KEYCHAIN}" - security unlock-keychain -p mysecretpassword "${KEYCHAIN}" - security list-keychains -s "$(security list-keychains | xargs)" "${KEYCHAIN}" - # security list-keychains -d user - # security show-keychain-info ${KEYCHAIN} + security unlock-keychain -p pwd "${KEYCHAIN}" + security show-keychain-info "${KEYCHAIN}" echo "+ import certificate to keychain" - security import "${CERTIFICATE_P12}" -k "${KEYCHAIN}" -P "${CERTIFICATE_OSX_PASSWORD}" -T /usr/bin/codesign - security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k mysecretpassword "${KEYCHAIN}" > /dev/null - # security find-identity "${KEYCHAIN}" + security import "${CERTIFICATE_P12}" -k "${KEYCHAIN}" -P "${CERTIFICATE_OSX_P12_PASSWORD}" -T /usr/bin/codesign + + CODESIGN_IDENTITY="$( security find-identity -v -p codesigning "${KEYCHAIN}" | grep -oEi "([0-9A-F]{40})" | head -n 1 )" + export CODESIGN_IDENTITY + + security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k pwd "${KEYCHAIN}" > /dev/null + security find-identity "${KEYCHAIN}" echo "+ signing" - if [[ "${VSCODE_QUALITY}" == "insider" ]]; then - codesign --deep --force --verbose --sign "${CERTIFICATE_OSX_ID}" "${APP_NAME} - Insiders.app" - else - codesign --deep --force --verbose --sign "${CERTIFICATE_OSX_ID}" "${APP_NAME}.app" - fi + DEBUG="electron-osx-sign*" node vscode/build/darwin/sign.js "$( pwd )" + + echo "+ notarize" + + cd "VSCode-darwin-${VSCODE_ARCH}" + ZIP_FILE="./${APP_NAME}-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" + + zip -r -X -y "${ZIP_FILE}" ./*.app + + xcrun notarytool store-credentials "notarytool-profile" --apple-id "${CERTIFICATE_OSX_ID}" --password "${CERTIFICATE_OSX_APP_PASSWORD}" + xcrun notarytool submit "${ZIP_FILE}" ---keychain-profile "notarytool-profile" --wait + + echo "+ attach staple" + xcrun stapler staple ./*.app + + rm "${ZIP_FILE}" cd .. fi From 73ba20791e5406c2a595f2f86c8a75706caae724 Mon Sep 17 00:00:00 2001 From: Baptiste Augrain Date: Sat, 1 Jun 2024 18:41:51 +0200 Subject: [PATCH 02/12] build: update to node-v20 --- .github/workflows/insider-linux.yml | 4 ++-- .github/workflows/insider-macos.yml | 2 +- .github/workflows/insider-windows.yml | 2 +- .github/workflows/stable-linux.yml | 4 ++-- .github/workflows/stable-macos.yml | 2 +- .github/workflows/stable-windows.yml | 2 +- .nvmrc | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/insider-linux.yml b/.github/workflows/insider-linux.yml index caa192f1064..3d0da7d5538 100644 --- a/.github/workflows/insider-linux.yml +++ b/.github/workflows/insider-linux.yml @@ -86,7 +86,7 @@ jobs: - name: Setup Node.js environment uses: actions/setup-node@v4 with: - node-version: '18.17' + node-version: '20.12' if: env.SHOULD_BUILD == 'yes' - name: Install Yarn @@ -264,7 +264,7 @@ jobs: - name: Setup Node.js environment uses: actions/setup-node@v4 with: - node-version: '18.17' + node-version: '20.12' - name: Setup Python 3 uses: actions/setup-python@v5 diff --git a/.github/workflows/insider-macos.yml b/.github/workflows/insider-macos.yml index bf4676ca60d..18a8dbcccc1 100644 --- a/.github/workflows/insider-macos.yml +++ b/.github/workflows/insider-macos.yml @@ -53,7 +53,7 @@ jobs: - name: Setup Node.js environment uses: actions/setup-node@v4 with: - node-version: '18.17' + node-version: '20.12' - name: Setup Python 3 uses: actions/setup-python@v5 diff --git a/.github/workflows/insider-windows.yml b/.github/workflows/insider-windows.yml index 29b18aa8e8c..b8724599b3b 100644 --- a/.github/workflows/insider-windows.yml +++ b/.github/workflows/insider-windows.yml @@ -58,7 +58,7 @@ jobs: - name: Setup Node.js environment uses: actions/setup-node@v4 with: - node-version: '18.17' + node-version: '20.12' - name: Install Yarn run: npm install -g yarn diff --git a/.github/workflows/stable-linux.yml b/.github/workflows/stable-linux.yml index a95d19e5eec..9704a8a6595 100644 --- a/.github/workflows/stable-linux.yml +++ b/.github/workflows/stable-linux.yml @@ -85,7 +85,7 @@ jobs: - name: Setup Node.js environment uses: actions/setup-node@v4 with: - node-version: '18.17' + node-version: '20.12' if: env.SHOULD_BUILD == 'yes' - name: Install Yarn @@ -263,7 +263,7 @@ jobs: - name: Setup Node.js environment uses: actions/setup-node@v4 with: - node-version: '18.17' + node-version: '20.12' - name: Setup Python 3 uses: actions/setup-python@v5 diff --git a/.github/workflows/stable-macos.yml b/.github/workflows/stable-macos.yml index b201fe0c270..06468d3601c 100644 --- a/.github/workflows/stable-macos.yml +++ b/.github/workflows/stable-macos.yml @@ -51,7 +51,7 @@ jobs: - name: Setup Node.js environment uses: actions/setup-node@v4 with: - node-version: '18.17' + node-version: '20.12' - name: Setup Python 3 uses: actions/setup-python@v5 diff --git a/.github/workflows/stable-windows.yml b/.github/workflows/stable-windows.yml index ba91bed8621..843b1a64cf2 100644 --- a/.github/workflows/stable-windows.yml +++ b/.github/workflows/stable-windows.yml @@ -56,7 +56,7 @@ jobs: - name: Setup Node.js environment uses: actions/setup-node@v4 with: - node-version: '18.17' + node-version: '20.12' - name: Install Yarn run: npm install -g yarn diff --git a/.nvmrc b/.nvmrc index 932b2b01d71..7795cadb579 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -18.15 +20.12 From e8a3ac3cab242e7eeecb5145c3086534145f1533 Mon Sep 17 00:00:00 2001 From: Baptiste Augrain Date: Sat, 1 Jun 2024 19:23:10 +0200 Subject: [PATCH 03/12] build: update to node-v20 [skip ci] --- .github/workflows/insider-spearhead.yml | 2 +- .github/workflows/stable-spearhead.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/insider-spearhead.yml b/.github/workflows/insider-spearhead.yml index 6cfe07b299a..185f5a8597c 100644 --- a/.github/workflows/insider-spearhead.yml +++ b/.github/workflows/insider-spearhead.yml @@ -38,7 +38,7 @@ jobs: - name: Setup Node.js environment uses: actions/setup-node@v4 with: - node-version: '18' + node-version: '20.12' - name: Clone VSCode repo run: . get_repo.sh diff --git a/.github/workflows/stable-spearhead.yml b/.github/workflows/stable-spearhead.yml index bff28f8274a..e00a0ab8311 100644 --- a/.github/workflows/stable-spearhead.yml +++ b/.github/workflows/stable-spearhead.yml @@ -33,7 +33,7 @@ jobs: - name: Setup Node.js environment uses: actions/setup-node@v4 with: - node-version: '18' + node-version: '20.12' - name: Clone VSCode repo run: . get_repo.sh From 11b7b8dc40b0c737210d9f1d45084d3b7b4047b1 Mon Sep 17 00:00:00 2001 From: Baptiste Augrain Date: Sat, 1 Jun 2024 19:54:48 +0200 Subject: [PATCH 04/12] fix(macos): pass missing env variables [skip ci] --- prepare_assets.sh | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/prepare_assets.sh b/prepare_assets.sh index ddeba4c44e0..696d267ff99 100755 --- a/prepare_assets.sh +++ b/prepare_assets.sh @@ -21,9 +21,7 @@ if [[ "${OS_NAME}" == "osx" ]]; then if [[ "${CI_BUILD}" != "no" ]]; then CERTIFICATE_P12="${APP_NAME}.p12" KEYCHAIN="${RUNNER_TEMP}/buildagent.keychain" - - echo "AGENT_TEMPDIRECTORY: ${AGENT_TEMPDIRECTORY}" - echo "RUNNER_TEMP: ${RUNNER_TEMP}" + AGENT_TEMPDIRECTORY="${RUNNER_TEMP}" echo "${CERTIFICATE_OSX_P12_DATA}" | base64 --decode > "${CERTIFICATE_P12}" @@ -35,14 +33,14 @@ if [[ "${OS_NAME}" == "osx" ]]; then echo "+ import certificate to keychain" security import "${CERTIFICATE_P12}" -k "${KEYCHAIN}" -P "${CERTIFICATE_OSX_P12_PASSWORD}" -T /usr/bin/codesign - - CODESIGN_IDENTITY="$( security find-identity -v -p codesigning "${KEYCHAIN}" | grep -oEi "([0-9A-F]{40})" | head -n 1 )" - export CODESIGN_IDENTITY - security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k pwd "${KEYCHAIN}" > /dev/null security find-identity "${KEYCHAIN}" + CODESIGN_IDENTITY="$( security find-identity -v -p codesigning "${KEYCHAIN}" | grep -oEi "([0-9A-F]{40})" | head -n 1 )" + echo "+ signing" + export CODESIGN_IDENTITY AGENT_TEMPDIRECTORY + DEBUG="electron-osx-sign*" node vscode/build/darwin/sign.js "$( pwd )" echo "+ notarize" From b39a7be7a81aa1293445ed5208f5ce7d58c85a89 Mon Sep 17 00:00:00 2001 From: Baptiste Augrain Date: Sat, 1 Jun 2024 21:29:11 +0200 Subject: [PATCH 05/12] fix(macos): add quote to sign [skip ci] --- patches/fix-darwin-sign.patch | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 patches/fix-darwin-sign.patch diff --git a/patches/fix-darwin-sign.patch b/patches/fix-darwin-sign.patch new file mode 100644 index 00000000000..aac626afe0a --- /dev/null +++ b/patches/fix-darwin-sign.patch @@ -0,0 +1,24 @@ +diff --git a/build/darwin/sign.ts b/build/darwin/sign.ts +index 01e9ebf..5f24ad0 100644 +--- a/build/darwin/sign.ts ++++ b/build/darwin/sign.ts +@@ -43,3 +43,3 @@ async function main(buildDir?: string): Promise { + const defaultOpts: codesign.SignOptions = { +- app: path.join(appRoot, appName), ++ app: `"${path.join(appRoot, appName)}"`, + platform: 'darwin', +@@ -68,3 +68,3 @@ async function main(buildDir?: string): Promise { + ...defaultOpts, +- app: path.join(appFrameworkPath, gpuHelperAppName), ++ app: `"${path.join(appFrameworkPath, gpuHelperAppName)}"`, + entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-gpu-entitlements.plist'), +@@ -75,3 +75,3 @@ async function main(buildDir?: string): Promise { + ...defaultOpts, +- app: path.join(appFrameworkPath, rendererHelperAppName), ++ app: `"${path.join(appFrameworkPath, rendererHelperAppName)}"`, + entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-renderer-entitlements.plist'), +@@ -82,3 +82,3 @@ async function main(buildDir?: string): Promise { + ...defaultOpts, +- app: path.join(appFrameworkPath, pluginHelperAppName), ++ app: `"${path.join(appFrameworkPath, pluginHelperAppName)}"`, + entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-plugin-entitlements.plist'), From c703bf586882e263fefd0b6c52cf3098604b02fa Mon Sep 17 00:00:00 2001 From: Baptiste Augrain Date: Sat, 1 Jun 2024 22:15:40 +0200 Subject: [PATCH 06/12] fix(macos): add quote to sign [skip ci] --- patches/fix-darwin-sign.patch | 56 ++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/patches/fix-darwin-sign.patch b/patches/fix-darwin-sign.patch index aac626afe0a..6e5b31a0ba2 100644 --- a/patches/fix-darwin-sign.patch +++ b/patches/fix-darwin-sign.patch @@ -1,5 +1,44 @@ +diff --git a/build/darwin/sign.js b/build/darwin/sign.js +index f5913b7..c861e3e 100644 +--- a/build/darwin/sign.js ++++ b/build/darwin/sign.js +@@ -37,3 +37,3 @@ async function main(buildDir) { + const defaultOpts = { +- app: path.join(appRoot, appName), ++ app: `"${path.join(appRoot, appName)}"`, + platform: 'darwin', +@@ -60,3 +60,3 @@ async function main(buildDir) { + ...defaultOpts, +- app: path.join(appFrameworkPath, gpuHelperAppName), ++ app: `"${path.join(appFrameworkPath, gpuHelperAppName)}"`, + entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-gpu-entitlements.plist'), +@@ -66,3 +66,3 @@ async function main(buildDir) { + ...defaultOpts, +- app: path.join(appFrameworkPath, rendererHelperAppName), ++ app: `"${path.join(appFrameworkPath, rendererHelperAppName)}"`, + entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-renderer-entitlements.plist'), +@@ -72,3 +72,3 @@ async function main(buildDir) { + ...defaultOpts, +- app: path.join(appFrameworkPath, pluginHelperAppName), ++ app: `"${path.join(appFrameworkPath, pluginHelperAppName)}"`, + entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-plugin-entitlements.plist'), +@@ -83,3 +83,3 @@ async function main(buildDir) { + '-string', +- 'An application in Visual Studio Code wants to use AppleScript.', ++ 'An application in VSCodium wants to use AppleScript.', + `${infoPlistPath}` +@@ -90,3 +90,3 @@ async function main(buildDir) { + '-string', +- 'An application in Visual Studio Code wants to use the Microphone.', ++ 'An application in VSCodium wants to use the Microphone.', + `${infoPlistPath}` +@@ -97,3 +97,3 @@ async function main(buildDir) { + '-string', +- 'An application in Visual Studio Code wants to use the Camera.', ++ 'An application in VSCodium wants to use the Camera.', + `${infoPlistPath}` diff --git a/build/darwin/sign.ts b/build/darwin/sign.ts -index 01e9ebf..5f24ad0 100644 +index 01e9ebf..0a88189 100644 --- a/build/darwin/sign.ts +++ b/build/darwin/sign.ts @@ -43,3 +43,3 @@ async function main(buildDir?: string): Promise { @@ -22,3 +61,18 @@ index 01e9ebf..5f24ad0 100644 - app: path.join(appFrameworkPath, pluginHelperAppName), + app: `"${path.join(appFrameworkPath, pluginHelperAppName)}"`, entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-plugin-entitlements.plist'), +@@ -94,3 +94,3 @@ async function main(buildDir?: string): Promise { + '-string', +- 'An application in Visual Studio Code wants to use AppleScript.', ++ 'An application in VSCodium wants to use AppleScript.', + `${infoPlistPath}` +@@ -101,3 +101,3 @@ async function main(buildDir?: string): Promise { + '-string', +- 'An application in Visual Studio Code wants to use the Microphone.', ++ 'An application in VSCodium wants to use the Microphone.', + `${infoPlistPath}` +@@ -108,3 +108,3 @@ async function main(buildDir?: string): Promise { + '-string', +- 'An application in Visual Studio Code wants to use the Camera.', ++ 'An application in VSCodium wants to use the Camera.', + `${infoPlistPath}` From 8e077dc483922baa03a18e1322f54a5e422d6fab Mon Sep 17 00:00:00 2001 From: Baptiste Augrain Date: Sat, 1 Jun 2024 22:56:59 +0200 Subject: [PATCH 07/12] fix(macos): patch electron-sign for spaces [skip ci] --- patches/fix-darwin-sign.patch | 59 ----------------------------------- prepare_assets.sh | 7 ++++- 2 files changed, 6 insertions(+), 60 deletions(-) diff --git a/patches/fix-darwin-sign.patch b/patches/fix-darwin-sign.patch index 6e5b31a0ba2..665fe71ca3e 100644 --- a/patches/fix-darwin-sign.patch +++ b/patches/fix-darwin-sign.patch @@ -2,26 +2,6 @@ diff --git a/build/darwin/sign.js b/build/darwin/sign.js index f5913b7..c861e3e 100644 --- a/build/darwin/sign.js +++ b/build/darwin/sign.js -@@ -37,3 +37,3 @@ async function main(buildDir) { - const defaultOpts = { -- app: path.join(appRoot, appName), -+ app: `"${path.join(appRoot, appName)}"`, - platform: 'darwin', -@@ -60,3 +60,3 @@ async function main(buildDir) { - ...defaultOpts, -- app: path.join(appFrameworkPath, gpuHelperAppName), -+ app: `"${path.join(appFrameworkPath, gpuHelperAppName)}"`, - entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-gpu-entitlements.plist'), -@@ -66,3 +66,3 @@ async function main(buildDir) { - ...defaultOpts, -- app: path.join(appFrameworkPath, rendererHelperAppName), -+ app: `"${path.join(appFrameworkPath, rendererHelperAppName)}"`, - entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-renderer-entitlements.plist'), -@@ -72,3 +72,3 @@ async function main(buildDir) { - ...defaultOpts, -- app: path.join(appFrameworkPath, pluginHelperAppName), -+ app: `"${path.join(appFrameworkPath, pluginHelperAppName)}"`, - entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-plugin-entitlements.plist'), @@ -83,3 +83,3 @@ async function main(buildDir) { '-string', - 'An application in Visual Studio Code wants to use AppleScript.', @@ -37,42 +17,3 @@ index f5913b7..c861e3e 100644 - 'An application in Visual Studio Code wants to use the Camera.', + 'An application in VSCodium wants to use the Camera.', `${infoPlistPath}` -diff --git a/build/darwin/sign.ts b/build/darwin/sign.ts -index 01e9ebf..0a88189 100644 ---- a/build/darwin/sign.ts -+++ b/build/darwin/sign.ts -@@ -43,3 +43,3 @@ async function main(buildDir?: string): Promise { - const defaultOpts: codesign.SignOptions = { -- app: path.join(appRoot, appName), -+ app: `"${path.join(appRoot, appName)}"`, - platform: 'darwin', -@@ -68,3 +68,3 @@ async function main(buildDir?: string): Promise { - ...defaultOpts, -- app: path.join(appFrameworkPath, gpuHelperAppName), -+ app: `"${path.join(appFrameworkPath, gpuHelperAppName)}"`, - entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-gpu-entitlements.plist'), -@@ -75,3 +75,3 @@ async function main(buildDir?: string): Promise { - ...defaultOpts, -- app: path.join(appFrameworkPath, rendererHelperAppName), -+ app: `"${path.join(appFrameworkPath, rendererHelperAppName)}"`, - entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-renderer-entitlements.plist'), -@@ -82,3 +82,3 @@ async function main(buildDir?: string): Promise { - ...defaultOpts, -- app: path.join(appFrameworkPath, pluginHelperAppName), -+ app: `"${path.join(appFrameworkPath, pluginHelperAppName)}"`, - entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-plugin-entitlements.plist'), -@@ -94,3 +94,3 @@ async function main(buildDir?: string): Promise { - '-string', -- 'An application in Visual Studio Code wants to use AppleScript.', -+ 'An application in VSCodium wants to use AppleScript.', - `${infoPlistPath}` -@@ -101,3 +101,3 @@ async function main(buildDir?: string): Promise { - '-string', -- 'An application in Visual Studio Code wants to use the Microphone.', -+ 'An application in VSCodium wants to use the Microphone.', - `${infoPlistPath}` -@@ -108,3 +108,3 @@ async function main(buildDir?: string): Promise { - '-string', -- 'An application in Visual Studio Code wants to use the Camera.', -+ 'An application in VSCodium wants to use the Camera.', - `${infoPlistPath}` diff --git a/prepare_assets.sh b/prepare_assets.sh index 696d267ff99..8db2c39e04c 100755 --- a/prepare_assets.sh +++ b/prepare_assets.sh @@ -1,10 +1,12 @@ #!/usr/bin/env bash -# shellcheck disable=SC1091 +# shellcheck disable=SC1091,2016 set -e APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )" +. ./utils.sh + npm install -g checksum sum_file() { @@ -19,6 +21,9 @@ mkdir -p assets if [[ "${OS_NAME}" == "osx" ]]; then if [[ "${CI_BUILD}" != "no" ]]; then + # By default, electron-osx-sign don't support app name with spaces ("VSCodium - Insiders") + replace 's|opts.app|"${opts.app}"|' vscode/build/node_modules/electron-osx-sign/sign.js + CERTIFICATE_P12="${APP_NAME}.p12" KEYCHAIN="${RUNNER_TEMP}/buildagent.keychain" AGENT_TEMPDIRECTORY="${RUNNER_TEMP}" From 3860f2832cee0c2a0444565411326af82f05656a Mon Sep 17 00:00:00 2001 From: Baptiste Augrain Date: Sun, 2 Jun 2024 03:03:55 +0200 Subject: [PATCH 08/12] fix(macos): add keychain to available keychains [skip ci] --- .github/workflows/insider-macos.yml | 1 + .github/workflows/stable-macos.yml | 1 + prepare_assets.sh | 23 +++++++++++++++-------- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/.github/workflows/insider-macos.yml b/.github/workflows/insider-macos.yml index 18a8dbcccc1..16e3c305eb2 100644 --- a/.github/workflows/insider-macos.yml +++ b/.github/workflows/insider-macos.yml @@ -88,6 +88,7 @@ jobs: CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_NEW_ID }} CERTIFICATE_OSX_P12_DATA: ${{ secrets.CERTIFICATE_OSX_NEW_P12_DATA }} CERTIFICATE_OSX_P12_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_P12_PASSWORD }} + CERTIFICATE_OSX_TEAM_ID: ${{ secrets.CERTIFICATE_OSX_NEW_TEAM_ID }} run: ./prepare_assets.sh if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true') diff --git a/.github/workflows/stable-macos.yml b/.github/workflows/stable-macos.yml index 06468d3601c..a3b7c52c73e 100644 --- a/.github/workflows/stable-macos.yml +++ b/.github/workflows/stable-macos.yml @@ -87,6 +87,7 @@ jobs: CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_NEW_ID }} CERTIFICATE_OSX_P12_DATA: ${{ secrets.CERTIFICATE_OSX_NEW_P12_DATA }} CERTIFICATE_OSX_P12_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_P12_PASSWORD }} + CERTIFICATE_OSX_TEAM_ID: ${{ secrets.CERTIFICATE_OSX_NEW_TEAM_ID }} run: ./prepare_assets.sh if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true') diff --git a/prepare_assets.sh b/prepare_assets.sh index 8db2c39e04c..514d7552cc2 100755 --- a/prepare_assets.sh +++ b/prepare_assets.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# shellcheck disable=SC1091,2016 +# shellcheck disable=SC1091 set -e @@ -21,12 +21,11 @@ mkdir -p assets if [[ "${OS_NAME}" == "osx" ]]; then if [[ "${CI_BUILD}" != "no" ]]; then - # By default, electron-osx-sign don't support app name with spaces ("VSCodium - Insiders") - replace 's|opts.app|"${opts.app}"|' vscode/build/node_modules/electron-osx-sign/sign.js - CERTIFICATE_P12="${APP_NAME}.p12" KEYCHAIN="${RUNNER_TEMP}/buildagent.keychain" AGENT_TEMPDIRECTORY="${RUNNER_TEMP}" + # shellcheck disable=SC2006 + KEYCHAINS=`security list-keychains | xargs` echo "${CERTIFICATE_OSX_P12_DATA}" | base64 --decode > "${CERTIFICATE_P12}" @@ -34,12 +33,14 @@ if [[ "${OS_NAME}" == "osx" ]]; then security create-keychain -p pwd "${KEYCHAIN}" security set-keychain-settings -lut 21600 "${KEYCHAIN}" security unlock-keychain -p pwd "${KEYCHAIN}" - security show-keychain-info "${KEYCHAIN}" + # shellcheck disable=SC2086 + security list-keychains -s $KEYCHAINS "${KEYCHAIN}" + # security show-keychain-info "${KEYCHAIN}" echo "+ import certificate to keychain" security import "${CERTIFICATE_P12}" -k "${KEYCHAIN}" -P "${CERTIFICATE_OSX_P12_PASSWORD}" -T /usr/bin/codesign security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k pwd "${KEYCHAIN}" > /dev/null - security find-identity "${KEYCHAIN}" + # security find-identity "${KEYCHAIN}" CODESIGN_IDENTITY="$( security find-identity -v -p codesigning "${KEYCHAIN}" | grep -oEi "([0-9A-F]{40})" | head -n 1 )" @@ -55,12 +56,18 @@ if [[ "${OS_NAME}" == "osx" ]]; then zip -r -X -y "${ZIP_FILE}" ./*.app - xcrun notarytool store-credentials "notarytool-profile" --apple-id "${CERTIFICATE_OSX_ID}" --password "${CERTIFICATE_OSX_APP_PASSWORD}" - xcrun notarytool submit "${ZIP_FILE}" ---keychain-profile "notarytool-profile" --wait + xcrun notarytool store-credentials "${APP_NAME}" --apple-id "${CERTIFICATE_OSX_ID}" --team-id "${CERTIFICATE_OSX_TEAM_ID}" --password "${CERTIFICATE_OSX_APP_PASSWORD}" --keychain "${KEYCHAIN}" + xcrun notarytool submit "${ZIP_FILE}" --keychain-profile "${APP_NAME}" --wait --keychain "${KEYCHAIN}" echo "+ attach staple" xcrun stapler staple ./*.app + # spctl --assess -vv --type install ./*.app + + echo "+ clean" + security delete-keychain "${KEYCHAIN}" + # shellcheck disable=SC2086 + security list-keychains -s $KEYCHAINS rm "${ZIP_FILE}" cd .. From c3064a2cb302481f7e6db4d47d6c89056d91f2b5 Mon Sep 17 00:00:00 2001 From: Baptiste Augrain Date: Sun, 2 Jun 2024 17:45:59 +0200 Subject: [PATCH 09/12] build(macos): allow local codesign [skip ci] --- build/build.sh | 6 ++++++ macos-codesign.env.template | 5 +++++ patches/fix-darwin-codesign.patch | 28 ++++++++++++++++++++++++++++ patches/fix-darwin-sign.patch | 19 ------------------- prepare_assets.sh | 10 +++++++++- 5 files changed, 48 insertions(+), 20 deletions(-) create mode 100644 macos-codesign.env.template create mode 100644 patches/fix-darwin-codesign.patch delete mode 100644 patches/fix-darwin-sign.patch diff --git a/build/build.sh b/build/build.sh index c370f6a7d55..8618dbf8d51 100755 --- a/build/build.sh +++ b/build/build.sh @@ -120,5 +120,11 @@ if [[ "${SKIP_ASSETS}" == "no" ]]; then rm -rf build/windows/msi/releasedir fi + if [[ "${OS_NAME}" == "osx" && -f "./macos-codesign.env" ]]; then + . macos-codesign.env + + echo "CERTIFICATE_OSX_ID: ${CERTIFICATE_OSX_ID}" + fi + . prepare_assets.sh fi diff --git a/macos-codesign.env.template b/macos-codesign.env.template new file mode 100644 index 00000000000..43b6c907a0f --- /dev/null +++ b/macos-codesign.env.template @@ -0,0 +1,5 @@ +CERTIFICATE_OSX_APP_PASSWORD= +CERTIFICATE_OSX_ID= +CERTIFICATE_OSX_P12_DATA= +CERTIFICATE_OSX_P12_PASSWORD= +CERTIFICATE_OSX_TEAM_ID= diff --git a/patches/fix-darwin-codesign.patch b/patches/fix-darwin-codesign.patch new file mode 100644 index 00000000000..062ef9bd548 --- /dev/null +++ b/patches/fix-darwin-codesign.patch @@ -0,0 +1,28 @@ +diff --git a/build/darwin/sign.js b/build/darwin/sign.js +index f5913b7..100b950 100644 +--- a/build/darwin/sign.js ++++ b/build/darwin/sign.js +@@ -53,5 +53,7 @@ async function main(buildDir) { + ignore: (filePath) => { ++ const ext = path.extname(filePath); + return filePath.includes(gpuHelperAppName) || + filePath.includes(rendererHelperAppName) || +- filePath.includes(pluginHelperAppName); ++ filePath.includes(pluginHelperAppName) || ++ ext == '.asar' || ext == '.dat' || ext == '.gif' || ext == '.icns' || ext == '.ico' || ext == '.json' || ext == '.mp3' || ext == '.nib' || ext == '.pak' || ext == '.png' || ext == '.scpt' || ext == '.ttf' || ext == '.wasm' || ext == '.woff' || ext == '.woff2'; + } +@@ -83,3 +85,3 @@ async function main(buildDir) { + '-string', +- 'An application in Visual Studio Code wants to use AppleScript.', ++ 'An application in VSCodium wants to use AppleScript.', + `${infoPlistPath}` +@@ -90,3 +92,3 @@ async function main(buildDir) { + '-string', +- 'An application in Visual Studio Code wants to use the Microphone.', ++ 'An application in VSCodium wants to use the Microphone.', + `${infoPlistPath}` +@@ -97,3 +99,3 @@ async function main(buildDir) { + '-string', +- 'An application in Visual Studio Code wants to use the Camera.', ++ 'An application in VSCodium wants to use the Camera.', + `${infoPlistPath}` diff --git a/patches/fix-darwin-sign.patch b/patches/fix-darwin-sign.patch deleted file mode 100644 index 665fe71ca3e..00000000000 --- a/patches/fix-darwin-sign.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff --git a/build/darwin/sign.js b/build/darwin/sign.js -index f5913b7..c861e3e 100644 ---- a/build/darwin/sign.js -+++ b/build/darwin/sign.js -@@ -83,3 +83,3 @@ async function main(buildDir) { - '-string', -- 'An application in Visual Studio Code wants to use AppleScript.', -+ 'An application in VSCodium wants to use AppleScript.', - `${infoPlistPath}` -@@ -90,3 +90,3 @@ async function main(buildDir) { - '-string', -- 'An application in Visual Studio Code wants to use the Microphone.', -+ 'An application in VSCodium wants to use the Microphone.', - `${infoPlistPath}` -@@ -97,3 +97,3 @@ async function main(buildDir) { - '-string', -- 'An application in Visual Studio Code wants to use the Camera.', -+ 'An application in VSCodium wants to use the Camera.', - `${infoPlistPath}` diff --git a/prepare_assets.sh b/prepare_assets.sh index 514d7552cc2..d591c6b84db 100755 --- a/prepare_assets.sh +++ b/prepare_assets.sh @@ -20,13 +20,19 @@ sum_file() { mkdir -p assets if [[ "${OS_NAME}" == "osx" ]]; then - if [[ "${CI_BUILD}" != "no" ]]; then + if [[ -n "${CERTIFICATE_OSX_P12_DATA}" ]]; then + if [[ "${CI_BUILD}" == "no" ]]; then + RUNNER_TEMP="${TMPDIR}" + fi + CERTIFICATE_P12="${APP_NAME}.p12" KEYCHAIN="${RUNNER_TEMP}/buildagent.keychain" AGENT_TEMPDIRECTORY="${RUNNER_TEMP}" # shellcheck disable=SC2006 KEYCHAINS=`security list-keychains | xargs` + rm -f "${KEYCHAIN}" + echo "${CERTIFICATE_OSX_P12_DATA}" | base64 --decode > "${CERTIFICATE_P12}" echo "+ create temporary keychain" @@ -48,6 +54,7 @@ if [[ "${OS_NAME}" == "osx" ]]; then export CODESIGN_IDENTITY AGENT_TEMPDIRECTORY DEBUG="electron-osx-sign*" node vscode/build/darwin/sign.js "$( pwd )" + # codesign --display --entitlements :- "" echo "+ notarize" @@ -57,6 +64,7 @@ if [[ "${OS_NAME}" == "osx" ]]; then zip -r -X -y "${ZIP_FILE}" ./*.app xcrun notarytool store-credentials "${APP_NAME}" --apple-id "${CERTIFICATE_OSX_ID}" --team-id "${CERTIFICATE_OSX_TEAM_ID}" --password "${CERTIFICATE_OSX_APP_PASSWORD}" --keychain "${KEYCHAIN}" + # xcrun notarytool history --keychain-profile "${APP_NAME}" --keychain "${KEYCHAIN}" xcrun notarytool submit "${ZIP_FILE}" --keychain-profile "${APP_NAME}" --wait --keychain "${KEYCHAIN}" echo "+ attach staple" From b5bbda7208e8dc523b4e778197132ca94cf6eb7f Mon Sep 17 00:00:00 2001 From: Baptiste Augrain Date: Tue, 4 Jun 2024 11:00:07 +0200 Subject: [PATCH 10/12] fix(macos): clean keychain only after dmg [skip ci] --- prepare_assets.sh | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/prepare_assets.sh b/prepare_assets.sh index d591c6b84db..3ab7c1defac 100755 --- a/prepare_assets.sh +++ b/prepare_assets.sh @@ -71,11 +71,6 @@ if [[ "${OS_NAME}" == "osx" ]]; then xcrun stapler staple ./*.app # spctl --assess -vv --type install ./*.app - echo "+ clean" - - security delete-keychain "${KEYCHAIN}" - # shellcheck disable=SC2086 - security list-keychains -s $KEYCHAINS rm "${ZIP_FILE}" cd .. @@ -91,8 +86,8 @@ if [[ "${OS_NAME}" == "osx" ]]; then if [[ "${SHOULD_BUILD_DMG}" != "no" ]]; then echo "Building and moving DMG" pushd "VSCode-darwin-${VSCODE_ARCH}" - npx create-dmg ./*.app .. - mv ../*.dmg "../assets/${APP_NAME}.${VSCODE_ARCH}.${RELEASE_VERSION}.dmg" + npx create-dmg ./*.app . + mv ./*.dmg "../assets/${APP_NAME}.${VSCODE_ARCH}.${RELEASE_VERSION}.dmg" popd fi @@ -101,6 +96,13 @@ if [[ "${OS_NAME}" == "osx" ]]; then git archive --format zip --output="./assets/${APP_NAME}-${RELEASE_VERSION}-src.zip" HEAD fi + if [[ -n "${CERTIFICATE_OSX_P12_DATA}" ]]; then + echo "+ clean" + security delete-keychain "${KEYCHAIN}" + # shellcheck disable=SC2086 + security list-keychains -s $KEYCHAINS + fi + VSCODE_PLATFORM="darwin" elif [[ "${OS_NAME}" == "windows" ]]; then cd vscode || { echo "'vscode' dir not found"; exit 1; } From a7c70145022b198db0317023b6d38f76d4be3fd9 Mon Sep 17 00:00:00 2001 From: Baptiste Augrain Date: Thu, 6 Jun 2024 13:46:04 +0200 Subject: [PATCH 11/12] fix: disable signature verification (#1915) --- patches/disable-signature-verification.patch | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 patches/disable-signature-verification.patch diff --git a/patches/disable-signature-verification.patch b/patches/disable-signature-verification.patch new file mode 100644 index 00000000000..52d02ab4e5b --- /dev/null +++ b/patches/disable-signature-verification.patch @@ -0,0 +1,18 @@ +diff --git a/src/vs/platform/extensionManagement/node/extensionDownloader.ts b/src/vs/platform/extensionManagement/node/extensionDownloader.ts +index 0ddae28..2e3c9b2 100644 +--- a/src/vs/platform/extensionManagement/node/extensionDownloader.ts ++++ b/src/vs/platform/extensionManagement/node/extensionDownloader.ts +@@ -11,3 +11,2 @@ import { joinPath } from 'vs/base/common/resources'; + import * as semver from 'vs/base/common/semver/semver'; +-import { isBoolean } from 'vs/base/common/types'; + import { URI } from 'vs/base/common/uri'; +@@ -51,2 +50,3 @@ export class ExtensionsDownloader extends Disposable { + @IExtensionGalleryService private readonly extensionGalleryService: IExtensionGalleryService, ++ // @ts-expect-error no-unused-variable + @IConfigurationService private readonly configurationService: IConfigurationService, +@@ -116,4 +116,3 @@ export class ExtensionsDownloader extends Disposable { + +- const value = this.configurationService.getValue('extensions.verifySignature'); +- return isBoolean(value) ? value : true; ++ return false; + } From a652d7a26b29beac5595438f63dc0d51a29fff66 Mon Sep 17 00:00:00 2001 From: Baptiste Augrain Date: Thu, 6 Jun 2024 16:54:10 +0200 Subject: [PATCH 12/12] build(linux): make it build (#1916) --- .github/workflows/insider-linux.yml | 4 ++-- .github/workflows/stable-linux.yml | 4 ++-- package_alpine_reh.sh | 6 ++---- package_linux_bin.sh | 2 +- package_linux_reh.sh | 1 + patches/linux/client/use-n16-libs.patch | 9 +++++++++ 6 files changed, 17 insertions(+), 9 deletions(-) create mode 100644 patches/linux/client/use-n16-libs.patch diff --git a/.github/workflows/insider-linux.yml b/.github/workflows/insider-linux.yml index 3d0da7d5538..caa192f1064 100644 --- a/.github/workflows/insider-linux.yml +++ b/.github/workflows/insider-linux.yml @@ -86,7 +86,7 @@ jobs: - name: Setup Node.js environment uses: actions/setup-node@v4 with: - node-version: '20.12' + node-version: '18.17' if: env.SHOULD_BUILD == 'yes' - name: Install Yarn @@ -264,7 +264,7 @@ jobs: - name: Setup Node.js environment uses: actions/setup-node@v4 with: - node-version: '20.12' + node-version: '18.17' - name: Setup Python 3 uses: actions/setup-python@v5 diff --git a/.github/workflows/stable-linux.yml b/.github/workflows/stable-linux.yml index 9704a8a6595..a95d19e5eec 100644 --- a/.github/workflows/stable-linux.yml +++ b/.github/workflows/stable-linux.yml @@ -85,7 +85,7 @@ jobs: - name: Setup Node.js environment uses: actions/setup-node@v4 with: - node-version: '20.12' + node-version: '18.17' if: env.SHOULD_BUILD == 'yes' - name: Install Yarn @@ -263,7 +263,7 @@ jobs: - name: Setup Node.js environment uses: actions/setup-node@v4 with: - node-version: '20.12' + node-version: '18.17' - name: Setup Python 3 uses: actions/setup-python@v5 diff --git a/package_alpine_reh.sh b/package_alpine_reh.sh index ffe91fb3d17..5cb1d70a61a 100755 --- a/package_alpine_reh.sh +++ b/package_alpine_reh.sh @@ -12,14 +12,12 @@ tar -xzf ./vscode.tar.gz cd vscode || { echo "'vscode' dir not found"; exit 1; } export VSCODE_PLATFORM='alpine' +export VSCODE_SKIP_NODE_VERSION_CHECK=1 VSCODE_HOST_MOUNT="$( pwd )" - -export VSCODE_HOST_MOUNT - VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:alpine-${VSCODE_ARCH}" -export VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME +export VSCODE_HOST_MOUNT VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME for i in {1..5}; do # try 5 times yarn --frozen-lockfile --check-files && break diff --git a/package_linux_bin.sh b/package_linux_bin.sh index 4c074656899..3fecf7cb8b4 100755 --- a/package_linux_bin.sh +++ b/package_linux_bin.sh @@ -40,7 +40,7 @@ done ./build/azure-pipelines/linux/setup-env.sh for i in {1..5}; do # try 5 times - yarn --frozen-lockfile --check-files && break + yarn --check-files && break if [ $i -eq 3 ]; then echo "Yarn failed too many times" >&2 exit 1 diff --git a/package_linux_reh.sh b/package_linux_reh.sh index d2c015d5d5f..c81339d17b6 100755 --- a/package_linux_reh.sh +++ b/package_linux_reh.sh @@ -17,6 +17,7 @@ if [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then fi export VSCODE_PLATFORM='linux' +export VSCODE_SKIP_NODE_VERSION_CHECK=1 export VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}" VSCODE_HOST_MOUNT="$( pwd )" diff --git a/patches/linux/client/use-n16-libs.patch b/patches/linux/client/use-n16-libs.patch new file mode 100644 index 00000000000..aa605ebffd5 --- /dev/null +++ b/patches/linux/client/use-n16-libs.patch @@ -0,0 +1,9 @@ +diff --git a/package.json b/package.json +index fc7e1dd..bc0a020 100644 +--- a/package.json ++++ b/package.json +@@ -135,3 +135,3 @@ + "@vscode/gulp-electron": "^1.36.0", +- "@vscode/l10n-dev": "0.0.35", ++ "@vscode/l10n-dev": "0.0.30", + "@vscode/telemetry-extractor": "^1.10.2",