diff --git a/DOCS.md b/DOCS.md index 32e4d6f..b70f6fb 100644 --- a/DOCS.md +++ b/DOCS.md @@ -69,7 +69,6 @@ With the following environment variables: - `VSCODE_GALLERY_ITEM_URL='https://marketplace.visualstudio.com/items'` - `VSCODE_GALLERY_CACHE_URL='https://vscode.blob.core.windows.net/gallery/index'` - `VSCODE_GALLERY_CONTROL_URL=''` -- `VSCODE_GALLERY_RECOMMENDATIONS_URL=''` Or by creating a custom `product.json` at the following location (replace `VSCodium` by `VSCodium - Insiders` if you use that): - Windows: `%APPDATA%\VSCodium` or `%USERPROFILE%\AppData\Roaming\VSCodium` @@ -85,7 +84,6 @@ with the content: "itemUrl": "https://marketplace.visualstudio.com/items", "cacheUrl": "https://vscode.blob.core.windows.net/gallery/index", // set to empty string for every other extension gallery "controlUrl": "", - "recommendationsUrl": "" } } ``` diff --git a/build/build.sh b/build/build.sh index 0f0501c..ba82710 100755 --- a/build/build.sh +++ b/build/build.sh @@ -60,6 +60,7 @@ if [[ "${SKIP_BUILD}" == "no" ]]; then rm -rf vscode* VSCode* . get_repo.sh + . version.sh # save variables for later echo "MS_TAG=\"${MS_TAG}\"" > build.env diff --git a/build/update_api.sh b/build/update_api.sh index b86da71..e101b6b 100755 --- a/build/update_api.sh +++ b/build/update_api.sh @@ -30,4 +30,6 @@ fi APIS=`cat ${DIRECTORY}/resources/app/product.json | jq -r '.extensionEnabledApiProposals'` +APIS=`echo "${APIS}" | jq '. += {"jeanp413.open-remote-ssh": ["resolvers", "tunnels", "terminalDataWriteEvent", "contribViewsRemote"]}'` + cat <<< $(jq --argjson v "${APIS}" 'setpath(["extensionEnabledApiProposals"]; $v)' product.json) > product.json diff --git a/build/update_patches.sh b/build/update_patches.sh index 3b9d062..d3761be 100755 --- a/build/update_patches.sh +++ b/build/update_patches.sh @@ -1,21 +1,50 @@ #!/bin/bash +export VSCODE_QUALITY="stable" + +while getopts ":ilp" opt; do + case "$opt" in + i) + export VSCODE_QUALITY="insider" + ;; + esac +done + cd vscode || { echo "'vscode' dir not found"; exit 1; } git add . git reset -q --hard HEAD -for file in ../patches/*.patch; do - if [ -f "${file}" ]; then - echo applying patch: "${file}" - git apply --ignore-whitespace "${file}" +for FILE in ../patches/*.patch; do + if [ -f "${FILE}" ]; then + echo applying patch: "${FILE}" + git apply --ignore-whitespace "${FILE}" if [ $? -ne 0 ]; then - echo failed to apply patch "${file}" - git apply --reject "${file}" + echo failed to apply patch "${FILE}" + git apply --reject "${FILE}" read -p "Press any key when the conflict have been resolved..." -n1 -s - git diff -U1 > "${file}" + git add . + git diff --staged -U1 > "${FILE}" fi git add . git reset -q --hard HEAD fi done + +if [[ "${VSCODE_QUALITY}" == "insider" ]]; then + for FILE in ../patches/insider/*.patch; do + if [ -f "${FILE}" ]; then + echo applying patch: "${FILE}" + git apply --ignore-whitespace "${FILE}" + if [ $? -ne 0 ]; then + echo failed to apply patch "${FILE}" + git apply --reject "${FILE}" + read -p "Press any key when the conflict have been resolved..." -n1 -s + git add . + git diff --staged -U1 > "${FILE}" + fi + git add . + git reset -q --hard HEAD + fi + done +fi diff --git a/insider.json b/insider.json index 5090634..2598343 100644 --- a/insider.json +++ b/insider.json @@ -1,4 +1,4 @@ { - "tag": "1.73.0", - "commit": "8fa188b2b301d36553cbc9ce1b0a146ccb93351f" + "tag": "1.75.0", + "commit": "b92894493e6f971a3c71912d823e699d3a05d643" } diff --git a/patches/build-version.patch b/patches/build-version.patch index 3e7b505..8a49da9 100644 --- a/patches/build-version.patch +++ b/patches/build-version.patch @@ -1,78 +1,69 @@ -diff --git a/.vscode/settings.json b/.vscode/settings.json -index 3907bc7..1772769 100644 ---- a/.vscode/settings.json -+++ b/.vscode/settings.json -@@ -88,3 +88,3 @@ - "editor.defaultFormatter": "vscode.typescript-language-features", -- "editor.formatOnSave": true -+ // "editor.formatOnSave": true - }, diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js -index 980f647..959fb88 100644 +index f3cdbff..ac7c39b 100644 --- a/build/gulpfile.reh.js +++ b/build/gulpfile.reh.js -@@ -245,4 +245,5 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa +@@ -246,4 +246,5 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa const name = product.nameShort; + const release = packageJson.release; const packageJsonStream = gulp.src(['remote/package.json'], { base: 'remote' }) - .pipe(json({ name, version, dependencies: undefined, optionalDependencies: undefined })); + .pipe(json({ name, version, release, dependencies: undefined, optionalDependencies: undefined })); -@@ -251,3 +252,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa +@@ -252,3 +253,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa const productJsonStream = gulp.src(['product.json'], { base: '.' }) - .pipe(json({ commit, date, version })); + .pipe(json({ commit, date, version, release })); diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js -index 6947d1e..80f358e 100644 +index cdc802b..49ab315 100644 --- a/build/gulpfile.vscode.js +++ b/build/gulpfile.vscode.js -@@ -224,3 +224,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op +@@ -227,3 +227,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op - let version = packageJson.version; + let version = packageJson.version const quality = product.quality; -@@ -232,3 +232,4 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op +@@ -235,3 +235,4 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op const name = product.nameShort; - const packageJsonUpdates = { name, version }; + const release = packageJson.release; + const packageJsonUpdates = { name, version, release }; -@@ -243,3 +244,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op +@@ -246,3 +247,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op const date = new Date().toISOString(); - const productJsonUpdate = { commit, date, checksums, version }; + const productJsonUpdate = { commit, date, checksums, version, release }; diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js -index 4a25ca5..ca33d2e 100644 +index cdc8870..f6e4e09 100644 --- a/build/gulpfile.vscode.linux.js +++ b/build/gulpfile.vscode.linux.js -@@ -24,4 +24,2 @@ const commit = util.getVersion(root); +@@ -25,4 +25,2 @@ const commit = getVersion(root); -const linuxPackageRevision = Math.floor(new Date().getTime() / 1000); - /** -@@ -87,3 +85,3 @@ function prepareDebPackage(arch) { +@@ -88,3 +86,3 @@ function prepareDebPackage(arch) { .pipe(replace('@@NAME@@', product.applicationName)) - .pipe(replace('@@VERSION@@', packageJson.version + '-' + linuxPackageRevision)) + .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`)) .pipe(replace('@@ARCHITECTURE@@', debArch)) -@@ -192,4 +190,3 @@ function prepareRpmPackage(arch) { +@@ -193,4 +191,3 @@ function prepareRpmPackage(arch) { .pipe(replace('@@ICON@@', product.linuxIconName)) - .pipe(replace('@@VERSION@@', packageJson.version)) - .pipe(replace('@@RELEASE@@', linuxPackageRevision)) + .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`)) .pipe(replace('@@ARCHITECTURE@@', rpmArch)) -@@ -266,3 +263,3 @@ function prepareSnapPackage(arch) { +@@ -267,3 +264,3 @@ function prepareSnapPackage(arch) { .pipe(replace('@@NAME@@', product.applicationName)) - .pipe(replace('@@VERSION@@', commit.substr(0, 8))) + .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`)) // Possible run-on values https://snapcraft.io/docs/architectures diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js -index 81ba509..43f5377 100644 +index 0d3abda..2606af5 100644 --- a/build/gulpfile.vscode.win32.js +++ b/build/gulpfile.vscode.win32.js -@@ -93,4 +93,4 @@ function buildWin32Setup(arch, target) { +@@ -94,4 +94,4 @@ function buildWin32Setup(arch, target) { DirName: product.win32DirName, - Version: pkg.version, - RawVersion: pkg.version.replace(/-\w+$/, ''), @@ -89,7 +80,7 @@ index 61659d2..5cafa06 100644 +Release: el7 Summary: Code editing. Redefined. diff --git a/src/vs/base/common/product.ts b/src/vs/base/common/product.ts -index e07695c..55ccc32 100644 +index 7ec238b..9295018 100644 --- a/src/vs/base/common/product.ts +++ b/src/vs/base/common/product.ts @@ -34,2 +34,3 @@ export interface IProductConfiguration { @@ -97,22 +88,22 @@ index e07695c..55ccc32 100644 + readonly release: string; readonly date?: string; diff --git a/src/vs/platform/diagnostics/node/diagnosticsService.ts b/src/vs/platform/diagnostics/node/diagnosticsService.ts -index 66e35c8..087c055 100644 +index 561966b..30814a0 100644 --- a/src/vs/platform/diagnostics/node/diagnosticsService.ts +++ b/src/vs/platform/diagnostics/node/diagnosticsService.ts -@@ -238,3 +238,3 @@ export class DiagnosticsService implements IDiagnosticsService { +@@ -236,3 +236,3 @@ export class DiagnosticsService implements IDiagnosticsService { const output: string[] = []; - output.push(`Version: ${this.productService.nameShort} ${this.productService.version} (${this.productService.commit || 'Commit unknown'}, ${this.productService.date || 'Date unknown'})`); + output.push(`Version: ${this.productService.nameShort} ${this.productService.version} ${this.productService.release || 'Release unknown'} (${this.productService.commit || 'Commit unknown'}, ${this.productService.date || 'Date unknown'})`); output.push(`OS Version: ${osLib.type()} ${osLib.arch()} ${osLib.release()}`); diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts -index bceda01..4fe44e2 100644 +index ef798fa..cfa7866 100644 --- a/src/vs/platform/product/common/product.ts +++ b/src/vs/platform/product/common/product.ts -@@ -49,6 +49,7 @@ else if (typeof require?.__$__nodeRequire === 'function') { +@@ -43,6 +43,7 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) { if (!product.version) { -- const pkg = require.__$__nodeRequire(joinPath(rootPath, 'package.json').fsPath) as { version: string }; -+ const pkg = require.__$__nodeRequire(joinPath(rootPath, 'package.json').fsPath) as { version: string, release: string }; +- const pkg = globalThis._VSCODE_PACKAGE_JSON as { version: string }; ++ const pkg = globalThis._VSCODE_PACKAGE_JSON as { version: string, release: string }; Object.assign(product, { - version: pkg.version @@ -120,19 +111,19 @@ index bceda01..4fe44e2 100644 + release: pkg.release }); diff --git a/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts b/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts -index ec4ff95..2ed2c03 100644 +index 6a3768d..023eeed 100644 --- a/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts +++ b/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts -@@ -22,2 +22,3 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti - import { MarkdownRenderer } from 'vs/editor/contrib/markdownRenderer/browser/markdownRenderer'; +@@ -21,2 +21,3 @@ import { MarkdownRenderer } from 'vs/editor/contrib/markdownRenderer/browser/mar + import { defaultButtonStyles, defaultCheckboxStyles, defaultDialogStyles, defaultInputBoxStyles } from 'vs/platform/theme/browser/defaultStyles'; +import { getReleaseString } from 'vs/workbench/common/release'; -@@ -145,2 +146,4 @@ export class BrowserDialogHandler implements IDialogHandler { +@@ -147,2 +148,4 @@ export class BrowserDialogHandler implements IDialogHandler { const detailString = (useAgo: boolean): string => { + const releaseString = getReleaseString(); + return localize('aboutDetail', -@@ -151,3 +154,3 @@ export class BrowserDialogHandler implements IDialogHandler { +@@ -153,3 +156,3 @@ export class BrowserDialogHandler implements IDialogHandler { navigator.userAgent - ); + ).replace('\n', `\n${releaseString} ${this.productService.release || 'Unknown'}\n`); diff --git a/patches/custom-gallery.patch b/patches/custom-gallery.patch index ecbdca4..0dce155 100644 --- a/patches/custom-gallery.patch +++ b/patches/custom-gallery.patch @@ -1,20 +1,21 @@ diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts -index bceda01..174c766 100644 +index ef798fa..5a0550b 100644 --- a/src/vs/platform/product/common/product.ts +++ b/src/vs/platform/product/common/product.ts -@@ -6,3 +6,3 @@ - import { FileAccess } from 'vs/base/common/network'; +@@ -5,3 +5,4 @@ + -import { globals } from 'vs/base/common/platform'; ++import { AppResourcePath, FileAccess } from 'vs/base/common/network'; +import { globals, isWindows } from 'vs/base/common/platform'; import { env } from 'vs/base/common/process'; -@@ -11,2 +11,3 @@ import { dirname, joinPath } from 'vs/base/common/resources'; +@@ -9,2 +10,3 @@ import { IProductConfiguration } from 'vs/base/common/product'; import { ISandboxConfiguration } from 'vs/base/parts/sandbox/common/sandboxTypes'; +import { getUserDataPath } from 'vs/platform/environment/node/userDataPath'; -@@ -35,2 +36,41 @@ else if (typeof require?.__$__nodeRequire === 'function') { +@@ -29,2 +31,40 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) { + // Set user-defined extension gallery -+ const { serviceUrl, searchUrl, itemUrl, controlUrl, recommendationsUrl } = product.extensionsGallery || {} ++ const { serviceUrl, searchUrl, itemUrl, controlUrl } = product.extensionsGallery || {} + + Object.assign(product, { + extensionsGallery: { @@ -22,7 +23,6 @@ index bceda01..174c766 100644 + searchUrl: env['VSCODE_GALLERY_SEARCH_URL'] || searchUrl, + itemUrl: env['VSCODE_GALLERY_ITEM_URL'] || itemUrl, + controlUrl: env['VSCODE_GALLERY_CONTROL_URL'] || controlUrl, -+ recommendationsUrl: env['VSCODE_GALLERY_RECOMMENDATIONS_URL'] || recommendationsUrl + } + }) + @@ -46,7 +46,7 @@ index bceda01..174c766 100644 + const userDataPath = getUserDataPath({} as any, product.nameShort); + const userProductPath = isWindows ? `file:///${userDataPath}/product.json` : `file://${userDataPath}/product.json`; + -+ const userProduct = require.__$__nodeRequire(FileAccess.asFileUri(userProductPath, require).fsPath); ++ const userProduct = require.__$__nodeRequire(FileAccess.asFileUri(userProductPath as AppResourcePath).fsPath); + + product = merge(product, userProduct); + } catch (ex) { diff --git a/patches/insider/disable-sandbox.patch b/patches/insider/disable-sandbox.patch index 98964ef..c9fb6b2 100644 --- a/patches/insider/disable-sandbox.patch +++ b/patches/insider/disable-sandbox.patch @@ -1,21 +1,9 @@ diff --git a/src/vs/platform/windows/electron-main/windowImpl.ts b/src/vs/platform/windows/electron-main/windowImpl.ts -index c9501cb..a6958ff 100644 +index 3b8a644..71ea0ad 100644 --- a/src/vs/platform/windows/electron-main/windowImpl.ts +++ b/src/vs/platform/windows/electron-main/windowImpl.ts -@@ -42,7 +42,6 @@ import { Color } from 'vs/base/common/color'; - import { IPolicyService } from 'vs/platform/policy/common/policy'; - import { IUserDataProfile } from 'vs/platform/userDataProfile/common/userDataProfile'; - import { IStateMainService } from 'vs/platform/state/electron-main/state'; --import product from 'vs/platform/product/common/product'; - import { IUserDataProfilesMainService } from 'vs/platform/userDataProfile/electron-main/userDataProfile'; - - export interface IWindowCreationOptions { -@@ -203,7 +202,7 @@ export class CodeWindow extends Disposable implements ICodeWindow { - if (typeof windowSettings?.experimental?.useSandbox === 'boolean') { - useSandbox = windowSettings.experimental.useSandbox; - } else { -- useSandbox = typeof product.quality === 'string' && product.quality !== 'stable'; -+ useSandbox = false; +@@ -213,4 +213,2 @@ export class CodeWindow extends Disposable implements ICodeWindow { + useSandbox = true; +- } else { +- useSandbox = typeof this.productService.quality === 'string' && this.productService.quality !== 'stable'; } - - const options: BrowserWindowConstructorOptions & { experimentalDarkMode: boolean } = { diff --git a/patches/insider/disable-windows-appx.patch b/patches/insider/disable-windows-appx.patch new file mode 100644 index 0000000..bf20d9d --- /dev/null +++ b/patches/insider/disable-windows-appx.patch @@ -0,0 +1,15 @@ +diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js +index 0d3abda..9e5143a 100644 +--- a/build/gulpfile.vscode.win32.js ++++ b/build/gulpfile.vscode.win32.js +@@ -116,6 +116,6 @@ function buildWin32Setup(arch, target) { + +- if (quality === 'insider') { +- definitions['AppxPackage'] = `code_insiders_explorer_${arch === 'ia32' ? 'x86' : arch}.appx`; +- definitions['AppxPackageFullname'] = `Microsoft.${product.win32RegValueName}_1.0.0.0_neutral__8wekyb3d8bbwe`; +- } ++ // if (quality === 'insider') { ++ // definitions['AppxPackage'] = `code_insiders_explorer_${arch === 'ia32' ? 'x86' : arch}.appx`; ++ // definitions['AppxPackageFullname'] = `Microsoft.${product.win32RegValueName}_1.0.0.0_neutral__8wekyb3d8bbwe`; ++ // } + diff --git a/patches/use-github-pat.patch b/patches/use-github-pat.patch index c3038da..c4c5603 100644 --- a/patches/use-github-pat.patch +++ b/patches/use-github-pat.patch @@ -1,18 +1,19 @@ diff --git a/extensions/github-authentication/src/githubServer.ts b/extensions/github-authentication/src/githubServer.ts -index 830e698..cd6f27e 100644 +index e1f766d..4f11dbe 100644 --- a/extensions/github-authentication/src/githubServer.ts +++ b/extensions/github-authentication/src/githubServer.ts -@@ -7,4 +7,2 @@ import * as vscode from 'vscode'; - import fetch, { Response } from 'node-fetch'; --import { v4 as uuid } from 'uuid'; +@@ -6,4 +6,2 @@ + import * as vscode from 'vscode'; +-import * as path from 'path'; -import { PromiseAdapter, promiseFromEvent } from './common/utils'; - import { ExperimentationTelemetry } from './experimentationService'; -@@ -12,13 +10,4 @@ import { AuthProviderType } from './github'; + import { ExperimentationTelemetry } from './common/experimentationService'; +@@ -11,14 +9,6 @@ import { AuthProviderType, UriEventHandler } from './github'; import { Log } from './common/logger'; -import { isSupportedEnvironment } from './common/env'; --import { LoopbackAuthServer } from './authServer'; --import path = require('path'); -- +-import { LoopbackAuthServer } from './node/authServer'; +-import { crypto } from './node/crypto'; + import { fetching } from './node/fetch'; + -const CLIENT_ID = '01ab8ac9400c4e429b23'; -const GITHUB_TOKEN_URL = 'https://vscode.dev/codeExchangeProxyEndpoints/github/login/oauth/access_token'; const NETWORK_ERROR = 'network error'; @@ -20,8 +21,8 @@ index 830e698..cd6f27e 100644 -const REDIRECT_URL_STABLE = 'https://vscode.dev/redirect'; -const REDIRECT_URL_INSIDERS = 'https://insiders.vscode.dev/redirect'; - - class UriEventHandler extends vscode.EventEmitter implements vscode.UriHandler { -@@ -42,9 +31,2 @@ export interface IGitHubServer extends vscode.Disposable { + export interface IGitHubServer { +@@ -30,9 +20,2 @@ export interface IGitHubServer { -interface IGitHubDeviceCodeResponse { - device_code: string; @@ -31,30 +32,28 @@ index 830e698..cd6f27e 100644 -} - async function getScopes(token: string, serverUri: vscode.Uri, logger: Log): Promise { -@@ -55,3 +37,3 @@ async function getScopes(token: string, serverUri: vscode.Uri, logger: Log): Pro - Authorization: `token ${token}`, -- 'User-Agent': 'Visual-Studio-Code' -+ 'User-Agent': 'VSCodium' - } -@@ -75,7 +57,4 @@ export class GitHubServer implements IGitHubServer { +@@ -63,8 +46,4 @@ export class GitHubServer implements IGitHubServer { + +- private readonly _pendingNonces = new Map(); +- private readonly _codeExchangePromises = new Map; cancel: vscode.EventEmitter }>(); + private readonly _type: AuthProviderType; -- private _pendingNonces = new Map(); -- private _codeExchangePromises = new Map; cancel: vscode.EventEmitter }>(); - private _disposable: vscode.Disposable | undefined; - private static _uriHandler: UriEventHandler | undefined; - private _redirectEndpoint: string | undefined; - -@@ -83,2 +62,3 @@ export class GitHubServer implements IGitHubServer { - public readonly type: AuthProviderType, +- + constructor( +@@ -72,3 +51,5 @@ export class GitHubServer implements IGitHubServer { + private readonly _telemetryReporter: ExperimentationTelemetry, ++ // @ts-ignore + private readonly _uriHandler: UriEventHandler, + // @ts-ignore private readonly _supportDeviceCodeFlow: boolean, -@@ -102,41 +82,2 @@ export class GitHubServer implements IGitHubServer { +@@ -87,41 +68,2 @@ export class GitHubServer implements IGitHubServer { - private async getRedirectEndpoint(): Promise { - if (this._redirectEndpoint) { - return this._redirectEndpoint; - } -- if (this.type === AuthProviderType.github) { +- if (this._type === AuthProviderType.github) { - const proxyEndpoints = await vscode.commands.executeCommand<{ [providerId: string]: string } | undefined>('workbench.getCodeExchangeProxyEndpoints'); - // If we are running in insiders vscode.dev, then ensure we use the redirect route on that. - this._redirectEndpoint = REDIRECT_URL_STABLE; @@ -64,7 +63,7 @@ index 830e698..cd6f27e 100644 - return this._redirectEndpoint; - } else { - // GHES -- const result = await fetch(this.getServerUri('/meta').toString(true)); +- const result = await fetching(this.getServerUri('/meta').toString(true)); - if (result.ok) { - try { - const json: { installed_version: string } = await result.json(); @@ -89,8 +88,8 @@ index 830e698..cd6f27e 100644 - return this._redirectEndpoint; - } - - dispose() { -@@ -156,58 +97,8 @@ export class GitHubServer implements IGitHubServer { + // TODO@joaomoreno TODO@TylerLeonhardt +@@ -137,58 +79,8 @@ export class GitHubServer implements IGitHubServer { let userCancelled: boolean | undefined; - const yes = vscode.l10n.t('Yes'); - const no = vscode.l10n.t('No'); @@ -108,7 +107,7 @@ index 830e698..cd6f27e 100644 - } - }; - -- const nonce = uuid(); +- const nonce: string = crypto.getRandomValues(new Uint32Array(2)).reduce((prev, curr) => prev += curr.toString(16), ''); - const callbackUri = await vscode.env.asExternalUri(vscode.Uri.parse(`${vscode.env.uriScheme}://vscode.github-authentication/did-authenticate?nonce=${encodeURIComponent(nonce)}`)); - const supported = isSupportedEnvironment(callbackUri); @@ -154,7 +153,7 @@ index 830e698..cd6f27e 100644 + this._logger.error(e); + userCancelled = e.message ?? e === 'User Cancelled'; } -@@ -217,136 +108,2 @@ export class GitHubServer implements IGitHubServer { +@@ -198,136 +90,2 @@ export class GitHubServer implements IGitHubServer { - private async doLoginWithoutLocalServer(scopes: string, nonce: string, callbackUri: vscode.Uri): Promise { - this._logger.info(`Trying without local server... (${scopes})`); @@ -187,7 +186,7 @@ index 830e698..cd6f27e 100644 - // before completing it. - let codeExchangePromise = this._codeExchangePromises.get(scopes); - if (!codeExchangePromise) { -- codeExchangePromise = promiseFromEvent(GitHubServer._uriHandler!.event, this.handleUri(scopes)); +- codeExchangePromise = promiseFromEvent(this._uriHandler!.event, this.handleUri(scopes)); - this._codeExchangePromises.set(scopes, codeExchangePromise); - } - @@ -258,7 +257,7 @@ index 830e698..cd6f27e 100644 - path: '/login/device/code', - query: `client_id=${CLIENT_ID}&scope=${scopes}` - }); -- const result = await fetch(uri.toString(true), { +- const result = await fetching(uri.toString(true), { - method: 'POST', - headers: { - Accept: 'application/json' @@ -291,7 +290,7 @@ index 830e698..cd6f27e 100644 - } - private async doLoginWithPat(scopes: string): Promise { -@@ -374,124 +131,2 @@ export class GitHubServer implements IGitHubServer { +@@ -355,124 +113,2 @@ export class GitHubServer implements IGitHubServer { - private async waitForDeviceCodeAccessToken( - json: IGitHubDeviceCodeResponse, @@ -322,7 +321,7 @@ index 830e698..cd6f27e 100644 - } - let accessTokenResult; - try { -- accessTokenResult = await fetch(refreshTokenUri.toString(true), { +- accessTokenResult = await fetching(refreshTokenUri.toString(true), { - method: 'POST', - headers: { - Accept: 'application/json' @@ -388,11 +387,11 @@ index 830e698..cd6f27e 100644 - const endpointUrl = proxyEndpoints?.github ? `${proxyEndpoints.github}login/oauth/access_token` : GITHUB_TOKEN_URL; - - const body = new URLSearchParams([['code', code]]); -- if (this.type === AuthProviderType.githubEnterprise) { +- if (this._type === AuthProviderType.githubEnterprise) { - body.append('github_enterprise', this.baseUri.toString(true)); - body.append('redirect_uri', await this.getRedirectEndpoint()); - } -- const result = await fetch(endpointUrl, { +- const result = await fetching(endpointUrl, { - method: 'POST', - headers: { - Accept: 'application/json', @@ -417,19 +416,19 @@ index 830e698..cd6f27e 100644 - private getServerUri(path: string = '') { diff --git a/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts b/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts -index ce2a3e8..2a5cf60 100644 +index 2fff6cf..46967ce 100644 --- a/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts +++ b/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts -@@ -306,3 +306,3 @@ export class AccountsActivityActionViewItem extends MenuActivityActionViewItem { +@@ -307,3 +307,3 @@ export class AccountsActivityActionViewItem extends MenuActivityActionViewItem { - if (providers.length && !menus.length) { + if (!menus.length) { const noAccountsAvailableAction = disposables.add(new Action('noAccountsAvailable', localize('noAccounts', "You are not signed in to any accounts"), undefined, false)); diff --git a/src/vs/workbench/services/authentication/browser/authenticationService.ts b/src/vs/workbench/services/authentication/browser/authenticationService.ts -index d5e2b75..a996eb7 100644 +index 1d9ac76..57b915c 100644 --- a/src/vs/workbench/services/authentication/browser/authenticationService.ts +++ b/src/vs/workbench/services/authentication/browser/authenticationService.ts -@@ -279,12 +279,2 @@ export class AuthenticationService extends Disposable implements IAuthentication +@@ -267,12 +267,2 @@ export class AuthenticationService extends Disposable implements IAuthentication } - - if (!this._authenticationProviders.size) { diff --git a/patches/win7.patch b/patches/win7.patch new file mode 100644 index 0000000..c2d1212 --- /dev/null +++ b/patches/win7.patch @@ -0,0 +1,9 @@ +diff --git a/build/win32/code.iss b/build/win32/code.iss +index d365ab1..1a02701 100644 +--- a/build/win32/code.iss ++++ b/build/win32/code.iss +@@ -28,3 +28,3 @@ ChangesEnvironment=true + ChangesAssociations=true +-MinVersion=6.2 ++MinVersion=6.1.7600 + SourceDir={#SourceDir} diff --git a/product.json b/product.json index 9084af7..decfce4 100644 --- a/product.json +++ b/product.json @@ -130,8 +130,7 @@ "telemetry" ], "ms-vscode.remote-server": [ - "resolvers", - "tunnels" + "resolvers" ], "ms-vscode.remote-explorer": [ "contribViewsRemote", @@ -222,6 +221,12 @@ ], "ms-vscode.cpptools": [ "terminalDataWriteEvent" + ], + "jeanp413.open-remote-ssh": [ + "resolvers", + "tunnels", + "terminalDataWriteEvent", + "contribViewsRemote" ] }, "extensionKind": { diff --git a/release.sh b/release.sh index 5359010..e2f2a60 100755 --- a/release.sh +++ b/release.sh @@ -23,7 +23,7 @@ if [[ $( gh release view --repo "${ASSETS_REPOSITORY}" "${RELEASE_VERSION}" 2>&1 CREATE_OPTIONS="--generate-notes" fi - gh release create "${RELEASE_VERSION}" --repo "${ASSETS_REPOSITORY}" --notes "${NOTES}" ${CREATE_OPTIONS} + gh release create "${RELEASE_VERSION}" --repo "${ASSETS_REPOSITORY}" --title "${RELEASE_VERSION}" --notes "${NOTES}" ${CREATE_OPTIONS} fi cd assets diff --git a/undo_telemetry.sh b/undo_telemetry.sh index 93076d7..2a3e1d7 100755 --- a/undo_telemetry.sh +++ b/undo_telemetry.sh @@ -14,12 +14,12 @@ REPLACEMENT="s|//[^/]+\.data\.microsoft\.com|//0\.0\.0\.0|g" if is_gnu_sed; then replace_with_debug () { - echo "found: ${2} (`date`)" + echo "found: ${2}" sed -i -E "${1}" "${2}" } else replace_with_debug () { - echo "found: ${2} (`date`)" + echo "found: ${2}" sed -i '' -E "${1}" "${2}" } fi