mirror of
https://github.com/coder/code-server.git
synced 2026-05-06 20:41:59 +02:00
Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
93fb76e4a7 | ||
|
|
a1537d7138 | ||
|
|
def81245a4 | ||
|
|
37c80c9bbd | ||
|
|
be37821ab9 | ||
|
|
f74f1721e6 | ||
|
|
fb63c0cd22 | ||
|
|
bb26d2edd3 | ||
|
|
303fe2bc4e | ||
|
|
5a38ab95fe | ||
|
|
19710ab144 | ||
|
|
a018e30d6f | ||
|
|
fb835838db | ||
|
|
3d7fbec40f | ||
|
|
96170de191 | ||
|
|
2e2d03371f |
@@ -15,7 +15,11 @@ v$VERSION
|
|||||||
|
|
||||||
VS Code v$(vscode_version)
|
VS Code v$(vscode_version)
|
||||||
|
|
||||||
# New Features
|
Upgrading is as easy as installing the new version over the old one. code-server
|
||||||
|
maintains all user data in \`~/.local/share/code-server\` so that it is preserved in between
|
||||||
|
installations.
|
||||||
|
|
||||||
|
## New Features
|
||||||
- ⭐ Summarize new features here with references to issues
|
- ⭐ Summarize new features here with references to issues
|
||||||
|
|
||||||
## Bug Fixes
|
## Bug Fixes
|
||||||
|
|||||||
@@ -264,9 +264,18 @@ index 28f8a69a2a91f9cb9f4dbd73ed3e689b2b3afe84..b5f5b10004d3e36092a30f685938a606
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/product.json b/product.json
|
diff --git a/product.json b/product.json
|
||||||
index 7cab6d1b9f3b84bfc703856e93773a293fd198cf..31d3d5a943192eee791e1121415b436dc1ed3822 100644
|
index 7cab6d1b9f3b84bfc703856e93773a293fd198cf..6924d94f65b390f52885b1036f7e96bce0e34680 100644
|
||||||
--- a/product.json
|
--- a/product.json
|
||||||
+++ b/product.json
|
+++ b/product.json
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
{
|
||||||
|
- "nameShort": "Code - OSS",
|
||||||
|
- "nameLong": "Code - OSS",
|
||||||
|
+ "nameShort": "code-server",
|
||||||
|
+ "nameLong": "code-server",
|
||||||
|
"applicationName": "code-oss",
|
||||||
|
"dataFolderName": ".vscode-oss",
|
||||||
|
"win32MutexName": "vscodeoss",
|
||||||
@@ -20,7 +20,7 @@
|
@@ -20,7 +20,7 @@
|
||||||
"darwinBundleIdentifier": "com.visualstudio.code.oss",
|
"darwinBundleIdentifier": "com.visualstudio.code.oss",
|
||||||
"linuxIconName": "com.visualstudio.code.oss",
|
"linuxIconName": "com.visualstudio.code.oss",
|
||||||
@@ -276,6 +285,22 @@ index 7cab6d1b9f3b84bfc703856e93773a293fd198cf..31d3d5a943192eee791e1121415b436d
|
|||||||
"urlProtocol": "code-oss",
|
"urlProtocol": "code-oss",
|
||||||
"extensionAllowedProposedApi": [
|
"extensionAllowedProposedApi": [
|
||||||
"ms-vscode.vscode-js-profile-flame",
|
"ms-vscode.vscode-js-profile-flame",
|
||||||
|
@@ -136,5 +136,14 @@
|
||||||
|
"publisherDisplayName": "Microsoft"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- ]
|
||||||
|
+ ],
|
||||||
|
+
|
||||||
|
+ "//": "https://github.com/VSCodium/vscodium/pull/155/files",
|
||||||
|
+ "documentationUrl": "https://go.microsoft.com/fwlink/?LinkID=533484#vscode",
|
||||||
|
+ "keyboardShortcutsUrlMac": "https://go.microsoft.com/fwlink/?linkid=832143",
|
||||||
|
+ "keyboardShortcutsUrlLinux": "https://go.microsoft.com/fwlink/?linkid=832144",
|
||||||
|
+ "keyboardShortcutsUrlWin": "https://go.microsoft.com/fwlink/?linkid=832145",
|
||||||
|
+ "introductoryVideosUrl": "https://go.microsoft.com/fwlink/?linkid=832146",
|
||||||
|
+ "tipsAndTricksUrl": "https://go.microsoft.com/fwlink/?linkid=852118",
|
||||||
|
+ "newsletterSignupUrl": "https://www.research.net/r/vsc-newsletter"
|
||||||
|
}
|
||||||
diff --git a/remote/.yarnrc b/remote/.yarnrc
|
diff --git a/remote/.yarnrc b/remote/.yarnrc
|
||||||
deleted file mode 100644
|
deleted file mode 100644
|
||||||
index c1a32ce532afa501fb19bdbcf6bcb0ec151ecd99..0000000000000000000000000000000000000000
|
index c1a32ce532afa501fb19bdbcf6bcb0ec151ecd99..0000000000000000000000000000000000000000
|
||||||
@@ -744,10 +769,10 @@ index 096b9e23493539c9937940a56e555d95bbae38d9..ef37e614004f550f7b64eacd362f6894
|
|||||||
remove(key: string, scope: StorageScope): void {
|
remove(key: string, scope: StorageScope): void {
|
||||||
diff --git a/src/vs/server/browser/client.ts b/src/vs/server/browser/client.ts
|
diff --git a/src/vs/server/browser/client.ts b/src/vs/server/browser/client.ts
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..3c0703b7174ad792a4b42841e96ee93765d71601
|
index 0000000000000000000000000000000000000000..385b9da491d38a9f5d10fab6e4666c84a892f49d
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/vs/server/browser/client.ts
|
+++ b/src/vs/server/browser/client.ts
|
||||||
@@ -0,0 +1,189 @@
|
@@ -0,0 +1,240 @@
|
||||||
+import { Emitter } from 'vs/base/common/event';
|
+import { Emitter } from 'vs/base/common/event';
|
||||||
+import { URI } from 'vs/base/common/uri';
|
+import { URI } from 'vs/base/common/uri';
|
||||||
+import { localize } from 'vs/nls';
|
+import { localize } from 'vs/nls';
|
||||||
@@ -766,6 +791,8 @@ index 0000000000000000000000000000000000000000..3c0703b7174ad792a4b42841e96ee937
|
|||||||
+import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService';
|
+import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService';
|
||||||
+import { Options } from 'vs/server/ipc.d';
|
+import { Options } from 'vs/server/ipc.d';
|
||||||
+import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
|
+import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
|
||||||
|
+import { ILogService } from 'vs/platform/log/common/log';
|
||||||
|
+import * as path from 'vs/base/common/path';
|
||||||
+
|
+
|
||||||
+class TelemetryService extends TelemetryChannelClient {
|
+class TelemetryService extends TelemetryChannelClient {
|
||||||
+ public constructor(
|
+ public constructor(
|
||||||
@@ -897,8 +924,57 @@ index 0000000000000000000000000000000000000000..3c0703b7174ad792a4b42841e96ee937
|
|||||||
+ });
|
+ });
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
|
+ const logService = (services.get(ILogService) as ILogService);
|
||||||
|
+ const storageService = (services.get(IStorageService) as IStorageService);
|
||||||
|
+ // We set this here first in case the path changes.
|
||||||
|
+ const updateCheckEndpoint = path.join(window.location.pathname, "/update/check")
|
||||||
|
+ const getUpdate = async (): Promise<void> => {
|
||||||
|
+ logService.debug("Checking for update...");
|
||||||
|
+
|
||||||
|
+ const response = await fetch(updateCheckEndpoint, {
|
||||||
|
+ headers: { "Accept": "application/json" },
|
||||||
|
+ });
|
||||||
|
+ if (!response.ok) {
|
||||||
|
+ throw new Error(response.statusText);
|
||||||
|
+ }
|
||||||
|
+ const json = await response.json();
|
||||||
|
+ if (json.error) {
|
||||||
|
+ throw new Error(json.error);
|
||||||
|
+ }
|
||||||
|
+ if (json.isLatest) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ const lastNoti = storageService.getNumber("csLastUpdateNotification", StorageScope.GLOBAL);
|
||||||
|
+ if (lastNoti) {
|
||||||
|
+ // Only remind them again after two days.
|
||||||
|
+ const timeout = 1000*60*24*2;
|
||||||
|
+ const threshold = lastNoti + timeout;
|
||||||
|
+ if (Date.now() < threshold) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ storageService.store("csLastUpdateNotification", Date.now(), StorageScope.GLOBAL);
|
||||||
|
+ (services.get(INotificationService) as INotificationService).notify({
|
||||||
|
+ severity: Severity.Info,
|
||||||
|
+ message: `[code-server v${json.latest}](https://github.com/cdr/code-server/releases/tag/v${json.latest}) has been released!`,
|
||||||
|
+ });
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ const updateLoop = (): void => {
|
||||||
|
+ getUpdate().catch((error) => {
|
||||||
|
+ logService.debug(`failed to check for update: ${error}`);
|
||||||
|
+ }).finally(() => {
|
||||||
|
+ // Check again every 6 hours.
|
||||||
|
+ setTimeout(updateLoop, 1000*60*6);
|
||||||
|
+ });
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ updateLoop();
|
||||||
|
+
|
||||||
+ // This will be used to set the background color while VS Code loads.
|
+ // This will be used to set the background color while VS Code loads.
|
||||||
+ const theme = (services.get(IStorageService) as IStorageService).get("colorThemeData", StorageScope.GLOBAL);
|
+ const theme = storageService.get("colorThemeData", StorageScope.GLOBAL);
|
||||||
+ if (theme) {
|
+ if (theme) {
|
||||||
+ localStorage.setItem("colorThemeData", theme);
|
+ localStorage.setItem("colorThemeData", theme);
|
||||||
+ }
|
+ }
|
||||||
@@ -3687,6 +3763,20 @@ index 021af6e0f8983c492f9cdd048ba2dcae7640bc1d..814dd0ff2fa7737e07833d8092c8f489
|
|||||||
|
|
||||||
module = module.with({ path: ensureSuffix(module.path, '.js') });
|
module = module.with({ path: ensureSuffix(module.path, '.js') });
|
||||||
const response = await fetch(module.toString(true));
|
const response = await fetch(module.toString(true));
|
||||||
|
diff --git a/src/vs/workbench/browser/actions/navigationActions.ts b/src/vs/workbench/browser/actions/navigationActions.ts
|
||||||
|
index 7344a3a29b32f7b370b99bf0cfdc79a322195ff8..dc21396e83e2f53914447d3460c2ee1103ecb28e 100644
|
||||||
|
--- a/src/vs/workbench/browser/actions/navigationActions.ts
|
||||||
|
+++ b/src/vs/workbench/browser/actions/navigationActions.ts
|
||||||
|
@@ -310,4 +310,8 @@ actionsRegistry.registerWorkbenchAction(SyncActionDescriptor.from(FocusNextPart,
|
||||||
|
actionsRegistry.registerWorkbenchAction(SyncActionDescriptor.from(FocusPreviousPart, { primary: KeyMod.Shift | KeyCode.F6 }), 'View: Focus Previous Part', CATEGORIES.View.value);
|
||||||
|
|
||||||
|
const workbenchRegistry = Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench);
|
||||||
|
-workbenchRegistry.registerWorkbenchContribution(GoHomeContributor, LifecyclePhase.Ready);
|
||||||
|
+// See https://github.com/cdr/code-server/issues/2328
|
||||||
|
+// workbenchRegistry.registerWorkbenchContribution(GoHomeContributor, LifecyclePhase.Ready);
|
||||||
|
+export const _1 = workbenchRegistry;
|
||||||
|
+export const _2 = GoHomeContributor;
|
||||||
|
+export const _3 = LifecyclePhase.Ready;
|
||||||
diff --git a/src/vs/workbench/browser/parts/activitybar/media/activitybarpart.css b/src/vs/workbench/browser/parts/activitybar/media/activitybarpart.css
|
diff --git a/src/vs/workbench/browser/parts/activitybar/media/activitybarpart.css b/src/vs/workbench/browser/parts/activitybar/media/activitybarpart.css
|
||||||
index ced2d815834e40a1543e80516472799075980733..dfcae73e8a042307600c67f163aa00ba9e0762f4 100644
|
index ced2d815834e40a1543e80516472799075980733..dfcae73e8a042307600c67f163aa00ba9e0762f4 100644
|
||||||
--- a/src/vs/workbench/browser/parts/activitybar/media/activitybarpart.css
|
--- a/src/vs/workbench/browser/parts/activitybar/media/activitybarpart.css
|
||||||
@@ -3764,6 +3854,73 @@ index 74f6922e98b4bb6a7fb100f5aac015afe9fc171b..3243a97c2d378013d96ffbe87e9df6dd
|
|||||||
|
|
||||||
.scm-view .monaco-list .monaco-list-row .resource-group > .actions,
|
.scm-view .monaco-list .monaco-list-row .resource-group > .actions,
|
||||||
.scm-view .monaco-list .monaco-list-row .resource > .name > .monaco-icon-label > .actions {
|
.scm-view .monaco-list .monaco-list-row .resource > .name > .monaco-icon-label > .actions {
|
||||||
|
diff --git a/src/vs/workbench/contrib/welcome/page/browser/vs_code_welcome_page.ts b/src/vs/workbench/contrib/welcome/page/browser/vs_code_welcome_page.ts
|
||||||
|
index 6af6a4b7f42654ec6cc60e0ba5efd376919f3e04..3a8176951628e0b2528aae8796ba684c3ab53d9a 100644
|
||||||
|
--- a/src/vs/workbench/contrib/welcome/page/browser/vs_code_welcome_page.ts
|
||||||
|
+++ b/src/vs/workbench/contrib/welcome/page/browser/vs_code_welcome_page.ts
|
||||||
|
@@ -4,6 +4,7 @@
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
import { escape } from 'vs/base/common/strings';
|
||||||
|
+import product from 'vs/platform/product/common/product';
|
||||||
|
import { localize } from 'vs/nls';
|
||||||
|
|
||||||
|
export default () => `
|
||||||
|
@@ -11,7 +12,7 @@ export default () => `
|
||||||
|
<div class="welcomePage" role="document">
|
||||||
|
<div class="title">
|
||||||
|
<h1 class="caption">${escape(localize('welcomePage.vscode', "Visual Studio Code"))}</h1>
|
||||||
|
- <p class="subtitle detail">${escape(localize({ key: 'welcomePage.editingEvolved', comment: ['Shown as subtitle on the Welcome page.'] }, "Editing evolved"))}</p>
|
||||||
|
+ <p class="subtitle detail">VS Code v${product.version}</p>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="splash">
|
||||||
|
@@ -32,6 +33,19 @@ export default () => `
|
||||||
|
</ul>
|
||||||
|
<p class="none detail">${escape(localize('welcomePage.noRecentFolders', "No recent folders"))}</p>
|
||||||
|
</div>
|
||||||
|
+ <div class="section help">
|
||||||
|
+ <h2 class="caption">code-server ${escape(localize('welcomePage.help', "Help"))}</h2>
|
||||||
|
+ <ul>
|
||||||
|
+ <li><a href="https://github.com/cdr/code-server">GitHub Repository</a></li>
|
||||||
|
+ <li><a href="https://github.com/cdr/code-server/releases/tag/v${product.codeServerVersion}">Release Notes</a></li>
|
||||||
|
+ <li><a href="https://github.com/cdr/code-server/issues">Issue Tracker</a></li>
|
||||||
|
+ <li><a href="https://github.com/cdr/code-server/blob/master/doc/FAQ.md">FAQ</a></li>
|
||||||
|
+ <li><a href="https://github.com/cdr/code-server/blob/master/doc/guide.md">Setup Guide</a></li>
|
||||||
|
+ <li><a href="https://github.com/cdr/code-server/tree/master/doc">Docs</a></li>
|
||||||
|
+ <li><a href="https://github.com/cdr/code-server/discussions">Discussions</a></li>
|
||||||
|
+ <li><a href="https://cdr.co/join-community">Slack</a></li>
|
||||||
|
+ </ul>
|
||||||
|
+ </div>
|
||||||
|
<div class="section help">
|
||||||
|
<h2 class="caption">${escape(localize('welcomePage.help', "Help"))}</h2>
|
||||||
|
<ul>
|
||||||
|
diff --git a/src/vs/workbench/contrib/welcome/page/browser/welcomePage.css b/src/vs/workbench/contrib/welcome/page/browser/welcomePage.css
|
||||||
|
index 738ce140c1af76ee0017c59cc883578e966f5348..80833b7023ed5795bb3de303b54ec08d9dab9b94 100644
|
||||||
|
--- a/src/vs/workbench/contrib/welcome/page/browser/welcomePage.css
|
||||||
|
+++ b/src/vs/workbench/contrib/welcome/page/browser/welcomePage.css
|
||||||
|
@@ -94,7 +94,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
.monaco-workbench .part.editor > .content .welcomePage .splash .section {
|
||||||
|
- margin-bottom: 5em;
|
||||||
|
+ margin-bottom: 3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.monaco-workbench .part.editor > .content .welcomePage .splash ul {
|
||||||
|
diff --git a/src/vs/workbench/contrib/welcome/page/browser/welcomePage.ts b/src/vs/workbench/contrib/welcome/page/browser/welcomePage.ts
|
||||||
|
index 4a61a79fe447e2aa238af568791bff1e0cec4d29..69cc2e4331a3b04d05d79632920f5c5bbfa924e8 100644
|
||||||
|
--- a/src/vs/workbench/contrib/welcome/page/browser/welcomePage.ts
|
||||||
|
+++ b/src/vs/workbench/contrib/welcome/page/browser/welcomePage.ts
|
||||||
|
@@ -328,7 +328,7 @@ class WelcomePage extends Disposable {
|
||||||
|
|
||||||
|
const prodName = container.querySelector('.welcomePage .title .caption') as HTMLElement;
|
||||||
|
if (prodName) {
|
||||||
|
- prodName.textContent = this.productService.nameLong;
|
||||||
|
+ prodName.textContent = `code-server v${this.productService.codeServerVersion}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
recentlyOpened.then(({ workspaces }) => {
|
||||||
diff --git a/src/vs/workbench/electron-sandbox/sandbox.simpleservices.ts b/src/vs/workbench/electron-sandbox/sandbox.simpleservices.ts
|
diff --git a/src/vs/workbench/electron-sandbox/sandbox.simpleservices.ts b/src/vs/workbench/electron-sandbox/sandbox.simpleservices.ts
|
||||||
index ed4f26407391bd62219a9f8245a5cd63a7cb7488..92f26d1b082f80475cf76409a4569e948e9e0bd9 100644
|
index ed4f26407391bd62219a9f8245a5cd63a7cb7488..92f26d1b082f80475cf76409a4569e948e9e0bd9 100644
|
||||||
--- a/src/vs/workbench/electron-sandbox/sandbox.simpleservices.ts
|
--- a/src/vs/workbench/electron-sandbox/sandbox.simpleservices.ts
|
||||||
@@ -3797,18 +3954,25 @@ index 85d83f37da179a1e39266cf72a02e971f590308e..0659738b36df1747c9afcabf8d9abf26
|
|||||||
};
|
};
|
||||||
|
|
||||||
diff --git a/src/vs/workbench/services/environment/browser/environmentService.ts b/src/vs/workbench/services/environment/browser/environmentService.ts
|
diff --git a/src/vs/workbench/services/environment/browser/environmentService.ts b/src/vs/workbench/services/environment/browser/environmentService.ts
|
||||||
index a8d43045ecc8cbe04b3f8440cff16d42aadbcad0..cd589c6f75eccbeefbf364d426ac882396b26fb4 100644
|
index a8d43045ecc8cbe04b3f8440cff16d42aadbcad0..8e122c761ac7ddfee11f9dda2ac5e845b893cc28 100644
|
||||||
--- a/src/vs/workbench/services/environment/browser/environmentService.ts
|
--- a/src/vs/workbench/services/environment/browser/environmentService.ts
|
||||||
+++ b/src/vs/workbench/services/environment/browser/environmentService.ts
|
+++ b/src/vs/workbench/services/environment/browser/environmentService.ts
|
||||||
@@ -119,8 +119,18 @@ export class BrowserWorkbenchEnvironmentService implements IWorkbenchEnvironment
|
@@ -119,8 +119,25 @@ export class BrowserWorkbenchEnvironmentService implements IWorkbenchEnvironment
|
||||||
@memoize
|
@memoize
|
||||||
get logFile(): URI { return joinPath(this.options.logsPath, 'window.log'); }
|
get logFile(): URI { return joinPath(this.options.logsPath, 'window.log'); }
|
||||||
|
|
||||||
+ // NOTE@coder: Use the regular path for extensions that write directly to disk
|
+ // NOTE@coder: Use the same path in // ../../../../platform/environment/node/environmentService.ts
|
||||||
+ // instead of using the VS Code API.
|
+ // and don't use the user data scheme. This solves two problems:
|
||||||
|
+ // 1. Extensions running in the browser (like Vim) might use these paths
|
||||||
|
+ // directly instead of using the file service and most likely can't write
|
||||||
|
+ // to `/User` on disk.
|
||||||
|
+ // 2. Settings will be stored in the file system instead of in browser
|
||||||
|
+ // storage. Using browser storage makes sharing or seeding settings
|
||||||
|
+ // between browsers difficult. We may want to revisit this once/if we get
|
||||||
|
+ // settings sync.
|
||||||
@memoize
|
@memoize
|
||||||
- get userRoamingDataHome(): URI { return URI.file('/User').with({ scheme: Schemas.userData }); }
|
- get userRoamingDataHome(): URI { return URI.file('/User').with({ scheme: Schemas.userData }); }
|
||||||
+ get userRoamingDataHome(): URI { return URI.file(this.userDataPath).with({ scheme: Schemas.userData }); }
|
+ get userRoamingDataHome(): URI { return joinPath(URI.file(this.userDataPath).with({ scheme: Schemas.vscodeRemote }), 'User'); }
|
||||||
+ @memoize
|
+ @memoize
|
||||||
+ get userDataPath(): string {
|
+ get userDataPath(): string {
|
||||||
+ const dataPath = this.payload?.get("userDataPath");
|
+ const dataPath = this.payload?.get("userDataPath");
|
||||||
@@ -3820,7 +3984,7 @@ index a8d43045ecc8cbe04b3f8440cff16d42aadbcad0..cd589c6f75eccbeefbf364d426ac8823
|
|||||||
|
|
||||||
@memoize
|
@memoize
|
||||||
get settingsResource(): URI { return joinPath(this.userRoamingDataHome, 'settings.json'); }
|
get settingsResource(): URI { return joinPath(this.userRoamingDataHome, 'settings.json'); }
|
||||||
@@ -301,7 +311,12 @@ export class BrowserWorkbenchEnvironmentService implements IWorkbenchEnvironment
|
@@ -301,7 +318,12 @@ export class BrowserWorkbenchEnvironmentService implements IWorkbenchEnvironment
|
||||||
extensionHostDebugEnvironment.params.port = parseInt(value);
|
extensionHostDebugEnvironment.params.port = parseInt(value);
|
||||||
break;
|
break;
|
||||||
case 'enableProposedApi':
|
case 'enableProposedApi':
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ type: application
|
|||||||
# This is the chart version. This version number should be incremented each time you make changes
|
# This is the chart version. This version number should be incremented each time you make changes
|
||||||
# to the chart and its templates, including the app version.
|
# to the chart and its templates, including the app version.
|
||||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||||
version: 1.0.1
|
version: 1.0.2
|
||||||
|
|
||||||
# This is the version number of the application being deployed. This version number should be
|
# This is the version number of the application being deployed. This version number should be
|
||||||
# incremented each time you make changes to the application. Versions are not expected to
|
# incremented each time you make changes to the application. Versions are not expected to
|
||||||
# follow Semantic Versioning. They should reflect the version the application is using.
|
# follow Semantic Versioning. They should reflect the version the application is using.
|
||||||
appVersion: 3.7.2
|
appVersion: 3.7.3
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# code-server
|
# code-server
|
||||||
|
|
||||||
  
|
  
|
||||||
|
|
||||||
[code-server](https://github.com/cdr/code-server) code-server is VS Code running
|
[code-server](https://github.com/cdr/code-server) code-server is VS Code running
|
||||||
on a remote server, accessible through the browser.
|
on a remote server, accessible through the browser.
|
||||||
@@ -72,7 +72,7 @@ and their default values.
|
|||||||
| hostnameOverride | string | `""` | |
|
| hostnameOverride | string | `""` | |
|
||||||
| image.pullPolicy | string | `"Always"` | |
|
| image.pullPolicy | string | `"Always"` | |
|
||||||
| image.repository | string | `"codercom/code-server"` | |
|
| image.repository | string | `"codercom/code-server"` | |
|
||||||
| image.tag | string | `"3.7.2"` | |
|
| image.tag | string | `"3.7.3"` | |
|
||||||
| imagePullSecrets | list | `[]` | |
|
| imagePullSecrets | list | `[]` | |
|
||||||
| ingress.enabled | bool | `false` | |
|
| ingress.enabled | bool | `false` | |
|
||||||
| nameOverride | string | `""` | |
|
| nameOverride | string | `""` | |
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ replicaCount: 1
|
|||||||
|
|
||||||
image:
|
image:
|
||||||
repository: codercom/code-server
|
repository: codercom/code-server
|
||||||
tag: '3.7.2'
|
tag: '3.7.3'
|
||||||
pullPolicy: Always
|
pullPolicy: Always
|
||||||
|
|
||||||
imagePullSecrets: []
|
imagePullSecrets: []
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
||||||
# Install
|
# Install
|
||||||
|
|
||||||
|
- [Upgrading](#upgrading)
|
||||||
- [install.sh](#installsh)
|
- [install.sh](#installsh)
|
||||||
- [Flags](#flags)
|
- [Flags](#flags)
|
||||||
- [Detection Reference](#detection-reference)
|
- [Detection Reference](#detection-reference)
|
||||||
@@ -19,6 +20,12 @@
|
|||||||
This document demonstrates how to install `code-server` on
|
This document demonstrates how to install `code-server` on
|
||||||
various distros and operating systems.
|
various distros and operating systems.
|
||||||
|
|
||||||
|
## Upgrading
|
||||||
|
|
||||||
|
When upgrading you can just install the new version over the old one. code-server
|
||||||
|
maintains all user data in `~/.local/share/code-server` so that it is preserved in between
|
||||||
|
installations.
|
||||||
|
|
||||||
## install.sh
|
## install.sh
|
||||||
|
|
||||||
We have a [script](../install.sh) to install code-server for Linux, macOS and FreeBSD.
|
We have a [script](../install.sh) to install code-server for Linux, macOS and FreeBSD.
|
||||||
@@ -80,8 +87,8 @@ commands presented in the rest of this document.
|
|||||||
## Debian, Ubuntu
|
## Debian, Ubuntu
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -fOL https://github.com/cdr/code-server/releases/download/v3.7.2/code-server_3.7.2_amd64.deb
|
curl -fOL https://github.com/cdr/code-server/releases/download/v3.7.3/code-server_3.7.3_amd64.deb
|
||||||
sudo dpkg -i code-server_3.7.2_amd64.deb
|
sudo dpkg -i code-server_3.7.3_amd64.deb
|
||||||
sudo systemctl enable --now code-server@$USER
|
sudo systemctl enable --now code-server@$USER
|
||||||
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
|
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
|
||||||
```
|
```
|
||||||
@@ -89,8 +96,8 @@ sudo systemctl enable --now code-server@$USER
|
|||||||
## Fedora, CentOS, RHEL, SUSE
|
## Fedora, CentOS, RHEL, SUSE
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -fOL https://github.com/cdr/code-server/releases/download/v3.7.2/code-server-3.7.2-amd64.rpm
|
curl -fOL https://github.com/cdr/code-server/releases/download/v3.7.3/code-server-3.7.3-amd64.rpm
|
||||||
sudo rpm -i code-server-3.7.2-amd64.rpm
|
sudo rpm -i code-server-3.7.3-amd64.rpm
|
||||||
sudo systemctl enable --now code-server@$USER
|
sudo systemctl enable --now code-server@$USER
|
||||||
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
|
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
|
||||||
```
|
```
|
||||||
@@ -159,10 +166,10 @@ Here is an example script for installing and using a standalone `code-server` re
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
mkdir -p ~/.local/lib ~/.local/bin
|
mkdir -p ~/.local/lib ~/.local/bin
|
||||||
curl -fL https://github.com/cdr/code-server/releases/download/v3.7.2/code-server-3.7.2-linux-amd64.tar.gz \
|
curl -fL https://github.com/cdr/code-server/releases/download/v3.7.3/code-server-3.7.3-linux-amd64.tar.gz \
|
||||||
| tar -C ~/.local/lib -xz
|
| tar -C ~/.local/lib -xz
|
||||||
mv ~/.local/lib/code-server-3.7.2-linux-amd64 ~/.local/lib/code-server-3.7.2
|
mv ~/.local/lib/code-server-3.7.3-linux-amd64 ~/.local/lib/code-server-3.7.3
|
||||||
ln -s ~/.local/lib/code-server-3.7.2/bin/code-server ~/.local/bin/code-server
|
ln -s ~/.local/lib/code-server-3.7.3/bin/code-server ~/.local/bin/code-server
|
||||||
PATH="~/.local/bin:$PATH"
|
PATH="~/.local/bin:$PATH"
|
||||||
code-server
|
code-server
|
||||||
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
|
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "code-server",
|
"name": "code-server",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"version": "3.7.2",
|
"version": "3.7.3",
|
||||||
"description": "Run VS Code on a remote server.",
|
"description": "Run VS Code on a remote server.",
|
||||||
"homepage": "https://github.com/cdr/code-server",
|
"homepage": "https://github.com/cdr/code-server",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
|
|||||||
@@ -32,11 +32,6 @@
|
|||||||
<link rel="apple-touch-icon" href="{{CS_STATIC_BASE}}/src/browser/media/pwa-icon-384.png" />
|
<link rel="apple-touch-icon" href="{{CS_STATIC_BASE}}/src/browser/media/pwa-icon-384.png" />
|
||||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||||
|
|
||||||
<!-- Prefetch to avoid waterfall -->
|
|
||||||
<!-- PROD_ONLY
|
|
||||||
<link rel="prefetch" href="{{CS_STATIC_BASE}}/lib/vscode/node_modules/semver-umd/lib/semver-umd.js">
|
|
||||||
END_PROD_ONLY -->
|
|
||||||
|
|
||||||
<meta id="coder-options" data-settings="{{OPTIONS}}" />
|
<meta id="coder-options" data-settings="{{OPTIONS}}" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ try {
|
|||||||
"xterm-addon-search": `../node_modules/xterm-addon-search/lib/xterm-addon-search.js`,
|
"xterm-addon-search": `../node_modules/xterm-addon-search/lib/xterm-addon-search.js`,
|
||||||
"xterm-addon-unicode11": `../node_modules/xterm-addon-unicode11/lib/xterm-addon-unicode11.js`,
|
"xterm-addon-unicode11": `../node_modules/xterm-addon-unicode11/lib/xterm-addon-unicode11.js`,
|
||||||
"xterm-addon-webgl": `../node_modules/xterm-addon-webgl/lib/xterm-addon-webgl.js`,
|
"xterm-addon-webgl": `../node_modules/xterm-addon-webgl/lib/xterm-addon-webgl.js`,
|
||||||
"semver-umd": `../node_modules/semver-umd/lib/semver-umd.js`,
|
|
||||||
"tas-client-umd": `../node_modules/tas-client-umd/lib/tas-client-umd.js`,
|
"tas-client-umd": `../node_modules/tas-client-umd/lib/tas-client-umd.js`,
|
||||||
"iconv-lite-umd": `../node_modules/iconv-lite-umd/lib/iconv-lite-umd.js`,
|
"iconv-lite-umd": `../node_modules/iconv-lite-umd/lib/iconv-lite-umd.js`,
|
||||||
jschardet: `../node_modules/jschardet/dist/jschardet.min.js`,
|
jschardet: `../node_modules/jschardet/dist/jschardet.min.js`,
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ export const router = Router()
|
|||||||
|
|
||||||
const provider = new UpdateProvider()
|
const provider = new UpdateProvider()
|
||||||
|
|
||||||
router.get("/", ensureAuthenticated, async (req, res) => {
|
router.get("/check", ensureAuthenticated, async (req, res) => {
|
||||||
const update = await provider.getUpdate(req.query.force === "true")
|
const update = await provider.getUpdate(req.query.force === "true")
|
||||||
res.json({
|
res.json({
|
||||||
checked: update.checked,
|
checked: update.checked,
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ export class UpdateProvider {
|
|||||||
public isLatestVersion(latest: Update): boolean {
|
public isLatestVersion(latest: Update): boolean {
|
||||||
logger.debug("comparing versions", field("current", version), field("latest", latest.version))
|
logger.debug("comparing versions", field("current", version), field("latest", latest.version))
|
||||||
try {
|
try {
|
||||||
return latest.version === version || semver.lt(latest.version, version)
|
return semver.lte(latest.version, version)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user