Compare commits

..

17 Commits

Author SHA1 Message Date
Olivier Benz
b7ef8f9bd7 Update Code to 1.96.4 (#7170) 2025-01-17 13:46:30 -09:00
Olivier Benz
b60985e53b Update Code to 1.96.3 (#7164) 2025-01-13 11:37:17 -09:00
Jérôme Petazzoni
b18a647d0a Update Alpine instructions (#7156)
While trying to set up code-server on Alpine, I ran into build errors. To solve them, I had to add Kerberos development libs. Also, it looks like npm config doesn't work in recent version of Node and doesn't seem to be necessary. These instructions were tested in the Docker `node:20-alpine` image.
2025-01-13 11:18:53 -09:00
Asher
f4f02655a1 Release v4.96.2 2024-12-20 14:52:05 -09:00
Olivier Benz
08cbdfbdf1 Update Code to 1.96.2 (#7133) 2024-12-19 12:19:11 -09:00
Asher
339a448471 Release v4.96.1 2024-12-18 14:25:18 -09:00
Asher
272e28abc6 Set GITHUB_TOKEN on macOS job
Trying to see if this will help with the 403s trying to download
ripgrep.
2024-12-18 13:42:37 -09:00
Asher
c187e5e782 Release v4.95.3 2024-12-18 13:42:36 -09:00
qupig
318c582043 style: add dark theme color scheme (#7118)
hen the user's browser does not support `light-dark`, fall back to the light theme color scheme.
2024-12-18 12:37:53 -09:00
Olivier Benz
db311e6ff5 Update Code to 1.96.1 (#7130) 2024-12-18 11:35:24 -09:00
Olivier Benz
ccd2a30dfc Update Code to 1.96.0 (#7112) 2024-12-13 09:13:59 -09:00
Asher
99e1f63d76 chore: pin prettier to version 3.4.2 2024-12-13 09:05:30 -09:00
qupig
25c2183be0 ci: fix prettier check job
Use prettier version specified in `package.json` instead of fixed versions from third-party workflows.
2024-12-12 20:13:22 +00:00
qupig
8f00c2e289 chore: ignore prettier 3.4.2 code format commit 2024-12-12 19:01:09 +00:00
qupig
9b0340a092 chore: format code to prettier 3.4.2 2024-12-12 18:44:10 +00:00
qupig
ccded68cd4 chore: update and fixed prettier to 3.4.2 2024-12-12 18:41:49 +00:00
Theodore Herzfeld
4af06de4c3 Fix extraInitContainers conditional (#7085) 2024-11-22 22:38:56 +00:00
25 changed files with 111 additions and 53 deletions

2
.git-blame-ignore-revs Normal file
View File

@@ -0,0 +1,2 @@
# Prettier 3.4.2
9b0340a09276f93c054d705d1b9a5f24cc5dbc97

View File

@@ -23,17 +23,25 @@ concurrency:
jobs:
prettier:
name: Format with Prettier
name: Run prettier check
runs-on: ubuntu-22.04
timeout-minutes: 5
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Run prettier with actionsx/prettier
uses: actionsx/prettier@v3
- name: Install Node.js
uses: actions/setup-node@v4
with:
args: --check --log-level=warn .
node-version-file: .node-version
cache: npm
cache-dependency-path: |
package-lock.json
test/package-lock.json
- run: SKIP_SUBMODULE_DEPS=1 npm ci
- run: npx prettier --check .
doctoc:
name: Doctoc markdown files

View File

@@ -196,6 +196,9 @@ jobs:
runs-on: macos-latest
timeout-minutes: 15
needs: npm-version
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Checkout repo
uses: actions/checkout@v4

View File

@@ -1 +1 @@
20.18.0
20.18.1

View File

@@ -22,6 +22,34 @@ Code v99.99.999
## Unreleased
## [4.96.2](https://github.com/coder/code-server/releases/tag/v4.96.2) - 2024-12-20
Code v1.96.2
### Changed
- Update to Code 1.96.2.
## [4.96.1](https://github.com/coder/code-server/releases/tag/v4.96.1) - 2024-12-18
Code v1.96.1
### Added
- Dark color scheme for login and error pages.
### Changed
- Update to Code 1.96.1.
## [4.95.3](https://github.com/coder/code-server/releases/tag/v4.95.3) - 2024-11-18
Code v1.95.3
### Changed
- Update to Code 1.95.3.
## [4.95.2](https://github.com/coder/code-server/releases/tag/v4.95.2) - 2024-11-12
Code v1.95.2

View File

@@ -15,9 +15,9 @@ type: application
# 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.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 3.24.0
version: 3.25.1
# 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
# follow Semantic Versioning. They should reflect the version the application is using.
appVersion: 4.93.1
appVersion: 4.96.2

View File

@@ -35,8 +35,9 @@ spec:
securityContext:
fsGroup: {{ .Values.securityContext.fsGroup }}
{{- end }}
{{- if and .Values.volumePermissions.enabled .Values.persistence.enabled }}
{{- if or (and .Values.volumePermissions.enabled .Values.persistence.enabled) .Values.extraInitContainers }}
initContainers:
{{- if and .Values.volumePermissions.enabled .Values.persistence.enabled }}
- name: init-chmod-data
image: busybox:latest
imagePullPolicy: IfNotPresent
@@ -50,6 +51,7 @@ spec:
volumeMounts:
- name: data
mountPath: /home/coder
{{- end }}
{{- if .Values.extraInitContainers }}
{{ tpl .Values.extraInitContainers . | indent 6}}
{{- end }}

View File

@@ -6,7 +6,7 @@ replicaCount: 1
image:
repository: codercom/code-server
tag: '4.93.1'
tag: '4.96.2'
pullPolicy: Always
# Specifies one or more secrets to be used when pulling images from a

View File

@@ -62,8 +62,7 @@ Proceed to [installing](#installing)
## Alpine
```bash
apk add alpine-sdk bash libstdc++ libc6-compat
npm config set python python3
apk add alpine-sdk bash libstdc++ libc6-compat python3 krb5-dev
```
Proceed to [installing](#installing)

9
package-lock.json generated
View File

@@ -59,7 +59,7 @@
"eslint-plugin-import": "^2.28.1",
"eslint-plugin-prettier": "^5.0.0",
"globals": "^15.10.0",
"prettier": "^3.0.3",
"prettier": "3.4.2",
"prettier-plugin-sh": "^0.14.0",
"ts-node": "^10.9.1",
"typescript": "^5.6.2",
@@ -4643,10 +4643,11 @@
}
},
"node_modules/prettier": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz",
"integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==",
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz",
"integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==",
"dev": true,
"license": "MIT",
"bin": {
"prettier": "bin/prettier.cjs"
},

View File

@@ -61,7 +61,7 @@
"eslint-plugin-import": "^2.28.1",
"eslint-plugin-prettier": "^5.0.0",
"globals": "^15.10.0",
"prettier": "^3.0.3",
"prettier": "3.4.2",
"prettier-plugin-sh": "^0.14.0",
"ts-node": "^10.9.1",
"typescript": "^5.6.2",

View File

@@ -7,7 +7,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extens
===================================================================
--- code-server.orig/lib/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
+++ code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
@@ -315,6 +315,10 @@ export class Extension implements IExten
@@ -320,6 +320,10 @@ export class Extension implements IExten
if (this.type === ExtensionType.System && this.productService.quality === 'stable') {
return false;
}

View File

@@ -18,7 +18,7 @@ Index: code-server/lib/vscode/src/vs/server/node/serverServices.ts
import { ProtocolConstants } from '../../base/parts/ipc/common/ipc.net.js';
import { IConfigurationService } from '../../platform/configuration/common/configuration.js';
import { ConfigurationService } from '../../platform/configuration/common/configurationService.js';
@@ -243,6 +243,9 @@ export async function setupServerService
@@ -245,6 +245,9 @@ export async function setupServerService
const channel = new ExtensionManagementChannel(extensionManagementService, (ctx: RemoteAgentConnectionContext) => getUriTransformer(ctx.remoteAuthority));
socketServer.registerChannel('extensions', channel);
@@ -288,7 +288,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extens
===================================================================
--- code-server.orig/lib/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts
+++ code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts
@@ -433,9 +433,6 @@ export class InstallAction extends Exten
@@ -435,9 +435,6 @@ export class InstallAction extends Exten
if (this.extension.isBuiltin) {
return;
}
@@ -298,7 +298,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extens
if (this.extension.state !== ExtensionState.Uninstalled) {
return;
}
@@ -740,7 +737,7 @@ export abstract class InstallInOtherServ
@@ -742,7 +739,7 @@ export abstract class InstallInOtherServ
}
if (isLanguagePackExtension(this.extension.local.manifest)) {
@@ -307,7 +307,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extens
}
// Prefers to run on UI
@@ -2001,17 +1998,6 @@ export class SetLanguageAction extends E
@@ -2028,17 +2025,6 @@ export class SetLanguageAction extends E
update(): void {
this.enabled = false;
this.class = SetLanguageAction.DisabledClass;
@@ -325,7 +325,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extens
}
override async run(): Promise<any> {
@@ -2028,7 +2014,6 @@ export class ClearLanguageAction extends
@@ -2055,7 +2041,6 @@ export class ClearLanguageAction extends
private static readonly DisabledClass = `${this.EnabledClass} disabled`;
constructor(
@@ -333,7 +333,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extens
@ILocaleService private readonly localeService: ILocaleService,
) {
super(ClearLanguageAction.ID, ClearLanguageAction.TITLE.value, ClearLanguageAction.DisabledClass, false);
@@ -2038,17 +2023,6 @@ export class ClearLanguageAction extends
@@ -2065,17 +2050,6 @@ export class ClearLanguageAction extends
update(): void {
this.enabled = false;
this.class = ClearLanguageAction.DisabledClass;

View File

@@ -165,14 +165,14 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/files/browser/fileActions
+++ code-server/lib/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.ts
@@ -20,7 +20,7 @@ import { CLOSE_SAVED_EDITORS_COMMAND_ID,
import { AutoSaveAfterShortDelayContext } from '../../../services/filesConfiguration/common/filesConfigurationService.js';
import { WorkbenchListDoubleSelection, WorkbenchTreeFindOpen } from '../../../../platform/list/browser/listService.js';
import { WorkbenchListDoubleSelection } from '../../../../platform/list/browser/listService.js';
import { Schemas } from '../../../../base/common/network.js';
-import { DirtyWorkingCopiesContext, EnterMultiRootWorkspaceSupportContext, HasWebFileSystemAccess, WorkbenchStateContext, WorkspaceFolderCountContext, SidebarFocusContext, ActiveEditorCanRevertContext, ActiveEditorContext, ResourceContextKey, ActiveEditorAvailableEditorIdsContext, MultipleEditorsSelectedInGroupContext, TwoEditorsSelectedInGroupContext, SelectedEditorsInGroupFileOrUntitledResourceContextKey } from '../../../common/contextkeys.js';
+import { IsEnabledFileDownloads, IsEnabledFileUploads, DirtyWorkingCopiesContext, EnterMultiRootWorkspaceSupportContext, HasWebFileSystemAccess, WorkbenchStateContext, WorkspaceFolderCountContext, SidebarFocusContext, ActiveEditorCanRevertContext, ActiveEditorContext, ResourceContextKey, ActiveEditorAvailableEditorIdsContext, MultipleEditorsSelectedInGroupContext, TwoEditorsSelectedInGroupContext, SelectedEditorsInGroupFileOrUntitledResourceContextKey } from '../../../common/contextkeys.js';
import { IsWebContext } from '../../../../platform/contextkey/common/contextkeys.js';
import { ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';
import { ThemeIcon } from '../../../../base/common/themables.js';
@@ -572,13 +572,16 @@ MenuRegistry.appendMenuItem(MenuId.Explo
@@ -571,13 +571,16 @@ MenuRegistry.appendMenuItem(MenuId.Explo
id: DOWNLOAD_COMMAND_ID,
title: DOWNLOAD_LABEL
},
@@ -196,7 +196,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/files/browser/fileActions
)
}));
@@ -590,6 +593,7 @@ MenuRegistry.appendMenuItem(MenuId.Explo
@@ -589,6 +592,7 @@ MenuRegistry.appendMenuItem(MenuId.Explo
title: UPLOAD_LABEL,
},
when: ContextKeyExpr.and(
@@ -208,7 +208,7 @@ Index: code-server/lib/vscode/src/vs/workbench/common/contextkeys.ts
===================================================================
--- code-server.orig/lib/vscode/src/vs/workbench/common/contextkeys.ts
+++ code-server/lib/vscode/src/vs/workbench/common/contextkeys.ts
@@ -40,6 +40,9 @@ export const HasWebFileSystemAccess = ne
@@ -41,6 +41,9 @@ export const HasWebFileSystemAccess = ne
export const EmbedderIdentifierContext = new RawContextKey<string | undefined>('embedderIdentifier', undefined, localize('embedderIdentifier', 'The identifier of the embedder according to the product service, if one is defined'));
@@ -286,10 +286,10 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/files/browser/views/explo
import { mainWindow } from '../../../../../base/browser/window.js';
import { IExplorerFileContribution, explorerFileContribRegistry } from '../explorerFileContrib.js';
+import { IBrowserWorkbenchEnvironmentService } from '../../../../services/environment/browser/environmentService.js';
export class ExplorerDelegate implements IListVirtualDelegate<ExplorerItem> {
@@ -1030,7 +1031,8 @@ export class FileDragAndDrop implements
import { WorkbenchCompressibleAsyncDataTree } from '../../../../../platform/list/browser/listService.js';
import { ISearchService, QueryType, getExcludes, ISearchConfiguration, ISearchComplete, IFileQuery } from '../../../../services/search/common/search.js';
import { CancellationToken } from '../../../../../base/common/cancellation.js';
@@ -1601,7 +1602,8 @@ export class FileDragAndDrop implements
@IConfigurationService private configurationService: IConfigurationService,
@IInstantiationService private instantiationService: IInstantiationService,
@IWorkspaceEditingService private workspaceEditingService: IWorkspaceEditingService,
@@ -299,7 +299,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/files/browser/views/explo
) {
const updateDropEnablement = (e: IConfigurationChangeEvent | undefined) => {
if (!e || e.affectsConfiguration('explorer.enableDragAndDrop')) {
@@ -1255,15 +1257,17 @@ export class FileDragAndDrop implements
@@ -1826,15 +1828,17 @@ export class FileDragAndDrop implements
// External file DND (Import/Upload file)
if (data instanceof NativeDragAndDropData) {

View File

@@ -28,7 +28,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/welcomeGettingStarted/bro
import { IEditorOpenContext, IEditorSerializer } from '../../../common/editor.js';
import { IWebviewElement, IWebviewService } from '../../webview/browser/webview.js';
import './gettingStartedColors.js';
@@ -826,6 +826,72 @@ export class GettingStartedPage extends
@@ -834,6 +834,72 @@ export class GettingStartedPage extends
$('p.subtitle.description', {}, localize({ key: 'gettingStarted.editingEvolved', comment: ['Shown as subtitle on the Welcome page.'] }, "Editing evolved"))
);
@@ -101,7 +101,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/welcomeGettingStarted/bro
const leftColumn = $('.categories-column.categories-column-left', {},);
const rightColumn = $('.categories-column.categories-column-right', {},);
@@ -861,6 +927,9 @@ export class GettingStartedPage extends
@@ -869,6 +935,9 @@ export class GettingStartedPage extends
recentList.setLimit(5);
reset(leftColumn, startList.getDomElement(), recentList.getDomElement());
}
@@ -234,7 +234,7 @@ Index: code-server/lib/vscode/src/vs/workbench/common/contextkeys.ts
===================================================================
--- code-server.orig/lib/vscode/src/vs/workbench/common/contextkeys.ts
+++ code-server/lib/vscode/src/vs/workbench/common/contextkeys.ts
@@ -42,6 +42,7 @@ export const EmbedderIdentifierContext =
@@ -43,6 +43,7 @@ export const EmbedderIdentifierContext =
export const IsEnabledFileDownloads = new RawContextKey<boolean>('isEnabledFileDownloads', true, true);
export const IsEnabledFileUploads = new RawContextKey<boolean>('isEnabledFileUploads', true, true);

View File

@@ -113,7 +113,7 @@ 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/lib/vscode/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
@@ -77,8 +77,11 @@ export class BrowserDialogHandler extend
@@ -78,8 +78,11 @@ export class BrowserDialogHandler extend
async about(): Promise<void> {
const detailString = (useAgo: boolean): string => {

View File

@@ -10,7 +10,7 @@ Index: code-server/lib/vscode/src/vs/workbench/services/extensions/common/extens
===================================================================
--- code-server.orig/lib/vscode/src/vs/workbench/services/extensions/common/extensions.ts
+++ code-server/lib/vscode/src/vs/workbench/services/extensions/common/extensions.ts
@@ -313,10 +313,7 @@ function extensionDescriptionArrayToMap(
@@ -314,10 +314,7 @@ function extensionDescriptionArrayToMap(
}
export function isProposedApiEnabled(extension: IExtensionDescription, proposal: ApiProposalName): boolean {

View File

@@ -28,7 +28,7 @@ Index: code-server/lib/vscode/src/vs/server/node/serverServices.ts
import { NullPolicyService } from '../../platform/policy/common/policy.js';
import { OneDataSystemAppender } from '../../platform/telemetry/node/1dsAppender.js';
import { LoggerService } from '../../platform/log/node/loggerService.js';
@@ -151,11 +153,23 @@ export async function setupServerService
@@ -152,11 +154,23 @@ export async function setupServerService
const requestService = new RequestService(configurationService, environmentService, logService);
services.set(IRequestService, requestService);

View File

@@ -11,6 +11,7 @@
.error-display > .body {
color: #444;
color: light-dark(#444, #ccc);
font-size: 1.2rem;
}

View File

@@ -10,7 +10,7 @@
http-equiv="Content-Security-Policy"
content="style-src 'self'; manifest-src 'self'; img-src 'self' data:; font-src 'self' data:;"
/>
<meta name="color-scheme" content="light dark" />
<title>{{ERROR_TITLE}} - code-server</title>
<link rel="icon" href="{{CS_STATIC_BASE}}/src/browser/media/favicon-dark-support.svg" />
<link rel="alternate icon" href="{{CS_STATIC_BASE}}/src/browser/media/favicon.ico" />

View File

@@ -1,3 +1,7 @@
:root {
color-scheme: light dark;
}
html,
body,
#root {
@@ -7,7 +11,9 @@ body,
body {
background: rgb(244, 247, 252);
background: light-dark(rgb(244, 247, 252), #111);
color: #111;
color: light-dark(#111, #ddd);
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji",
"Segoe UI Emoji", "Segoe UI Symbol";
@@ -23,10 +29,12 @@ button {
.-button {
background-color: rgb(87, 114, 245);
background-color: light-dark(rgb(87, 114, 245), rgb(50, 85, 250));
border-radius: 5px;
border: none;
box-sizing: border-box;
color: white;
color: light-dark(white, #ddd);
cursor: pointer;
padding: 18px 20px;
text-decoration: none;
@@ -45,6 +53,7 @@ button {
.card-box {
background-color: rgb(250, 253, 258);
background-color: light-dark(rgb(250, 253, 258), #000);
border-radius: 5px;
box-shadow:
rgba(60, 66, 87, 0.117647) 0px 7px 14px 0px,
@@ -55,7 +64,9 @@ button {
.card-box > .header {
border-bottom: 1px solid #ddd;
border-bottom: 1px solid light-dark(#ddd, #222);
color: #444;
color: light-dark(#444, #ccc);
padding: 30px;
}
@@ -66,6 +77,7 @@ button {
.card-box > .header > .sub {
color: #555;
color: light-dark(#555, #aaa);
margin-top: 10px;
}

View File

@@ -30,10 +30,11 @@ body {
.login-form > .field > .password {
background-color: rgb(244, 247, 252);
background-color: light-dark(rgb(244, 247, 252), #222);
border-radius: 5px;
border: 1px solid #ddd;
border: 1px solid light-dark(#ddd, #333);
box-sizing: border-box;
color: black;
flex: 1;
padding: 16px;
}

View File

@@ -10,6 +10,7 @@
http-equiv="Content-Security-Policy"
content="style-src 'self'; script-src 'self' 'unsafe-inline'; manifest-src 'self'; img-src 'self' data:; font-src 'self' data:;"
/>
<meta name="color-scheme" content="light dark" />
<title>{{I18N_LOGIN_TITLE}}</title>
<link rel="icon" href="{{CS_STATIC_BASE}}/src/browser/media/favicon-dark-support.svg" />
<link rel="alternate icon" href="{{CS_STATIC_BASE}}/src/browser/media/favicon.ico" />

View File

@@ -118,18 +118,18 @@ interface Option<T> {
type OptionType<T> = T extends boolean
? "boolean"
: T extends OptionalString
? typeof OptionalString
: T extends LogLevel
? typeof LogLevel
: T extends AuthType
? typeof AuthType
: T extends number
? "number"
: T extends string
? "string"
: T extends string[]
? "string[]"
: "unknown"
? typeof OptionalString
: T extends LogLevel
? typeof LogLevel
: T extends AuthType
? typeof AuthType
: T extends number
? "number"
: T extends string
? "string"
: T extends string[]
? "string[]"
: "unknown"
export type Options<T> = {
[P in keyof T]: Option<OptionType<T[P]>>