mirror of https://github.com/coder/code-server.git
fix: version in about dialog (#5057)
* Fix code-server version not appearing in other languages It needs to be separate from the localize call since the language version of that string is used and it will not include a spot for the code-server version. I also moved the "v" so we do not get "vUnknown". * Add code-server version to product configuration Before 1.64 the entire product configuration was sent to the client but that was removed so we have to add anything we want to use on the client, like the code-server version (used in the about dialog). Fixes #5027. * Refresh patches * Change version test to look for specific version This will catch if we are not sending the actual version to the client.
This commit is contained in:
parent
d796cc20e0
commit
5bc26e90cb
|
@ -185,10 +185,10 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
||||||
settingsSyncOptions: !this._environmentService.isBuilt && this._environmentService.args['enable-sync'] ? { enabled: true } : undefined,
|
settingsSyncOptions: !this._environmentService.isBuilt && this._environmentService.args['enable-sync'] ? { enabled: true } : undefined,
|
||||||
productConfiguration: <Partial<IProductConfiguration>>{
|
productConfiguration: <Partial<IProductConfiguration>>{
|
||||||
+ rootEndpoint: base,
|
+ rootEndpoint: base,
|
||||||
|
codeServerVersion: this._productService.codeServerVersion,
|
||||||
embedderIdentifier: 'server-distro',
|
embedderIdentifier: 'server-distro',
|
||||||
extensionsGallery: this._webExtensionResourceUrlTemplate ? {
|
extensionsGallery: this._webExtensionResourceUrlTemplate ? {
|
||||||
...this._productService.extensionsGallery,
|
@@ -291,7 +297,9 @@ export class WebClientServer {
|
||||||
@@ -290,7 +296,9 @@ export class WebClientServer {
|
|
||||||
} : undefined
|
} : undefined
|
||||||
}
|
}
|
||||||
})))
|
})))
|
||||||
|
@ -199,7 +199,7 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
||||||
|
|
||||||
const cspDirectives = [
|
const cspDirectives = [
|
||||||
'default-src \'self\';',
|
'default-src \'self\';',
|
||||||
@@ -369,3 +377,70 @@ export class WebClientServer {
|
@@ -370,3 +378,70 @@ export class WebClientServer {
|
||||||
return res.end(data);
|
return res.end(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -185,7 +185,7 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
||||||
const data = (await util.promisify(fs.readFile)(filePath)).toString()
|
const data = (await util.promisify(fs.readFile)(filePath)).toString()
|
||||||
.replace('{{WORKBENCH_WEB_CONFIGURATION}}', escapeAttribute(JSON.stringify({
|
.replace('{{WORKBENCH_WEB_CONFIGURATION}}', escapeAttribute(JSON.stringify({
|
||||||
remoteAuthority,
|
remoteAuthority,
|
||||||
@@ -302,7 +305,8 @@ export class WebClientServer {
|
@@ -303,7 +306,8 @@ export class WebClientServer {
|
||||||
})))
|
})))
|
||||||
.replace('{{WORKBENCH_AUTH_SESSION}}', () => authSessionInfo ? escapeAttribute(JSON.stringify(authSessionInfo)) : '')
|
.replace('{{WORKBENCH_AUTH_SESSION}}', () => authSessionInfo ? escapeAttribute(JSON.stringify(authSessionInfo)) : '')
|
||||||
.replace(/{{BASE}}/g, base)
|
.replace(/{{BASE}}/g, base)
|
||||||
|
|
|
@ -104,18 +104,22 @@ Index: code-server/lib/vscode/src/vs/workbench/browser/parts/dialogs/dialogHandl
|
||||||
===================================================================
|
===================================================================
|
||||||
--- code-server.orig/lib/vscode/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
|
--- code-server.orig/lib/vscode/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
|
||||||
+++ code-server/lib/vscode/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
|
+++ code-server/lib/vscode/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
|
||||||
@@ -144,11 +144,12 @@ export class BrowserDialogHandler implem
|
@@ -143,12 +143,15 @@ export class BrowserDialogHandler implem
|
||||||
|
|
||||||
async about(): Promise<void> {
|
async about(): Promise<void> {
|
||||||
const detailString = (useAgo: boolean): string => {
|
const detailString = (useAgo: boolean): string => {
|
||||||
return localize('aboutDetail',
|
- return localize('aboutDetail',
|
||||||
- "Version: {0}\nCommit: {1}\nDate: {2}\nBrowser: {3}",
|
- "Version: {0}\nCommit: {1}\nDate: {2}\nBrowser: {3}",
|
||||||
+ "code-server: v{4}\nCode: {0}\nCommit: {1}\nDate: {2}\nBrowser: {3}",
|
+ return localize('aboutCodeServerDetail',
|
||||||
|
+ "code-server: {0}",
|
||||||
|
+ this.productService.codeServerVersion ? `v${this.productService.codeServerVersion}` : 'Unknown'
|
||||||
|
+ ) + '\n' + localize('aboutDetail',
|
||||||
|
+ "Code: {0}\nCommit: {1}\nDate: {2}\nBrowser: {3}",
|
||||||
this.productService.version || 'Unknown',
|
this.productService.version || 'Unknown',
|
||||||
this.productService.commit || 'Unknown',
|
this.productService.commit || 'Unknown',
|
||||||
this.productService.date ? `${this.productService.date}${useAgo ? ' (' + fromNow(new Date(this.productService.date), true) + ')' : ''}` : 'Unknown',
|
this.productService.date ? `${this.productService.date}${useAgo ? ' (' + fromNow(new Date(this.productService.date), true) + ')' : ''}` : 'Unknown',
|
||||||
- navigator.userAgent
|
- navigator.userAgent
|
||||||
+ navigator.userAgent,
|
+ navigator.userAgent,
|
||||||
+ this.productService.codeServerVersion || 'Unknown'
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -253,3 +257,15 @@ Index: code-server/lib/vscode/src/vs/code/browser/workbench/workbench.html
|
||||||
<link rel="manifest" href="/manifest.json" crossorigin="use-credentials" />
|
<link rel="manifest" href="/manifest.json" crossorigin="use-credentials" />
|
||||||
<link data-name="vs/workbench/workbench.web.main" rel="stylesheet" href="./static/out/vs/workbench/workbench.web.main.css">
|
<link data-name="vs/workbench/workbench.web.main" rel="stylesheet" href="./static/out/vs/workbench/workbench.web.main.css">
|
||||||
|
|
||||||
|
Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
||||||
|
===================================================================
|
||||||
|
--- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts
|
||||||
|
+++ code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
||||||
|
@@ -279,6 +279,7 @@ export class WebClientServer {
|
||||||
|
developmentOptions: { enableSmokeTestDriver: this._environmentService.driverHandle === 'web' ? true : undefined },
|
||||||
|
settingsSyncOptions: !this._environmentService.isBuilt && this._environmentService.args['enable-sync'] ? { enabled: true } : undefined,
|
||||||
|
productConfiguration: <Partial<IProductConfiguration>>{
|
||||||
|
+ codeServerVersion: this._productService.codeServerVersion,
|
||||||
|
embedderIdentifier: 'server-distro',
|
||||||
|
extensionsGallery: this._webExtensionResourceUrlTemplate ? {
|
||||||
|
...this._productService.extensionsGallery,
|
||||||
|
|
|
@ -45,9 +45,9 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
||||||
rootEndpoint: base,
|
rootEndpoint: base,
|
||||||
updateEndpoint: !this._environmentService.args['disable-update-check'] ? base + '/update/check' : undefined,
|
updateEndpoint: !this._environmentService.args['disable-update-check'] ? base + '/update/check' : undefined,
|
||||||
+ logoutEndpoint: this._environmentService.args['auth'] ? base + '/logout' : undefined,
|
+ logoutEndpoint: this._environmentService.args['auth'] ? base + '/logout' : undefined,
|
||||||
|
codeServerVersion: this._productService.codeServerVersion,
|
||||||
embedderIdentifier: 'server-distro',
|
embedderIdentifier: 'server-distro',
|
||||||
extensionsGallery: {
|
extensionsGallery: {
|
||||||
...this._productService.extensionsGallery,
|
|
||||||
Index: code-server/lib/vscode/src/vs/workbench/browser/client.ts
|
Index: code-server/lib/vscode/src/vs/workbench/browser/client.ts
|
||||||
===================================================================
|
===================================================================
|
||||||
--- code-server.orig/lib/vscode/src/vs/workbench/browser/client.ts
|
--- code-server.orig/lib/vscode/src/vs/workbench/browser/client.ts
|
||||||
|
|
|
@ -32,9 +32,9 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
||||||
===================================================================
|
===================================================================
|
||||||
--- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts
|
--- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts
|
||||||
+++ code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
+++ code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
||||||
@@ -286,14 +286,14 @@ export class WebClientServer {
|
@@ -287,14 +287,14 @@ export class WebClientServer {
|
||||||
productConfiguration: <Partial<IProductConfiguration>>{
|
|
||||||
rootEndpoint: base,
|
rootEndpoint: base,
|
||||||
|
codeServerVersion: this._productService.codeServerVersion,
|
||||||
embedderIdentifier: 'server-distro',
|
embedderIdentifier: 'server-distro',
|
||||||
- extensionsGallery: this._webExtensionResourceUrlTemplate ? {
|
- extensionsGallery: this._webExtensionResourceUrlTemplate ? {
|
||||||
+ extensionsGallery: {
|
+ extensionsGallery: {
|
||||||
|
|
|
@ -73,9 +73,9 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
||||||
updateEndpoint: !this._environmentService.args['disable-update-check'] ? base + '/update/check' : undefined,
|
updateEndpoint: !this._environmentService.args['disable-update-check'] ? base + '/update/check' : undefined,
|
||||||
logoutEndpoint: this._environmentService.args['auth'] ? base + '/logout' : undefined,
|
logoutEndpoint: this._environmentService.args['auth'] ? base + '/logout' : undefined,
|
||||||
+ proxyEndpointTemplate: base + '/proxy/{{port}}',
|
+ proxyEndpointTemplate: base + '/proxy/{{port}}',
|
||||||
|
codeServerVersion: this._productService.codeServerVersion,
|
||||||
embedderIdentifier: 'server-distro',
|
embedderIdentifier: 'server-distro',
|
||||||
extensionsGallery: {
|
extensionsGallery: {
|
||||||
...this._productService.extensionsGallery,
|
|
||||||
Index: code-server/lib/vscode/src/vs/workbench/browser/web.main.ts
|
Index: code-server/lib/vscode/src/vs/workbench/browser/web.main.ts
|
||||||
===================================================================
|
===================================================================
|
||||||
--- code-server.orig/lib/vscode/src/vs/workbench/browser/web.main.ts
|
--- code-server.orig/lib/vscode/src/vs/workbench/browser/web.main.ts
|
||||||
|
|
|
@ -21,9 +21,9 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
||||||
===================================================================
|
===================================================================
|
||||||
--- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts
|
--- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts
|
||||||
+++ code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
+++ code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
||||||
@@ -297,6 +297,10 @@ export class WebClientServer {
|
@@ -298,6 +298,10 @@ export class WebClientServer {
|
||||||
logoutEndpoint: this._environmentService.args['auth'] ? base + '/logout' : undefined,
|
|
||||||
proxyEndpointTemplate: base + '/proxy/{{port}}',
|
proxyEndpointTemplate: base + '/proxy/{{port}}',
|
||||||
|
codeServerVersion: this._productService.codeServerVersion,
|
||||||
embedderIdentifier: 'server-distro',
|
embedderIdentifier: 'server-distro',
|
||||||
+ serviceWorker: {
|
+ serviceWorker: {
|
||||||
+ scope: vscodeBase + '/',
|
+ scope: vscodeBase + '/',
|
||||||
|
|
|
@ -105,9 +105,9 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
||||||
productConfiguration: <Partial<IProductConfiguration>>{
|
productConfiguration: <Partial<IProductConfiguration>>{
|
||||||
rootEndpoint: base,
|
rootEndpoint: base,
|
||||||
+ updateEndpoint: !this._environmentService.args['disable-update-check'] ? base + '/update/check' : undefined,
|
+ updateEndpoint: !this._environmentService.args['disable-update-check'] ? base + '/update/check' : undefined,
|
||||||
|
codeServerVersion: this._productService.codeServerVersion,
|
||||||
embedderIdentifier: 'server-distro',
|
embedderIdentifier: 'server-distro',
|
||||||
extensionsGallery: {
|
extensionsGallery: {
|
||||||
...this._productService.extensionsGallery,
|
|
||||||
Index: code-server/lib/vscode/src/vs/server/node/serverEnvironmentService.ts
|
Index: code-server/lib/vscode/src/vs/server/node/serverEnvironmentService.ts
|
||||||
===================================================================
|
===================================================================
|
||||||
--- code-server.orig/lib/vscode/src/vs/server/node/serverEnvironmentService.ts
|
--- code-server.orig/lib/vscode/src/vs/server/node/serverEnvironmentService.ts
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { version } from "../../src/node/constants"
|
||||||
import { describe, test, expect } from "./baseFixture"
|
import { describe, test, expect } from "./baseFixture"
|
||||||
|
|
||||||
describe("Open Help > About", true, [], {}, () => {
|
describe("Open Help > About", true, [], {}, () => {
|
||||||
|
@ -5,8 +6,12 @@ describe("Open Help > About", true, [], {}, () => {
|
||||||
// Open using the menu.
|
// Open using the menu.
|
||||||
await codeServerPage.navigateMenus(["Help", "About"])
|
await codeServerPage.navigateMenus(["Help", "About"])
|
||||||
|
|
||||||
|
const isDevMode = process.env.VSCODE_DEV === "1"
|
||||||
|
|
||||||
// Look for code-server info div.
|
// Look for code-server info div.
|
||||||
const element = await codeServerPage.page.waitForSelector('div[role="dialog"] >> text=code-server')
|
const element = await codeServerPage.page.waitForSelector(
|
||||||
|
`div[role="dialog"] >> text=code-server: ${isDevMode ? "Unknown" : "v" + version}`,
|
||||||
|
)
|
||||||
expect(element).not.toBeNull()
|
expect(element).not.toBeNull()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue