Compare commits

..

114 Commits

Author SHA1 Message Date
dependabot[bot]
4338c0d091 build(deps-dev): bump lodash from 4.17.23 to 4.18.1 in /font-size (#2774) 2026-04-02 17:56:07 +02:00
dependabot[bot]
e9ef32366d build(deps-dev): bump lodash-es from 4.17.23 to 4.18.1 in /font-size (#2773) 2026-04-02 16:30:14 +02:00
dependabot[bot]
397bef3984 build(deps): bump picomatch in /font-size (#2763) 2026-03-26 01:54:31 +01:00
Philippe Cloutier
48c8ddf405 docs: clarify incompatibility (#2601) 2026-03-24 12:29:59 +01:00
Bhaskar Ram Alllam
0307465fec docs: add Windows troubleshooting section (GPO, context menu, Defender) (#2723) 2026-03-24 12:23:54 +01:00
Bhaskar Ram Alllam
ca017a7861 docs: add windows build commands (#2722) 2026-03-24 12:20:08 +01:00
Bhaskar Ram Alllam
d8b2d1464f docs: fix typo 'anouncements' → 'announcements' in telemetry.md (#2721) 2026-03-24 12:09:25 +01:00
Baptiste Augrain
4898eb90eb style: change typo [skip ci] 2026-03-24 12:02:56 +01:00
Baptiste Augrain
8077599387 build(snap): add auth check 2026-03-24 10:50:59 +01:00
Rong "Mantle" Bao
2c31dca7e2 build(reh): bump Node.js version for loong64 and riscv64 (#2760) 2026-03-23 11:24:30 +01:00
dependabot[bot]
cb68d26217 build(deps-dev): bump flatted from 3.3.3 to 3.4.2 in /font-size (#2757) 2026-03-20 11:25:40 +01:00
Baptiste Augrain
43be3f1816 feat: update apis 2026-03-20 11:21:46 +01:00
Baptiste Augrain
a1bf8e32bc ci: use newer image [skip ci] 2026-03-20 11:04:10 +01:00
Baptiste Augrain
5786ae0d99 ci: use newer image [skip ci] 2026-03-20 00:58:09 +01:00
Baptiste Augrain
5f4aa29275 fix: update css to fix order (#2755) 2026-03-19 19:42:42 +01:00
Baptiste Augrain
d3d93691db build(insider): update to commit 07ff9d6 2026-03-18 07:44:32 +00:00
Baptiste Augrain
803457343a feat(1.112): update patches (#2750) 2026-03-17 19:27:30 +01:00
DetachHead
2321c2c695 fix(appimage): update info in insiders appimage (#2747) 2026-03-09 15:34:49 +01:00
Baptiste Augrain
8384dd0980 fix(font): icon and spacing in tabs (#2744) 2026-03-08 20:00:39 +01:00
Baptiste Augrain
e8a8565bdb fix: icon size of bottom pane and searchs (#2742) 2026-03-08 17:09:50 +01:00
Baptiste Augrain
414aa4862b fix(copilot): disable inline actions (#2743) 2026-03-08 17:07:27 +01:00
Baptiste Augrain
81a5f96569 fix(font-size): detect and apply padding and margin at 0 (#2737) 2026-03-07 23:27:25 +01:00
Baptiste Augrain
a06532dfaf build(stable): update to commit 61b3d0a 2026-03-07 18:22:52 +00:00
Baptiste Augrain
b369b69597 build(font-size): update dependencies [skip ci] 2026-03-06 10:36:19 +01:00
Baptiste Augrain
db1eeed5b2 feat: update API 2026-03-06 10:31:17 +01:00
Baptiste Augrain
e49b649a19 Merge branch 'insider' 2026-03-06 10:02:30 +01:00
Baptiste Augrain
44cb5e2073 feat: update patch (#2731) 2026-03-05 02:46:31 +01:00
dependabot[bot]
3d7e85c307 build(deps): bump docker/setup-qemu-action from 3 to 4 (#2729) 2026-03-04 14:19:58 +01:00
dependabot[bot]
0ff5473194 build(deps): bump actions/upload-artifact from 6 to 7 (#2728) 2026-03-04 14:19:33 +01:00
dependabot[bot]
5b5008e570 build(deps): bump actions/download-artifact from 7 to 8 (#2727) 2026-03-04 14:19:14 +01:00
dependabot[bot]
c95b880148 build(deps): bump crazy-max/ghaction-import-gpg from 6 to 7 (#2726) 2026-03-04 14:18:21 +01:00
Baptiste Augrain
12ee0524bf fix(font): button on extensions panel (#2719) 2026-02-28 17:55:15 +01:00
Baptiste Augrain
88a290aa68 build(insider): update to commit f5927e7 2026-02-28 07:26:25 +00:00
Baptiste Augrain
e8c2ca40dd fix(font): scm panel (#2718) 2026-02-28 00:39:20 +01:00
Baptiste Augrain
419245db4b fix: use correct org for admx (#2716) 2026-02-27 19:54:32 +01:00
Baptiste Augrain
ccd71421da feat(1.110): update patches (#2715) 2026-02-27 16:34:05 +01:00
Baptiste Augrain
1dec128c07 fix: merge patches and build 2026-02-24 20:51:31 +01:00
xiaolai
ccf4d751c8 feat: add patches for per-area font customization
Three new patches extending workbench font customization to all areas:
- feat-workbench-zz-area-font-family: fontFamily for sidebar, statusbar,
  tabs, panel, activitybar + global fontSize setting
- feat-workbench-zz-area-font-size-core: fontSize for statusbar,
  activitybar, panel with proportional scaling via FONT object
- feat-workbench-zz-area-font-size-tabs: fontSize for tabs with CSS
  variable scaling for tab heights and widths

Includes fixes from audit review:
- Fix stale CSS var when fontSize reverts to default (cache isUserSet)
- Fix else-if config listener blocking simultaneous updates
- Trigger grid relayout after statusbar font-size change
- Apply activitybar font before show() for correct initial sizing
- Trigger tab relayout after font-size change
- Standardize CSS fallback chains to include global font-size
- Extract inspectFontSize() helper to reduce duplication
- Replace magic 1.833333 ratio with explicit CSS height variable
2026-02-21 11:18:43 +08:00
Baptiste Augrain
34d6a7b4d5 build(stable): update to commit 0725862 2026-02-20 18:37:02 +00:00
xiaolai
ff5eff419c fix: address review feedback for sidebar font size
- Fix CSS variable name mismatch in auxiliaryBarPart.css
  (was reading --vscode-workbench-secondary-sidebar-font-size
  while TS sets --vscode-workbench-sidebar-font-size)
- Add line-height and title h2 scaling for auxiliary bar
- Add composite bar tab font size scaling (paneCompositePart.css)
- Update setting description to reflect both sidebars
2026-02-20 10:18:29 +08:00
Baptiste Augrain
b4409deee2 Merge branch 'insider' into pr2626 2026-02-19 17:10:27 +01:00
Baptiste Augrain
5ea412eee4 feat: use global variable and helper script 2026-02-19 17:10:12 +01:00
Andrew den Hertog
55615878f9 docs: update Node.js version in build documentation (#2675) 2026-02-17 21:19:59 +01:00
Baptiste Augrain
be4746a775 feat: add patch for workbench's font family (#2706) 2026-02-17 19:25:48 +01:00
Baptiste Augrain
15cc1eadd2 wip: fixing explorer panel 2026-02-17 17:21:19 +01:00
Baptiste Augrain
7d6f546461 Merge branch 'insider' into pr2626 2026-02-17 13:59:36 +01:00
Baptiste Augrain
cf38c857b2 feat(1.110): update patches (#2704) 2026-02-17 12:22:40 +01:00
Baptiste Augrain
eaeb6e6bb3 Merge branch 'master' into insider 2026-02-16 22:17:48 +01:00
Baptiste Augrain
22a615e8ff build(stable): update to commit c3a2684 2026-02-16 18:35:35 +00:00
Baptiste Augrain
399b022266 build(stable): update to commit b6a47e9 2026-02-13 18:50:32 +00:00
Baptiste Augrain
be3bb0ad5b fix(snap): re-add snap update service (#2697) 2026-02-12 10:47:50 +01:00
Baptiste Augrain
6b229ed069 Merge branch 'master' into insider 2026-02-12 09:47:14 +01:00
Baptiste Augrain
325e7a79e9 build(stable): update to commit 591199d 2026-02-11 18:53:20 +00:00
Baptiste Augrain
273901d3c2 feat(1.109): update patches (#2692) 2026-02-10 17:37:21 +01:00
Baptiste Augrain
8a26e54d3e feat(windows): disable versioned update (#2691) 2026-02-09 20:19:21 +01:00
Baptiste Augrain
091907f2c0 feat(windows): use versioned update (#2690) 2026-02-09 15:20:52 +01:00
Baptiste Augrain
47e2863d9e feat(1.109): update patches (#2688) 2026-02-08 19:20:15 +01:00
Thanh Nguyen
91d172cd42 fix: close extensions control request connection (#2673) 2026-02-06 20:47:43 +01:00
Baptiste Augrain
94f90090cb build(stable): update to commit c9d7799 2026-02-01 19:38:53 +00:00
Baptiste Augrain
412aa78881 docs: update accouncements [skip ci] 2026-01-15 17:34:13 +01:00
Baptiste Augrain
a199c0a529 feat(1.108): update patches (#2666) 2026-01-15 00:11:58 +01:00
Baptiste Augrain
cf437da521 build(1.108): update 2026-01-14 23:08:11 +01:00
Baptiste Augrain
e8ec5e2452 improve(ci): target insider branch (#2663) 2026-01-14 12:23:06 +01:00
Baptiste Augrain
2b2bef0927 fix(windows): remove versioned resources (#2664) 2026-01-14 12:06:27 +01:00
dependabot[bot]
17b5b6ed50 build(deps): bump dessant/lock-threads from 5 to 6 (#2630) 2026-01-14 10:12:42 +01:00
dependabot[bot]
72b795d984 build(deps): bump actions/download-artifact from 6 to 7 (#2629) 2026-01-14 10:12:21 +01:00
dependabot[bot]
71afd18e59 build(deps): bump actions/upload-artifact from 5 to 6 (#2628) 2026-01-14 10:11:59 +01:00
Baptiste Augrain
7d910f4077 feat(1.108): update patches (#2662) 2026-01-14 03:26:26 +01:00
Baptiste Augrain
fc8f76ad58 fix(windows): remove blocking code for versioned setup (#2658) 2026-01-07 23:25:34 +01:00
dependabot[bot]
a5210af800 build(deps): bump egor-tensin/setup-gcc from 1 to 2 (#2654) 2026-01-05 15:03:11 +01:00
Baptiste Augrain
3bf7629f7a ci: lock closed old discussions 2026-01-02 16:14:25 +01:00
Baptiste Augrain
bfaa0ebd4e fix(ci): use x64 runner for macos x64 (#2645) 2025-12-25 12:37:36 +01:00
Baptiste Augrain
fe63a5a5d9 feat(1.107): merge insider into stable 2025-12-24 13:58:00 +01:00
Baptiste Augrain
7224e53e62 feat: update upstream version 2025-12-24 12:22:10 +01:00
Baptiste Augrain
962f1ac04c fix(ci): update stable workflows 2025-12-24 12:21:36 +01:00
Baptiste Augrain
7656ee4017 Merge branch 'insider' into merge-1107 2025-12-24 12:15:15 +01:00
Baptiste Augrain
a053a4a5c2 docs: remove extra announcement (#2641) 2025-12-24 12:13:44 +01:00
Baptiste Augrain
0079f51fe2 docs(linux): add troubleshooting for bad egl driver [skip ci] 2025-12-24 01:13:23 +01:00
darkyzhou
47c5d7d549 build: update LOONG64 image from beige to crimson (#2640) 2025-12-24 01:05:45 +01:00
Baptiste Augrain
26fd8577a7 docs: add announcement 2025-12-22 14:28:20 +01:00
Baptiste Augrain
9931513623 fix: apply replacement [skip ci] 2025-12-21 18:36:47 +01:00
Baptiste Augrain
de5bd6bf1f fix: personalize global policy file (#2638) 2025-12-21 17:17:23 +01:00
Baptiste Augrain
de91c92a23 feat: update electron to 39.2.7 (#2637) 2025-12-21 16:26:42 +01:00
Baptiste Augrain
c0d5246c70 feat(linux): use XDG_STATE_HOME for logs (#2636) 2025-12-21 13:45:02 +01:00
Baptiste Augrain
63fad3ddfa Merge branch 'master' into insider 2025-12-21 11:19:06 +01:00
Baptiste Augrain
d54958e349 fix(windows): disable versioned resources (#2633) 2025-12-19 10:04:53 +01:00
Baptiste Augrain
dc3ffab8bf feat: update patches (#2632) 2025-12-18 13:46:43 +01:00
Baptiste Augrain
a80048c451 feat(1.107): improvements (#2631) 2025-12-17 23:53:37 +01:00
Baptiste Augrain
26ee7024a2 fix(macos): use sign.ts 2025-12-17 18:48:35 +01:00
Baptiste Augrain
895ada1ac1 feat(1.107): update patches and build (#2618) 2025-12-17 15:59:58 +01:00
xiaolai
859e1f1a1c feat: add configurable sidebar font sizes
Add two new workbench settings for controlling font sizes in sidebars:
- workbench.sideBar.fontSize: Controls primary sidebar font size (6-32px)
- workbench.secondarySideBar.fontSize: Controls secondary sidebar font size

This improves accessibility by allowing users to independently scale sidebar
content without requiring full UI zoom or source code edits.

Implementation uses CSS custom properties for live updates without reload.
Default of 13px preserves existing behavior.

Based on rejected VS Code PR #270851 - rejected with "In this area we do not
accept PRs" despite 18 positive reactions and community support.
2025-12-12 06:49:43 +08:00
Baptiste Augrain
cc1a3ef5bd fix: re-add usersync service (#2612) 2025-11-27 00:00:52 +01:00
Baptiste Augrain
163fff4742 fix: don't try to load missing vsda library (#2613) 2025-11-26 23:56:30 +01:00
Baptiste Augrain
79adc487cb build(stable): update to commit bf9252a 2025-11-26 18:28:15 +00:00
dependabot[bot]
b69846f794 build(deps): bump actions/checkout from 5 to 6 (#2609) 2025-11-24 15:15:48 +01:00
Baptiste Augrain
42ab5a8aa3 feat(1.106): use newer electron (#2606) 2025-11-21 18:40:05 +01:00
Baptiste Augrain
846096bd53 Merge branch 'insider' 2025-11-21 17:17:09 +01:00
Baptiste Augrain
3981f5dcb8 build(insider): update to commit ac4cbdf 2025-11-12 07:28:13 +00:00
Baptiste Augrain
4ecf45044e docs: add copilot howto 2025-11-11 17:52:25 +01:00
Quentin Dreyer
cec35aab94 feat: add extensionsEnabledWithApiProposalVersion to product.json (#2598) 2025-11-11 14:12:48 +01:00
Baptiste Augrain
6901a0ca2b build(insider): update to commit c5a35b4 2025-11-11 07:32:26 +00:00
Baptiste Augrain
ca9b356c3b build(insider): update to commit 48cdf17 2025-11-08 07:34:03 +00:00
Baptiste Augrain
8d8db1de1b fix(update): avoid extra connection on manual mode (#2597) 2025-11-08 02:48:10 +01:00
Baptiste Augrain
53ff95933c fix(icon): increase macos max size (#2596) 2025-11-07 21:54:55 +01:00
Baptiste Augrain
39be6d3a95 fix(cli): load user's product.json (#2595) 2025-11-07 21:50:20 +01:00
Baptiste Augrain
f7de31a582 feat(1.106): update patches 2025-11-07 15:28:08 +01:00
Baptiste Augrain
ccb2819b25 feat(1.106): update patches (#2590) 2025-11-03 17:48:45 +01:00
dependabot[bot]
d2cdc6e515 build(deps): bump actions/download-artifact from 5 to 6 (#2581) 2025-10-27 15:40:16 +01:00
dependabot[bot]
b88fdc76f5 build(deps): bump actions/upload-artifact from 4 to 5 (#2580) 2025-10-27 15:40:04 +01:00
dependabot[bot]
f2f1594771 build(deps): bump signpath/github-action-submit-signing-request (#2579) 2025-10-27 15:39:45 +01:00
dependabot[bot]
88f558aafc build(deps): bump actions/setup-node from 5 to 6 (#2568) 2025-10-20 16:15:07 +02:00
Baptiste Augrain
11b807517c fix(copilot): use disableAIFeatures setting instead of installed property (#2567) 2025-10-20 16:14:44 +02:00
Baptiste Augrain
9664f9e77d build: don't use product.json to get TUNNEL_APP_NAME [skip ci] 2025-10-19 23:39:38 +02:00
Baptiste Augrain
5993ddb3a5 fix(copilot): add installed condition to all actions or menus (#2563) 2025-10-19 10:19:21 +02:00
109 changed files with 16027 additions and 5461 deletions

View File

@@ -7,5 +7,6 @@ version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
target-branch: insider
schedule:
interval: "weekly"

View File

@@ -48,7 +48,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -85,7 +85,7 @@ jobs:
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
@@ -96,13 +96,13 @@ jobs:
run: ./get_pr.sh
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
uses: egor-tensin/setup-gcc@v2
with:
version: 10
platform: x64
- name: Setup Node.js environment
uses: actions/setup-node@v5
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
if: env.SHOULD_BUILD == 'yes'
@@ -137,7 +137,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Upload vscode artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: vscode
path: ./vscode.tar.gz
@@ -172,7 +172,7 @@ jobs:
- slug: LOONG64
vscode_arch: loong64
npm_arch: loong64
image: vscodium/vscodium-linux-build-agent:beige-loong64
image: vscodium/vscodium-linux-build-agent:crimson-loong64
- slug: PPC64
vscode_arch: ppc64le
npm_arch: ppc64
@@ -194,7 +194,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
@@ -225,7 +225,7 @@ jobs:
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v5
uses: actions/download-artifact@v8
with:
name: vscode
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
@@ -260,7 +260,7 @@ jobs:
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: bin-${{ matrix.vscode_arch }}
path: assets/
@@ -309,7 +309,7 @@ jobs:
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.DISABLED != 'yes'
@@ -321,14 +321,14 @@ jobs:
if: env.DISABLED != 'yes'
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
uses: egor-tensin/setup-gcc@v2
with:
version: 10
platform: x64
if: env.DISABLED != 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v5
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
if: env.DISABLED != 'yes'
@@ -355,7 +355,7 @@ jobs:
if: env.DISABLED != 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v5
uses: actions/download-artifact@v8
with:
name: vscode
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
@@ -375,7 +375,7 @@ jobs:
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: reh-linux-${{ matrix.vscode_arch }}
path: assets/
@@ -410,7 +410,7 @@ jobs:
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -420,11 +420,16 @@ jobs:
run: ./get_pr.sh
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
uses: egor-tensin/setup-gcc@v2
with:
version: 10
platform: x64
- name: Setup Node.js environment
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
- name: Install GH
run: ./build/linux/install_gh.sh
if: env.SHOULD_DEPLOY == 'yes'
@@ -440,7 +445,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v5
uses: actions/download-artifact@v8
with:
name: vscode
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
@@ -460,7 +465,7 @@ jobs:
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: reh-alpine-${{ matrix.vscode_arch }}
path: assets/
@@ -512,7 +517,7 @@ jobs:
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && needs.check.outputs.SHOULD_BUILD_SNAP != 'no' && vars.DISABLE_INSIDER_SNAP != 'yes'
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -521,7 +526,7 @@ jobs:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-qemu-action@v4
- uses: diddlesnaps/snapcraft-multiarch-action@v1
with:

View File

@@ -44,13 +44,13 @@ jobs:
fail-fast: false
matrix:
include:
- runner: macos-13
- runner: macos-15-intel
vscode_arch: x64
- runner: [self-hosted, macOS, ARM64]
vscode_arch: arm64
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -60,7 +60,7 @@ jobs:
run: . get_pr.sh
- name: Setup Node.js environment
uses: actions/setup-node@v5
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
@@ -116,7 +116,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: bin-${{ matrix.vscode_arch }}
path: assets/

View File

@@ -20,7 +20,7 @@ on:
jobs:
build:
runs-on: macos-14
runs-on: macos-15
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
@@ -35,12 +35,12 @@ jobs:
VSCODE_QUALITY: insider
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: insider
- name: Setup Node.js environment
uses: actions/setup-node@v5
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
@@ -61,7 +61,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Import GPG key
uses: crazy-max/ghaction-import-gpg@v6
uses: crazy-max/ghaction-import-gpg@v7
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.GPG_PASSPHRASE }}

View File

@@ -46,7 +46,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -72,7 +72,10 @@ jobs:
compile:
needs:
- check
runs-on: ubuntu-22.04
runs-on: windows-2022
defaults:
run:
shell: bash
env:
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
@@ -83,7 +86,7 @@ jobs:
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
@@ -93,14 +96,14 @@ jobs:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
with:
version: 10
platform: x64
# - name: Setup GCC
# uses: egor-tensin/setup-gcc@v1
# with:
# version: 10
# platform: x64
- name: Setup Node.js environment
uses: actions/setup-node@v5
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
if: env.SHOULD_BUILD == 'yes'
@@ -111,9 +114,9 @@ jobs:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
- name: Install libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
# - name: Install libkrb5-dev
# run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
# if: env.SHOULD_BUILD == 'yes'
- name: Clone VSCode repo
run: ./get_repo.sh
@@ -135,7 +138,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Upload vscode artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: vscode
path: ./vscode.tar.gz
@@ -169,7 +172,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
@@ -181,7 +184,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v5
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
if: env.SHOULD_BUILD == 'yes'
@@ -200,7 +203,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v5
uses: actions/download-artifact@v8
with:
name: vscode
if: env.SHOULD_BUILD == 'yes'
@@ -219,7 +222,7 @@ jobs:
- name: Upload unsigned artifacts
id: upload-unsigned-artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: unsigned-${{ matrix.vscode_arch }}
path: |
@@ -229,7 +232,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes' && vars.DISABLE_INSIDER_WINDOWS_SIGNING != 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Signing
uses: signpath/github-action-submit-signing-request@v1
uses: signpath/github-action-submit-signing-request@v2
with:
api-token: ${{ secrets.SIGNPATH_API_TOKEN }}
organization-id: ${{ secrets.SIGNPATH_ORGANIZATION_ID }}
@@ -263,7 +266,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: bin-${{ matrix.vscode_arch }}
path: assets/
@@ -282,7 +285,7 @@ jobs:
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}

View File

@@ -1,4 +1,4 @@
name: Lock Issues
name: Lock Closed Threads
on:
schedule:
@@ -8,9 +8,10 @@ jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v5
- uses: dessant/lock-threads@v6
with:
github-token: ${{ github.token }}
issue-inactive-days: '90'
pr-inactive-days: '90'
discussion-inactive-days: '90'
log-output: true

View File

@@ -9,6 +9,9 @@ on:
generate_assets:
type: boolean
description: Generate assets
force_snap:
type: boolean
description: Force Snap
checkout_pr:
type: string
description: Checkout PR
@@ -47,7 +50,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -68,6 +71,7 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CHECK_ALL: 'yes'
FORCE_LINUX_SNAP: ${{ github.event.inputs.force_snap }}
run: ./check_tags.sh
compile:
@@ -84,7 +88,7 @@ jobs:
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
@@ -96,14 +100,14 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
uses: egor-tensin/setup-gcc@v2
with:
version: 10
platform: x64
if: env.SHOULD_BUILD == 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v5
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
if: env.SHOULD_BUILD == 'yes'
@@ -138,7 +142,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Upload vscode artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: vscode
path: ./vscode.tar.gz
@@ -173,7 +177,7 @@ jobs:
- slug: LOONG64
vscode_arch: loong64
npm_arch: loong64
image: vscodium/vscodium-linux-build-agent:beige-loong64
image: vscodium/vscodium-linux-build-agent:crimson-loong64
- slug: PPC64
vscode_arch: ppc64le
npm_arch: ppc64
@@ -195,7 +199,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
@@ -226,7 +230,7 @@ jobs:
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v5
uses: actions/download-artifact@v8
with:
name: vscode
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
@@ -261,7 +265,7 @@ jobs:
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: bin-${{ matrix.vscode_arch }}
path: assets/
@@ -310,7 +314,7 @@ jobs:
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.DISABLED != 'yes'
@@ -322,14 +326,14 @@ jobs:
if: env.DISABLED != 'yes'
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
uses: egor-tensin/setup-gcc@v2
with:
version: 10
platform: x64
if: env.DISABLED != 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v5
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
if: env.DISABLED != 'yes'
@@ -356,7 +360,7 @@ jobs:
if: env.DISABLED != 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v5
uses: actions/download-artifact@v8
with:
name: vscode
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
@@ -376,7 +380,7 @@ jobs:
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: reh-linux-${{ matrix.vscode_arch }}
path: assets/
@@ -411,7 +415,7 @@ jobs:
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -421,11 +425,16 @@ jobs:
run: ./get_pr.sh
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
uses: egor-tensin/setup-gcc@v2
with:
version: 10
platform: x64
- name: Setup Node.js environment
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
- name: Install GH
run: ./build/linux/install_gh.sh
if: env.SHOULD_DEPLOY == 'yes'
@@ -441,7 +450,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v5
uses: actions/download-artifact@v8
with:
name: vscode
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
@@ -461,7 +470,7 @@ jobs:
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: reh-alpine-${{ matrix.vscode_arch }}
path: assets/
@@ -501,6 +510,7 @@ jobs:
env:
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SNAP_NAME: codium
SNAP_PUBLISHER: vscodium
strategy:
fail-fast: false
matrix:
@@ -510,7 +520,7 @@ jobs:
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && needs.check.outputs.SHOULD_BUILD_SNAP != 'no' && vars.DISABLE_STABLE_SNAP != 'yes'
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -527,7 +537,7 @@ jobs:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
run: ./stores/snapcraft/check_version.sh
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-qemu-action@v4
if: env.SHOULD_BUILD == 'yes'
- uses: diddlesnaps/snapcraft-multiarch-action@v1

View File

@@ -43,13 +43,13 @@ jobs:
fail-fast: false
matrix:
include:
- runner: macos-13
- runner: macos-15-intel
vscode_arch: x64
- runner: [self-hosted, macOS, ARM64]
vscode_arch: arm64
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -59,7 +59,7 @@ jobs:
run: . get_pr.sh
- name: Setup Node.js environment
uses: actions/setup-node@v5
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
@@ -114,7 +114,7 @@ jobs:
if: env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: bin-${{ matrix.vscode_arch }}
path: assets/

View File

@@ -17,7 +17,7 @@ on:
jobs:
build:
runs-on: macos-14
runs-on: macos-15
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}
@@ -32,10 +32,10 @@ jobs:
VSCODE_QUALITY: stable
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: Setup Node.js environment
uses: actions/setup-node@v5
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
@@ -56,7 +56,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Import GPG key
uses: crazy-max/ghaction-import-gpg@v6
uses: crazy-max/ghaction-import-gpg@v7
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.GPG_PASSPHRASE }}

View File

@@ -45,7 +45,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -71,7 +71,10 @@ jobs:
compile:
needs:
- check
runs-on: ubuntu-22.04
runs-on: windows-2022
defaults:
run:
shell: bash
env:
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
@@ -82,7 +85,7 @@ jobs:
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
@@ -92,14 +95,14 @@ jobs:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
with:
version: 10
platform: x64
# - name: Setup GCC
# uses: egor-tensin/setup-gcc@v1
# with:
# version: 10
# platform: x64
- name: Setup Node.js environment
uses: actions/setup-node@v5
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
if: env.SHOULD_BUILD == 'yes'
@@ -110,9 +113,9 @@ jobs:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
- name: Install libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
# - name: Install libkrb5-dev
# run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
# if: env.SHOULD_BUILD == 'yes'
- name: Clone VSCode repo
run: ./get_repo.sh
@@ -134,7 +137,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Upload vscode artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: vscode
path: ./vscode.tar.gz
@@ -168,7 +171,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
@@ -180,7 +183,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v5
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
if: env.SHOULD_BUILD == 'yes'
@@ -199,7 +202,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v5
uses: actions/download-artifact@v8
with:
name: vscode
if: env.SHOULD_BUILD == 'yes'
@@ -218,7 +221,7 @@ jobs:
- name: Upload unsigned artifacts
id: upload-unsigned-artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: unsigned-${{ matrix.vscode_arch }}
path: |
@@ -228,7 +231,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Signing
uses: signpath/github-action-submit-signing-request@v1
uses: signpath/github-action-submit-signing-request@v2
with:
api-token: ${{ secrets.SIGNPATH_API_TOKEN }}
organization-id: ${{ secrets.SIGNPATH_ORGANIZATION_ID }}
@@ -261,7 +264,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: bin-${{ matrix.vscode_arch }}
path: assets/
@@ -279,7 +282,7 @@ jobs:
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ env.GITHUB_BRANCH }}

2
.gitignore vendored
View File

@@ -17,3 +17,5 @@ build/windows/msi/Files*.wixobj
sourcemaps/
stores/snapcraft/insider/*.snap
stores/snapcraft/stable/*.snap
font-size/node_modules/
font-size/generate-css.js

2
.nvmrc
View File

@@ -1 +1 @@
22.19.0
22.22.0

View File

@@ -1,2 +1,7 @@
[
{
"id": "#2668",
"title": "[Windows] broken update on 1.107, need manual update",
"url": "https://github.com/VSCodium/vscodium/issues/2668"
}
]

View File

@@ -27,7 +27,8 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
rm -f .build/extensions/ms-vscode.js-debug/src/win32-app-container-tokens.*.node
# generate Group Policy definitions
node build/lib/policies darwin
npm run copy-policy-dto --prefix build
node build/lib/policies/policyGenerator.ts build/lib/policies/policyData.jsonc darwin
npm run gulp "vscode-darwin-${VSCODE_ARCH}-min-ci"
@@ -37,13 +38,14 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
VSCODE_PLATFORM="darwin"
elif [[ "${OS_NAME}" == "windows" ]]; then
# generate Group Policy definitions
node build/lib/policies win32
# in CI, packaging will be done by a different job
if [[ "${CI_BUILD}" == "no" ]]; then
. ../build/windows/rtf/make.sh
# generate Group Policy definitions
npm run copy-policy-dto --prefix build
node build/lib/policies/policyGenerator.ts build/lib/policies/policyData.jsonc win32
npm run gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
if [[ "${VSCODE_ARCH}" != "x64" ]]; then
@@ -61,6 +63,10 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
# in CI, packaging will be done by a different job
if [[ "${CI_BUILD}" == "no" ]]; then
# generate Group Policy definitions
npm run copy-policy-dto --prefix build
node build/lib/policies/policyGenerator.ts build/lib/policies/policyData.jsonc linux
npm run gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
find "../VSCode-linux-${VSCODE_ARCH}" -print0 | xargs -0 touch -c

View File

@@ -41,7 +41,7 @@ for i in {1..5}; do # try 5 times
echo "Npm install failed $i, trying again..."
done
node build/azure-pipelines/distro/mixin-npm
node build/azure-pipelines/distro/mixin-npm.ts
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
PA_NAME="linux-alpine"

View File

@@ -22,8 +22,11 @@ if [[ "${VSCODE_ARCH}" == "x64" ]]; then
./pkg2appimage.AppImage --appimage-extract && mv ./squashfs-root ./pkg2appimage.AppDir
# add update's url
sed -i 's/generate_type2_appimage/generate_type2_appimage -u "gh-releases-zsync|VSCodium|vscodium|latest|*.AppImage.zsync"/' pkg2appimage.AppDir/AppRun
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
sed -i 's/generate_type2_appimage/generate_type2_appimage -u "gh-releases-zsync|VSCodium|vscodium-insiders|latest|*.AppImage.zsync"/' pkg2appimage.AppDir/AppRun
else
sed -i 's/generate_type2_appimage/generate_type2_appimage -u "gh-releases-zsync|VSCodium|vscodium|latest|*.AppImage.zsync"/' pkg2appimage.AppDir/AppRun
fi
# remove check so build in docker can succeed
sed -i 's/grep docker/# grep docker/' pkg2appimage.AppDir/usr/share/pkg2appimage/functions.sh

View File

@@ -2,5 +2,5 @@
set -ex
export ELECTRON_VERSION="37.2.5"
export ELECTRON_VERSION="39.2.3"
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}"

View File

@@ -1,11 +1,9 @@
0bc435a6989f120b1f748cd2f8d3fa7ed731c54a0ad797271e479539dca5c4fe *chromedriver-v37.2.5-linux-loong64.zip
6a355cac6c8b02deb413d024ff3224f03717cc0790e3f5a872891ecf79ade20e *electron-v37.2.5-linux-loong64-debug.zip
c091db1993b2bda5426a678c428c5ffc71af9228abc4891a493a1d318e250b0a *electron-v37.2.5-linux-loong64-symbols.zip
d3f615c3ec265a2adbc0ed9088a65e96aa90b392ecd1ea17e8e4dc82728f4a5d *electron-v37.2.5-linux-loong64.zip
17e05db81f5b0cff1327ac153bd20838b3332b78de1b2ffa235e27a30a15024d *ffmpeg-v37.2.5-linux-loong64.zip
eaf1efb230cd9bfee7acd8b553c602ff396c2f667837e968b4c1d5542448b0b3 *hunspell-dictionaries.zip
3eb8b3199f764c63f82960cb1e1945f70af348873133bf9fd70daeefa3ca1bfb *libcxx-headers.zip
2a5ad06e845d59d89b74a97cd2befcfad02f951f8083f02645a9edbb4e7fdcb7 *libcxx-objects-v37.2.5-linux-loong64.zip
24eec3c74d5a05eba53524866a009e257e52e65257caa8e6fda07b82321885eb *libcxxabi-headers.zip
a4015814d6651cf5511b04307aeef51b739d05eed7ff8ab819739dabd0047309 *mksnapshot-v37.2.5-linux-loong64.zip
d1ed2413e007d7adbcd7291158647cfd4908739b034d021c123ca3d11513c31a *node-v37.2.5-headers.tar.gz
d26b2189e7466a08c73861d0225c9b28730fdfc30918f3ea70853b43a2581dc4 *chromedriver-v39.2.3-linux-loong64.zip
8cc36f7468f5b2d98cde3f73c10c535555754c54be43e45c320a382c35b8e466 *electron-v39.2.3-linux-loong64.zip
f6e7462d6fd795ae2b08344ee0fdca817eba148b62a62717b3f512c845d96a64 *ffmpeg-v39.2.3-linux-loong64.zip
b122599dc84b81526ba4eecbca4794f3a2d25300242ad3829d1445cb6948f470 *hunspell-dictionaries.zip
76ef17d2810df5e77c5071863e2a375df914cfb7a362ad0582ee0eedca2441b9 *libcxx-headers.zip
9b61ba9f0780a57ee2749f7963759395784eadcaccc54af313de1a540240298e *libcxx-objects-v39.2.3-linux-loong64.zip
9ae64aff9e391eae401142e55654b5b8cf54d0611b1ecb540f2f4e89a2b4f772 *libcxxabi-headers.zip
7d7e6e08c84aa38b74037f5910534918bc792ffbe2ca6d667067f587f27f5118 *mksnapshot-v39.2.3-linux-loong64.zip
db48f8a9d2271e8b3a1c3f26ea1ae9bd489deb1b464b6ae424a15d5df7529fdc *node-v39.2.3-headers.tar.gz

View File

@@ -22,7 +22,7 @@ export VSCODE_SYSROOT_PREFIX='-glibc-2.28-gcc-10.5.0'
if [[ "${VSCODE_ARCH}" == "arm64" || "${VSCODE_ARCH}" == "armhf" ]]; then
export VSCODE_SKIP_SYSROOT=1
export USE_GNUPP2A=1
# export USE_GNUPP2A=1
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
export VSCODE_SYSROOT_REPOSITORY='VSCodium/vscode-linux-build-agent'
export VSCODE_SYSROOT_VERSION='20240129-253798'
@@ -125,7 +125,14 @@ for i in {1..5}; do # try 5 times
echo "Npm install failed $i, trying again..."
done
node build/azure-pipelines/distro/mixin-npm
node build/azure-pipelines/distro/mixin-npm.ts
# delete native files built in the `compile` step
find .build/extensions -type f -name '*.node' -print -delete
# generate Group Policy definitions
npm run copy-policy-dto --prefix build
node build/lib/policies/policyGenerator.ts build/lib/policies/policyData.jsonc linux
npm run gulp "vscode-linux-${VSCODE_ARCH}-min-ci"

View File

@@ -18,20 +18,14 @@ cd vscode || { echo "'vscode' dir not found"; exit 1; }
GLIBC_VERSION="2.28"
GLIBCXX_VERSION="3.4.26"
NODE_VERSION="22.15.1"
NODE_VERSION="22.21.1"
export VSCODE_NODEJS_URLROOT='/download/release'
export VSCODE_NODEJS_URLSUFFIX=''
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
GLIBC_VERSION="2.17"
GLIBCXX_VERSION="3.4.22"
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-x64"
export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org'
export VSCODE_NODEJS_URLSUFFIX='-glibc-217'
export VSCODE_SKIP_SETUPENV=1
elif [[ "${VSCODE_ARCH}" == "arm64" ]]; then
EXPECTED_GLIBC_VERSION="2.30"
@@ -48,24 +42,28 @@ elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
export VSCODE_SKIP_SYSROOT=1
export USE_GNUPP2A=1
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
GLIBC_VERSION="2.28"
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-ppc64le"
VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}"
export VSCODE_SYSROOT_REPOSITORY='VSCodium/vscode-linux-build-agent'
export VSCODE_SYSROOT_VERSION='20240129-253798'
elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
NODE_VERSION="20.16.0"
NODE_VERSION="22.21.1"
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-riscv64"
export VSCODE_SKIP_SETUPENV=1
export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org'
elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then
NODE_VERSION="20.16.0"
NODE_VERSION="22.21.1"
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:beige-devtoolset-loong64"
export VSCODE_SKIP_SETUPENV=1
export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org'
elif [[ "${VSCODE_ARCH}" == "s390x" ]]; then
GLIBC_VERSION="2.28"
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-s390x"
VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}"
@@ -130,9 +128,6 @@ EOF
echo "${INCLUDES}" > "${HOME}/.gyp/include.gypi"
fi
mv .npmrc .npmrc.bak
cp ../npmrc .npmrc
for i in {1..5}; do # try 5 times
npm ci --prefix build && break
if [[ $i == 5 ]]; then
@@ -146,6 +141,8 @@ if [[ -z "${VSCODE_SKIP_SETUPENV}" ]]; then
if [[ -n "${VSCODE_SKIP_SYSROOT}" ]]; then
source ./build/azure-pipelines/linux/setup-env.sh --skip-sysroot
else
cat ./build/checksums/vscode-sysroot.txt
source ./build/azure-pipelines/linux/setup-env.sh
fi
@@ -158,6 +155,11 @@ else
export VSCODE_SYSROOT_DIR=".build"
fi
node build/npm/preinstall.ts
mv .npmrc .npmrc.bak
cp ../npmrc .npmrc
for i in {1..5}; do # try 5 times
npm ci && break
if [[ $i == 5 ]]; then
@@ -170,26 +172,26 @@ for i in {1..5}; do # try 5 times
rm -rf node_modules/@vscode node_modules/node-pty
done
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
pushd "remote"
# if [[ "${VSCODE_ARCH}" == "x64" ]]; then
# pushd "remote"
for LIB in @parcel/watcher @vscode/spdlog kerberos node-pty
do
pushd "node_modules/${LIB}"
# for LIB in @parcel/watcher @vscode/spdlog kerberos node-pty
# do
# pushd "node_modules/${LIB}"
CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" npx node-gyp rebuild
# CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" npx node-gyp rebuild
popd
done
# popd
# done
popd
VERIFY_CXX11=1
fi
# popd
# VERIFY_CXX11=1
# fi
mv .npmrc.bak .npmrc
node build/azure-pipelines/distro/mixin-npm
node build/azure-pipelines/distro/mixin-npm.ts
export VSCODE_NODE_GLIBC="-glibc-${GLIBC_VERSION}"
@@ -200,9 +202,9 @@ if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
EXPECTED_GLIBC_VERSION="${EXPECTED_GLIBC_VERSION}" EXPECTED_GLIBCXX_VERSION="${GLIBCXX_VERSION}" SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ./build/azure-pipelines/linux/verify-glibc-requirements.sh
if [[ -n "${VERIFY_CXX11}" ]]; then
SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ../build/linux/verify_cxx11_requirements.sh
fi
# if [[ -n "${VERIFY_CXX11}" ]]; then
# SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ../build/linux/verify_cxx11_requirements.sh
# fi
pushd "../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
@@ -223,9 +225,9 @@ if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
EXPECTED_GLIBC_VERSION="${EXPECTED_GLIBC_VERSION}" EXPECTED_GLIBCXX_VERSION="${GLIBCXX_VERSION}" SEARCH_PATH="../vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ./build/azure-pipelines/linux/verify-glibc-requirements.sh
if [[ -n "${VERIFY_CXX11}" ]]; then
SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ../build/linux/verify_cxx11_requirements.sh
fi
# if [[ -n "${VERIFY_CXX11}" ]]; then
# SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ../build/linux/verify_cxx11_requirements.sh
# fi
pushd "../vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}"

View File

@@ -2,5 +2,5 @@
set -ex
export ELECTRON_VERSION="37.2.3"
export ELECTRON_VERSION="39.2.7"
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}"

View File

@@ -1,10 +1,10 @@
877785ae2383a8a222fa37bda98c148b145931ff8714614aaf330d15d6f92710 *chromedriver-v37.2.3-linux-ppc64le.zip
5ce746efac98a0d83699ef0e03497867ed34d936a268551f26eb2e2972c4d5f5 *electron-v37.2.3-linux-ppc64le-debug.zip
f0ac8a9a9b6c1e330edd53fedaee29699c540691993ace4bb938cdd369895b89 *electron-v37.2.3-linux-ppc64le-symbols.zip
6dc2ac4a8fd4565948ac330be371436d2534aaea633d17ac7743fce8aac42ef0 *electron-v37.2.3-linux-ppc64le.zip
6358a83a03a801d6a85559179e4f12307dee693043ffb26fd40585f369f7db76 *electron.d.ts
25a5ec559f683df305faa9eb082514a9e6dff9f983b7724ddbd82a34bef4890b *hunspell_dictionaries.zip
9da591f8eabbdeba1a51f1b2ec7f2627eaa07d77d0263b6b16abc87a00e2f287 *libcxx-objects-v37.2.3-linux-ppc64le.zip
519a41987f56c133b91affbb13f8fa5331eda9da8750325fae84444532177e02 *libcxx_headers.zip
8607d01b3c828602b3f359458587d5ffa883695756edebf4547aadb0847fdaa9 *libcxxabi_headers.zip
1d40ebef530616b35031333e569247dd265704b496f35ec256220ae081c340c1 *mksnapshot-v37.2.3-linux-ppc64le.zip
bacff46523cea806df9788d9e24f7f53fad2317f18afdcbc596b86863dd40805 *chromedriver-v39.2.7-linux-ppc64le.zip
b83820b37325c0a6ce0bbb98344b54f70ef7c2a949eea61bcb423b18c623a742 *electron-v39.2.7-linux-ppc64le-debug.zip
7d3b4ff4320a54572f9e1e0286702a0bed3e1596a2cb34f8fdc455acf3b9234f *electron-v39.2.7-linux-ppc64le-symbols.zip
6974cf1c8a550019b04762222742b8f1d9d76387594a191d3522cd65da075db1 *electron-v39.2.7-linux-ppc64le.zip
40c772eb189d100087b75da6c2ad1aeb044f1d661c90543592546a654b0b6d5b *electron.d.ts
0c923001d08e474d0dcd3b747b4f9a4bfca685d755ec08de8e44556a63f9ad3a *hunspell_dictionaries.zip
ee57f79e88f50f199a6aeb87fa45c83d1bd0f92eb72e00787cfdf4cf11863562 *libcxx-objects-v39.2.7-linux-ppc64le.zip
a8709029737d3073758ccb384161a37d91f16e5a3f8110ca8e2c30f83ef8d7e6 *libcxx_headers.zip
238dcec817528659a86b0cd3d7dabe301e65b4cab25e45c5bbab7642a8849c02 *libcxxabi_headers.zip
be033ed825bd8be92bb6ca86ff81f0907e60aa999aa011f5ddf1360abb19429b *mksnapshot-v39.2.7-linux-ppc64le.zip

View File

@@ -2,5 +2,5 @@
set -ex
export ELECTRON_VERSION="37.2.3"
export ELECTRON_VERSION="39.2.7"
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}.riscv1"

View File

@@ -1,11 +1,11 @@
bec3076d684af4ab7700f13861c3257dc17198970eb498ff2e388db71f61898e *chromedriver-v37.2.3-linux-riscv64.zip
c670aba1b907ef9cbcdb2dccd742604f897eef4719f7ad46f34925197f7ae208 *electron-v37.2.3-linux-riscv64-debug.tar.zst
3ee5a9d29c611a6c685caa291698c3b5f1041bd11b3726137d41931457d6a113 *electron-v37.2.3-linux-riscv64-symbols.tar.zst
33f16380975b2087308f096e4329639f839c58aa1b9cccbee0a915bf3ed7b976 *electron-v37.2.3-linux-riscv64.zip
0ef484d10dd15bb4b44e5862ff8070ec09d94ca0b7c6b062e88c64fa343e2408 *ffmpeg-v37.2.3-linux-riscv64.zip
218a633300feb50ed57ab751374bac8693615ff192c2437067a4bceef84c9cf8 *hunspell-dictionaries.zip
abe24654e394d057dc2bdea9533fcd1790becb822b53d543165c74470694e818 *libcxx-headers.zip
1e6972b9125d1864f32d0f5d1084cf4ea56f7dd2227505271dde15439942c0e4 *libcxx-objects-v37.2.3-linux-riscv64.zip
55fdbc0fc65e176e50c3492dd50a18c9d23e2bd0e45a00a34118d46ed583a8d0 *libcxxabi-headers.zip
b017a16c8f0d8c8076ec71fba5a043951dd88e4fc7d8e8720906a0b9b4a141aa *mksnapshot-v37.2.3-linux-riscv64.zip
0259b1abf0bc8aedb114bac75aadcbb1860fd13ae32a876702ca8e722581f8b2 *node-v37.2.3-headers.tar.gz
6759ef2bd69a2e31a3f0e17c4e4c0bf239b54f08525572201ae7760851168487 *chromedriver-v39.2.7-linux-riscv64.zip
89562e30982d8ac71fbc1e0f549a4a6e19abd5cb98ea904d5f3cfceb7c61e582 *electron-v39.2.7-linux-riscv64-debug.tar.zst
71c6f265a2ef065f478ef910a06466a21009c02783dcb7053767549a6dbeb80d *electron-v39.2.7-linux-riscv64-symbols.tar.zst
136804dbd04f1c6b9a6047c4e7bb648876214ff453b62fb3bdc81505b6f5aab2 *electron-v39.2.7-linux-riscv64.zip
1059d6cb97b87464b3bd415bb5f96fceaf91d6e3af1c9733724ab9f2e14e2a08 *ffmpeg-v39.2.7-linux-riscv64.zip
224a84d4aaceb5ed8be3c4f65f8404d492dc86ded8ab336c2562dfdd21752068 *hunspell-dictionaries.zip
b6cb4f8902aad5de811efd106ddbdbca79e43cb7c8fa67f7eeddaedf2efd82d5 *libcxx-headers.zip
0664e200ec1eab1ce1957bc6e17ad89f6c0d4d904a9492d64fcf4175cd81e537 *libcxx-objects-v39.2.7-linux-riscv64.zip
96f9b66be7ff11e79ec2e781a0025938eb5ef97cbab429c05e9b45d24d421abf *libcxxabi-headers.zip
be0774857454f81b9407f6b941200f8843a0b3ecb86e2bb072209ef9f9bfe74a *mksnapshot-v39.2.7-linux-riscv64.zip
a8fca541e8f9a18de73c78f6862cbf439723c80c5eb60fe50405dfb751d2ee13 *node-v39.2.7-headers.tar.gz

View File

@@ -20,10 +20,17 @@ for i in {1..5}; do # try 5 times
echo "Npm install failed $i, trying again..."
done
node build/azure-pipelines/distro/mixin-npm
node build/azure-pipelines/distro/mixin-npm.ts
# delete native files built in the `compile` step
find .build/extensions -type f -name '*.node' -print -delete
. ../build/windows/rtf/make.sh
# generate Group Policy definitions
npm run copy-policy-dto --prefix build
node build/lib/policies/policyGenerator.ts build/lib/policies/policyData.jsonc win32
npm run gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
. ../build_cli.sh

View File

@@ -32,6 +32,8 @@ if [[ "${OS_NAME}" == "osx" ]]; then
export OPENSSL_LIB_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-osx/lib"
export OPENSSL_INCLUDE_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-osx/include"
rustup target add "${VSCODE_CLI_TARGET}"
cargo build --release --target "${VSCODE_CLI_TARGET}" --bin=code
cp "target/${VSCODE_CLI_TARGET}/release/code" "../../VSCode-darwin-${VSCODE_ARCH}/${NAME_SHORT}.app/Contents/Resources/app/bin/${TUNNEL_APPLICATION_NAME}"

View File

@@ -1,6 +1,12 @@
#!/usr/bin/env bash
# shellcheck disable=SC2129
# Env Paramaters
# CHECK_ALL: yes | no
# CHECK_REH: yes | no
# CHECK_ONLY_REH: yes | no
# FORCE_LINUX_SNAP: true
set -e
if [[ -z "${GH_TOKEN}" ]] && [[ -z "${GITHUB_TOKEN}" ]] && [[ -z "${GH_ENTERPRISE_TOKEN}" ]] && [[ -z "${GITHUB_ENTERPRISE_TOKEN}" ]]; then
@@ -265,7 +271,7 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_TAR="no"
fi
if [[ -z $( contains "arm64.snap" ) ]]; then
if [[ -z $( contains "arm64.snap" ) || "${FORCE_LINUX_SNAP}" == "true" ]]; then
echo "Building on Linux arm64 because we have no SNAP"
export SHOULD_BUILD="yes"
else
@@ -516,7 +522,7 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_APPIMAGE="no"
fi
if [[ -z $( contains "amd64.snap" ) ]]; then
if [[ -z $( contains "amd64.snap" ) || "${FORCE_LINUX_SNAP}" == "true" ]]; then
echo "Building on Linux x64 because we have no SNAP"
export SHOULD_BUILD="yes"
else

View File

@@ -112,6 +112,10 @@ if [[ "${SKIP_BUILD}" == "no" ]]; then
git add .
git reset -q --hard HEAD
while [[ -n "$( git log -1 | grep "VSCODIUM HELPER" )" ]]; do
git reset -q --hard HEAD~
done
rm -rf .build out*
cd ..

64
dev/merge-patches.sh Executable file
View File

@@ -0,0 +1,64 @@
#!/usr/bin/env bash
set -e
normalize_file() {
if [[ "${1}" == *patch ]]; then
FILE="${1}"
else
FILE="${1}.patch"
fi
if [[ "${FILE}" == patches/* ]]; then
FILE="../${FILE}"
else
FILE="../patches/${FILE}"
fi
}
cd vscode || { echo "'vscode' dir not found"; exit 1; }
git add .
git reset -q --hard HEAD
while [[ -n "$( git log -1 | grep "VSCODIUM HELPER" )" ]]; do
git reset -q --hard HEAD~
done
git apply --reject "../patches/helper/settings.patch"
git add .
git commit --no-verify -q -m "VSCODIUM HELPER"
while [ $# -gt 1 ]; do
normalize_file "${1}"
echo "FILE: ${FILE}"
if [[ -f "${FILE}" ]]; then
if [[ -f "${FILE}.bak" ]]; then
mv -f $FILE{.bak,}
fi
git apply --reject "${FILE}" || true
fi
while [[ -n "$( find . -name '*.rej' -print )" ]]; do
echo
read -rp "Press any key when the conflict have been resolved..." -n1 -s
done
shift
done
normalize_file "${1}"
git add .
git diff --staged -U1 > "${FILE}"
if [[ "${FILE}" != "../patches/helper/settings.patch" ]]; then
git reset -q --hard HEAD
else
git reset -q --hard HEAD~
fi
echo "The patch has been generated."

View File

@@ -2,7 +2,19 @@
set -e
echo "$#"
normalize_file() {
if [[ "${1}" == *patch ]]; then
FILE="${1}"
else
FILE="${1}.patch"
fi
if [[ "${FILE}" == patches/* ]]; then
FILE="../${FILE}"
else
FILE="../patches/${FILE}"
fi
}
cd vscode || { echo "'vscode' dir not found"; exit 1; }
@@ -13,30 +25,28 @@ while [[ -n "$( git log -1 | grep "VSCODIUM HELPER" )" ]]; do
git reset -q --hard HEAD~
done
git apply --reject "../patches/helper/settings.patch"
normalize_file "${1}"
while [ $# -gt 1 ]; do
echo "Parameter: $1"
if [[ "${1}" == *patch ]]; then
FILE="../patches/${1}"
else
FILE="../patches/${1}.patch"
fi
if [[ "${FILE}" != "../patches/helper/settings.patch" ]]; then
git apply --reject "../patches/helper/settings.patch"
git apply --reject "${FILE}"
while [ $# -gt 1 ]; do
echo "Parameter: $1"
normalize_file "${1}"
shift
done
git apply --reject "${FILE}"
git add .
git commit --no-verify -q -m "VSCODIUM HELPER"
shift
done
if [[ "${1}" == *patch ]]; then
FILE="../patches/${1}"
else
FILE="../patches/${1}.patch"
git add .
git commit --no-verify -q -m "VSCODIUM HELPER"
normalize_file "${1}"
fi
echo "FILE: ${FILE}"
if [[ -f "${FILE}" ]]; then
if [[ -f "${FILE}.bak" ]]; then
mv -f $FILE{.bak,}
@@ -47,8 +57,18 @@ fi
read -rp "Press any key when the conflict have been resolved..." -n1 -s
while [[ -n "$( find . -name '*.rej' -print )" ]]; do
echo
read -rp "Press any key when the conflict have been resolved..." -n1 -s
done
git add .
git diff --staged -U1 > "${FILE}"
git reset -q --hard HEAD~
if [[ "${FILE}" != "../patches/helper/settings.patch" ]]; then
git reset -q --hard HEAD
else
git reset -q --hard HEAD~
fi
echo "The patch has been generated."

View File

@@ -14,7 +14,6 @@ while getopts ":i" opt; do
esac
done
URL=$( curl -s "https://update.code.visualstudio.com/api/update/win32-x64-archive/${VSCODE_QUALITY}/0000000000000000000000000000000000000000" | jq -c '.url' | sed -E 's/.*"([^"]+)".*/\1/' )
# echo "url: ${URL}"
FILE="${URL##*/}"
@@ -30,10 +29,17 @@ if [[ ! -d "${DIRECTORY}" ]]; then
unzip "${FILE}" -d "${DIRECTORY}"
fi
APIS=$( jq -r '.extensionEnabledApiProposals' "${DIRECTORY}/resources/app/product.json" )
BIN_PATH=$(find "${DIRECTORY}/bin" -type f ! -name "*.*")
LINE="$( grep -E '^[[:space:]]*(export[[:space:]]+)?VERSIONFOLDER[[:space:]]*=' "$BIN_PATH" | tail -n1 )"
VERSIONFOLDER="${LINE#*=}"
VERSIONFOLDER="${VERSIONFOLDER#\"}"
VERSIONFOLDER="${VERSIONFOLDER%\"}"
APIS=$( jq -r '.extensionEnabledApiProposals' "${DIRECTORY}/${VERSIONFOLDER}/resources/app/product.json" )
APIS=$( echo "${APIS}" | jq '. += {"jeanp413.open-remote-ssh": ["resolvers", "tunnels", "terminalDataWriteEvent", "contribRemoteHelp", "contribViewsRemote"]}' )
APIS=$( echo "${APIS}" | jq '. += {"jeanp413.open-remote-wsl": ["resolvers", "contribRemoteHelp", "contribViewsRemote"]}' )
echo "$( jq --argjson v "${APIS}" 'setpath(["extensionEnabledApiProposals"]; $v)' product.json )" > product.json
jsonTmp=$( jq --argjson v "${APIS}" 'setpath(["extensionEnabledApiProposals"]; $v)' product.json )
echo "${jsonTmp}" > product.json && unset jsonTmp
APIS=$( jq -r '.extensionsEnabledWithApiProposalVersion' "${DIRECTORY}/${VERSIONFOLDER}/resources/app/product.json" )
echo "$( jq --argjson v "${APIS}" 'setpath(["extensionsEnabledWithApiProposalVersion"]; $v)' product.json )" > product.json

View File

@@ -12,6 +12,75 @@ while getopts ":i" opt; do
esac
done
generate_rejects() {
local PATCH_FILE="$1"
if ! command -v python3 >/dev/null 2>&1; then
echo "python3 not found; cannot create reject files for ${PATCH_FILE}"
return 1
fi
PATCH_FOR_REJECT="${PATCH_FILE}" python3 <<'PY'
import os
import pathlib
import re
import subprocess
def chunk_needs_reject(raw_chunk: str) -> bool:
"""Return True when a patch chunk cannot be applied nor reversed."""
chunk = raw_chunk if raw_chunk.endswith("\n") else raw_chunk + "\n"
def _run_git(extra_args):
return subprocess.run(
["git", "apply", "--check", "--ignore-whitespace", *extra_args],
input=chunk,
text=True,
capture_output=True,
)
forward = _run_git([])
if forward.returncode == 0:
return False
reverse = _run_git(["--reverse"])
if reverse.returncode == 0:
return False
return True
patch_path = os.environ["PATCH_FOR_REJECT"]
with open(patch_path, "r", encoding="utf-8", errors="ignore") as src:
content = src.read()
chunks = re.split(r'(?m)^diff --git ', content)
for chunk in chunks:
chunk = chunk.strip()
if not chunk:
continue
chunk = "diff --git " + chunk
match = re.search(r'^diff --git a/(.*?) b/(.*?)$', chunk, re.MULTILINE)
if not match:
continue
a_path, b_path = match.groups()
candidate = b_path if b_path != "/dev/null" else a_path
if candidate in ("/dev/null", ""):
continue
if candidate.startswith("../") or candidate.startswith("..\\") or candidate.startswith("/"):
continue
dest = pathlib.Path(candidate + ".rej")
if not chunk_needs_reject(chunk):
continue
dest.parent.mkdir(parents=True, exist_ok=True)
with dest.open("w", encoding="utf-8") as fh:
fh.write(chunk)
if not chunk.endswith("\n"):
fh.write("\n")
print(f"generated reject: {dest}")
PY
}
check_file() {
while [ $# -gt 1 ]; do
git apply --reject "${1}"
@@ -33,9 +102,27 @@ check_file() {
if ! git apply --ignore-whitespace "${1}"; then
echo failed to apply patch "${1}"
git apply --reject "${1}"
git apply --reject --verbose "${1}"
read -rp "Press any key when the conflict have been resolved..." -n1 -s
if [[ -z "$( find . -name '*.rej' -print )" ]]; then
echo "no .rej generated by git; creating fallback rejects for ${1}"
if ! generate_rejects "${1}"; then
echo "failed to generate reject files for ${1}"
exit 1
fi
if [[ -z "$( find . -name '*.rej' -print )" ]]; then
echo "still no .rej after attempting to create them for ${1}"
exit 1
fi
fi
while [[ -n "$( find . -name '*.rej' -print )" ]]; do
find . -name '*.rej' -print
read -rp "Press any key when the conflict have been resolved..." -n1 -s
echo
done
git restore .vscode/settings.json
git add .
@@ -52,8 +139,16 @@ cd vscode || { echo "'vscode' dir not found"; exit 1; }
git add .
git reset -q --hard HEAD
while [[ -n "$( git log -1 | grep "VSCODIUM HELPER" )" ]]; do
git reset -q --hard HEAD~
done
for FILE in ../patches/*.patch; do
check_file "${FILE}"
if [[ "${FILE}" == *"/fix-policies.patch" ]]; then
check_file "../patches/fix-keymap.patch" "../patches/fix-policies.patch"
else
check_file "${FILE}"
fi
done
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then

View File

@@ -0,0 +1,22 @@
<!-- order: 16 -->
# Extension: GitHub Copilot
Unlike Visual Studio Code, in VSCodium, Copilot features are disabled and not configured.
## Update your settings
In your settings, sets:
```
"chat.disableAIFeatures": false,
```
## Configure product.json
You need to create 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`
- macOS: `~/Library/Application Support/VSCodium`
- Linux: `$XDG_CONFIG_HOME/VSCodium` or `~/.config/VSCodium`
Then you will need to follow the guide [Running with Code OSS](https://github.com/microsoft/vscode-copilot-chat/blob/main/CONTRIBUTING.md#running-with-code-oss) with the `product.json` file created previously.
You will need to add the properties: `trustedExtensionAuthAccess` and `defaultChatAgent`.

View File

@@ -12,11 +12,11 @@
## <a id="incompatibility"></a>Incompatibility
Most MS extensions are limited to run on only MS products by their license and by running additional checks in their proprietary code.
Most Microsoft extensions are limited to run on only MS products by their license and by running additional checks in their proprietary code.
Extensions incompatible with VSCodium **include**:
- [C/C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)
- [LaTeX Workshop](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop)
> It's officially unsupported: https://github.com/James-Yu/LaTeX-Workshop/wiki/FAQ#vscodium-is-not-officially-supported
- [LaTeX Workshop](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop) (explicitly unsupported, as [indicated in the FAQ](https://github.com/James-Yu/LaTeX-Workshop/wiki/FAQ#vscodium-is-not-officially-supported))
- [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare)
- [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python)
- [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)
@@ -40,6 +40,5 @@ The following extensions are functional replacements for incompatible extensions
### <a id="remote"></a>Remote Development
- [Open Remote - SSH](https://open-vsx.org/extension/jeanp413/open-remote-ssh)
> SSH server must be configured with the setting `AllowTcpForwarding yes`.
- [Open Remote - SSH](https://open-vsx.org/extension/jeanp413/open-remote-ssh) (SSH server must be configured with the setting `AllowTcpForwarding yes`.)
- [Open Remote - WSL](https://open-vsx.org/extension/jeanp413/open-remote-wsl)

View File

@@ -17,7 +17,7 @@
## <a id="dependencies"></a>Dependencies
- node 20.18
- node (check [.nvmrc](../.nvmrc) for version)
- jq
- git
- python3 3.11
@@ -46,11 +46,74 @@ see [the common dependencies](#dependencies)
### <a id="dependencies-windows"></a>Windows
- powershell
- sed
- 7z
- [WiX Toolset](http://wixtoolset.org/releases/)
- 'Tools for Native Modules' from the official Node.js installer
The build scripts are written in Bash, so on Windows you must run them inside **Git Bash** (bundled with [Git for Windows](https://gitforwindows.org/)) or **WSL2**.
#### Required tools
- **Git for Windows** — provides Git Bash, `sed`, and POSIX utilities used by the build scripts:
```cmd
winget install --id Git.Git -e
```
- **Node.js** — exact version is specified in [`.nvmrc`](../.nvmrc). Use [nvm-windows](https://github.com/coreybutler/nvm-windows) to manage versions:
```cmd
nvm install <version-from-.nvmrc>
nvm use <version-from-.nvmrc>
```
Alternatively, download directly from [nodejs.org](https://nodejs.org/). During installation, enable **"Automatically install the necessary tools"** to get the C++ build tools (required for native Node addons).
- **jq** — JSON processor used throughout the build scripts:
```cmd
winget install --id jqlang.jq -e
```
- **7-Zip** — used to package `.zip` archives:
```cmd
winget install --id 7zip.7zip -e
```
- **Python 3.11** — required by the VS Code build system:
```cmd
winget install --id Python.Python.3.11 -e
```
Ensure `python` / `python3` is on your `PATH` after installation.
- **Rustup** — required to compile some native VS Code modules:
```cmd
winget install --id Rustlang.Rustup -e
```
Restart your shell afterwards so `cargo` and `rustc` are on your `PATH`.
#### Optional tools
- **WiX Toolset v3** _(only needed for `.msi` installer packaging, i.e., the `-p` flag)_:
Download from [wixtoolset.org](https://wixtoolset.org/releases/) and ensure `candle.exe` / `light.exe` are on your `PATH`.
#### PATH verification
After installing all tools, verify each is discoverable from Git Bash:
```bash
node --version # should match .nvmrc
npm --version
jq --version
python3 --version # should be 3.11.x
cargo --version
7z i 2>&1 | head -1
git --version
```
If any command is not found, add its install directory to your `PATH` via **System Properties → Environment Variables → Path**.
## <a id="build-dev"></a>Build for Development
@@ -58,7 +121,10 @@ A build helper script can be found at `dev/build.sh`.
- Linux: `./dev/build.sh`
- MacOS: `./dev/build.sh`
- Windows: `powershell -ExecutionPolicy ByPass -File .\dev\build.ps1` or `"C:\Program Files\Git\bin\bash.exe" ./dev/build.sh`
- Windows (Git Bash — **recommended**): `"C:\Program Files\Git\bin\bash.exe" ./dev/build.sh`
- Windows (PowerShell): `powershell -ExecutionPolicy ByPass -File .\dev\build.ps1`
> **Note for Windows users**: Git Bash is the recommended shell because the build scripts rely on POSIX utilities (`sed`, `grep`, `find`, etc.) bundled with Git for Windows. If you use WSL2, follow the Linux dependencies section instead.
### Insider
@@ -95,6 +161,7 @@ export RELEASE_VERSION="${version}"
```
To go further, you should look at how we build it:
- Linux: https://github.com/VSCodium/vscodium/blob/master/.github/workflows/stable-linux.yml
- macOS: https://github.com/VSCodium/vscodium/blob/master/.github/workflows/stable-macos.yml
- Windows: https://github.com/VSCodium/vscodium/blob/master/.github/workflows/stable-windows.yml

View File

@@ -25,6 +25,7 @@
- [Proprietary Extensions](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#proprietary-extensions)
- [Using the "VSIX Manager" Extension](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#vsix-manager)
- [Extensions compatibility](https://github.com/VSCodium/vscodium/blob/master/docs/extensions-compatibility.md)
- [Ext: GitHub Copilot](https://github.com/VSCodium/vscodium/blob/master/docs/ext-github-copilot.md)
- [Migration](https://github.com/VSCodium/vscodium/blob/master/docs/migration.md)
- [Manual Migration from Visual Studio Code to VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/migration.md#manual-migration)
- [Semi-Automatic Migration with "Sync Settings" Extension](https://github.com/VSCodium/vscodium/blob/master/docs/migration.md#semi-automatic-migration)

43
docs/patches.md Normal file
View File

@@ -0,0 +1,43 @@
# Patches
Documentation for VSCodium patches applied on top of VS Code.
---
## fix-policies
**Replace `@vscode/policy-watcher` with `@vscodium/policy-watcher`**
VS Code uses `@vscode/policy-watcher` to enforce Group Policy Objects (GPOs) on
Windows. That package reads from:
```
HKLM\SOFTWARE\Policies\Microsoft\<productName>
```
VSCodium forks this into `@vscodium/policy-watcher`, which takes a separate
`vendorName` argument. The `createWatcher()` call becomes:
```ts
createWatcher('VSCodium', this.productName, ...)
```
Because VSCodium sets `product.nameLong = 'VSCodium'` (via `prepare_vscode.sh`),
`this.productName` resolves to `'VSCodium'` at runtime. Therefore, the final
Windows registry key that VSCodium reads policies from is:
```
HKLM\SOFTWARE\Policies\VSCodium\VSCodium\<PolicyName>
```
(or `HKCU\SOFTWARE\Policies\VSCodium\VSCodium\<PolicyName>` for per-user policies)
This differs from VS Code's path (`Microsoft\VSCode`) and is the root cause of
[issue #2714](https://github.com/VSCodium/vscodium/issues/2714) where users mirror
VS Code's registry structure and find their GPOs ignored. Enterprise admins must
use the VSCodium-specific registry path.
### References
- [VSCodium issue #2714](https://github.com/VSCodium/vscodium/issues/2714)
- [VSCodium/policy-watcher — RegistryPolicy.hh](https://github.com/VSCodium/policy-watcher/blob/main/src/windows/RegistryPolicy.hh)

View File

@@ -17,6 +17,7 @@ This page explains how VSCodium handles telemetry and how it enhances your priva
Even though we do not pass the telemetry build flags and go out of our way to cripple the baked-in telemetry, Microsoft still can track usage by default depending on your settings.
We disable all the following telemetry-related settings by default to enhance your privacy:
```
telemetry.telemetryLevel
telemetry.enableCrashReporter
@@ -26,28 +27,33 @@ workbench.enableExperiments
workbench.settings.enableNaturalLanguageSearch
workbench.commandPalette.experimental.enableNaturalLanguageSearch
```
It is also recommended that you review all the settings that "use online services" by following [these instructions](https://code.visualstudio.com/docs/getstarted/telemetry#_managing-online-services). You can use the search filter `@tag:usesOnlineServices` to show such settings and review what to change.
__Please note that some extensions send telemetry data to Microsoft as well. We have no control over this and can only recommend removing the extension.__
**Please note that some extensions send telemetry data to Microsoft as well. We have no control over this and can only recommend removing the extension.**
For example, the C# extension `ms-vscode.csharp` sends tracking data to Microsoft. Be sure to check each extension's settings page to disable their telemetry if applicable.
### Update services
By default, the app periodically fetches connections to check for the latest version available to download and install.
Extensions are also checked for updates automatically from time to time.
If you want to prevent such behaviors, modify the following preferences:
For the app itself:
- `update.mode` -> `manual` (or `none`)
- `update.enableWindowsBackgroundUpdates` -> `false` (only applicable for Microsoft Windows)
For extensions:
- `extensions.autoUpdate` -> `false`
- `extensions.autoCheckUpdates` -> `false`
*Note: on Linux, the app update service is disabled completely at build-time even if the `update.mode` preference is configured. This is because users will more likely use their package managers to update the app rather than updating via the app itself.*
_Note: on Linux, the app update service is disabled completely at build-time even if the `update.mode` preference is configured. This is because users will more likely use their package managers to update the app rather than updating via the app itself._
### Feedback telemetry
By default, we keep the preference `telemetry.feedback.enabled` enabled. It's used to allow the button `Report Issue...` to be used on the app depending on the context. It does not send any data by having it enabled (other options already cover it). If you want, you can disable this behavior by toggling the preference value.
## <a id="replacements"></a>Replacements to Microsoft Online Services
@@ -66,7 +72,7 @@ If you want to verify that no telemetry is being sent, you can use network monit
Look for connections to Microsoft domains and telemetry endpoints.
## <a id="announcements"></a>VSCodium anouncements
## <a id="announcements"></a>VSCodium announcements
The welcome page in VSCodium displays announcements that are fetched via the internet from the project's GitHub repository.

View File

@@ -10,10 +10,15 @@
- [Global menu workaround for KDE](#linux-kde-global-menu)
- [Flatpak most common issues](#linux-flatpak-most-common-issues)
- [Remote SSH doesn't work](#linux-remote-ssh)
- [The window doesn't show up](#linux-no-window)
- [Windows](#windows)
- [Group Policy Objects (GPOs) are ignored](#windows-gpo)
- ["Open with VSCodium" missing from context menu](#windows-context-menu)
- [Windows Defender flags the installer as malware](#windows-defender)
## <a id="linux"></a>Linux
### <a id="linux-fonts-rectangle"></a>*Fonts showing up as rectangles*
### <a id="linux-fonts-rectangle"></a>_Fonts showing up as rectangles_
The following command should help:
@@ -23,27 +28,27 @@ rm -rf ~/snap/codium/common/.cache
fc-cache -r
```
### <a id="linux-rendering-glitches"></a>*Text and/or the entire interface not appearing*
### <a id="linux-rendering-glitches"></a>_Text and/or the entire interface not appearing_
You have likely encountered [a bug in Chromium and Electron](microsoft/vscode#190437) when compiling Mesa shaders, which has affected all Visual Studio Code and VSCodium versions for Linux distributions since 1.82. The current workaround (see microsoft/vscode#190437) is to delete the GPU cache as follows:
You have likely encountered [a bug in Chromium and Electron](microsoft/vscode#190437) when compiling Mesa shaders, which has affected all Visual Studio Code and VSCodium versions for Linux distributions since 1.82. The current workaround (see microsoft/vscode#190437) is to delete the GPU cache as follows:
```bash
rm -rf ~/.config/VSCodium/GPUCache
```
### <a id="linux-kde-global-menu"></a>*Global menu workaround for KDE*
### <a id="linux-kde-global-menu"></a>_Global menu workaround for KDE_
Install these packages on Fedora:
* libdbusmenu-devel
* dbus-glib-devel
* libdbusmenu
- libdbusmenu-devel
- dbus-glib-devel
- libdbusmenu
On Ubuntu this package is called `libdbusmenu-glib4`.
Credits: [Gerson](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/issues/91)
### <a id="linux-flatpak-most-common-issues"></a>*Flatpak most common issues*
### <a id="linux-flatpak-most-common-issues"></a>_Flatpak most common issues_
- blurry screen with HiDPI on wayland run:
```bash
@@ -63,10 +68,87 @@ Credits: [Gerson](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/issues/
- If you have any other problems with the flatpak package try to look on the [FAQ](https://github.com/flathub/com.vscodium.codium?tab=readme-ov-file#faq) maybe the solution is already there or open an [issue](https://github.com/flathub/com.vscodium.codium/issues).
### <a id="linux-remote-ssh"></a>*Remote SSH doesn't work*
### <a id="linux-remote-ssh"></a>_Remote SSH doesn't work_
Use the VSCodium's compatible extension [Open Remote - SSH](https://open-vsx.org/extension/jeanp413/open-remote-ssh).
On the server, in the `sshd` config, `AllowTcpForwarding` need to be set to `yes`.
It might requires additional dependencies due to the OS/distro (alpine).
### <a id="linux-no-window"></a>_The window doesn't show up_
If you are under Wayland:
- try the command `codium --verbose`
- if you see an error like `:ERROR:ui/gl/egl_util.cc:92] EGL Driver message (Error) eglCreateContext: Requested version is not supported`
- try `codium --ozone-platform=x11`
## <a id="windows"></a>Windows
### <a id="windows-gpo"></a>_Group Policy Objects (GPOs) are ignored_
VSCodium uses its own policy-watcher library (`@vscodium/policy-watcher`) which reads GPO values from a **different registry path** than VS Code.
**VSCodium reads policies from:**
```
HKLM\SOFTWARE\Policies\VSCodium\VSCodium
```
**VS Code reads policies from:**
```
HKLM\SOFTWARE\Policies\Microsoft\VSCode
```
If you are deploying VSCodium in an enterprise environment via Group Policy:
1. Copy the `.admx` template file to `C:\Windows\PolicyDefinitions\`
2. Copy the `.adml` language file to `C:\Windows\PolicyDefinitions\en-US\`
3. Open `gpedit.msc` and configure policies under the VSCodium group
4. Verify the resulting registry key exists at `HKLM\SOFTWARE\Policies\VSCodium\VSCodium` (not `Microsoft\VSCodium`)
If you set policies manually via Registry Editor, make sure you create the key at the correct path:
```
HKLM\SOFTWARE\Policies\VSCodium\VSCodium\<PolicyName> (REG_SZ or REG_DWORD)
```
For example, to set `Update: Mode` to `none`:
```
Registry key: HKLM\SOFTWARE\Policies\VSCodium\VSCodium
Value name: update.mode
Value type: REG_SZ
Value data: none
```
Per-user policies are also supported under `HKCU\SOFTWARE\Policies\VSCodium\VSCodium` (machine policies take precedence).
### <a id="windows-context-menu"></a>_"Open with VSCodium" missing from context menu_
If the **"Open with VSCodium"** option does not appear after installation (even with the checkbox checked during setup):
1. **Run the installer again** and ensure _"Add 'Open with VSCodium' action to Windows Explorer file context menu"_ is checked.
2. **Windows 11 note**: Windows 11 hides most context menu entries behind **Shift + Right-click** ("Show more options"). VSCodium's entry may be present but hidden in the new condensed menu. Try Shift + Right-click to see the classic context menu.
3. If the entry still does not appear, you can add it manually via Registry Editor:
```
Key: HKEY_CLASSES_ROOT\*\shell\Open with VSCodium
Value: (Default) = "Open with VSCodium"
Key: HKEY_CLASSES_ROOT\*\shell\Open with VSCodium\command
Value: (Default) = "C:\Program Files\VSCodium\VSCodium.exe" "%1"
```
Adjust the install path to match your actual installation directory.
### <a id="windows-defender"></a>_Windows Defender flags the installer as malware_
Some users report Windows Defender detecting the VSCodium installer as `Cinjo` or another threat. This is a **false positive** caused by the unsigned nature of certain build artifacts.
- Download VSCodium **only from the official [GitHub Releases page](https://github.com/VSCodium/vscodium/releases)**.
- Verify the SHA256/SHA512 checksum of the downloaded file against the `.sha256` or `.sha512` file published alongside each release.
- If Defender blocks the installer, add an exclusion for the downloaded file, run the install, then remove the exclusion.
- You can also report the false positive directly to Microsoft via the [Windows Defender Security Intelligence submission portal](https://www.microsoft.com/en-us/wdsi/filesubmission).

View File

@@ -0,0 +1,7 @@
artifacts:
"@daiyam/artifact-lang-js":
version: 0.9.3
requires:
- "22"
"@daiyam/artifact-lang-ts":
version: 0.6.3

17
font-size/.editorconfig Normal file
View File

@@ -0,0 +1,17 @@
root = true
[*]
indent_style = tab
tab_width = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[{*.yml,*.yaml}]
indent_style = space
indent_size = 2
[*.md]
indent_style = space
indent_size = 4

29
font-size/.fixpackrc Normal file
View File

@@ -0,0 +1,29 @@
{
"sortToTop": [
"name",
"displayName",
"description",
"version",
"private",
"author",
"publisher",
"license",
"homepage",
"repository",
"bugs",
"engines",
"type",
"bin",
"exports",
"main",
"module",
"types",
"typesVersions",
"scripts",
"dependencies",
"devDependencies",
"optionalDependencies",
"keywords"
],
"finalNewLine": true
}

2
font-size/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
/node_modules/
/lib/

1
font-size/.nvmrc Normal file
View File

@@ -0,0 +1 @@
v22.21.1

9
font-size/.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,9 @@
{
"search.exclude": {
"package-lock.json": true,
"lib/**": true,
},
"taskExplorer.exclude": [
".husky",
],
}

153
font-size/.xo-config.json Normal file
View File

@@ -0,0 +1,153 @@
{
"ignores": [
"*.config.js",
"*.config.ts"
],
"rules": {
"@typescript-eslint/ban-types": "off",
"@typescript-eslint/brace-style": [
"error",
"stroustrup"
],
"@typescript-eslint/class-literal-property-style": [
"error",
"fields"
],
"@typescript-eslint/keyword-spacing": [
"error",
{
"overrides": {
"if": {
"after": false
},
"for": {
"after": false
},
"switch": {
"after": false
},
"while": {
"after": false
}
}
}
],
"@typescript-eslint/member-ordering": [
"error",
{
"default": [
"field",
"constructor",
"get",
"set",
"method"
]
}
],
"@typescript-eslint/naming-convention": [
"error",
{
"selector": "variable",
"modifiers": ["const", "global"],
"format": ["camelCase", "UPPER_CASE"],
"filter": {
"regex": "^(__filename|__dirname)$",
"match": false
}
},
{
"selector": "variable",
"format": ["camelCase"],
"filter": {
"regex": "^(__filename|__dirname)$",
"match": false
}
}
],
"@typescript-eslint/no-confusing-void-expression": "off",
"@typescript-eslint/no-dynamic-delete": "off",
"@typescript-eslint/no-inferrable-types": "off",
"@typescript-eslint/no-namespace": "off",
"@typescript-eslint/object-curly-spacing": [
"error",
"always"
],
"@typescript-eslint/parameter-properties": "off",
"@typescript-eslint/prefer-promise-reject-errors": "off",
"@typescript-eslint/return-await": "off",
"arrow-parens": [
"error",
"always"
],
"capitalized-comments": "off",
"complexity": "off",
"default-case": "off",
"import/extensions": [
"error",
"never"
],
"import/order": [
"error",
{
"groups": [
"builtin",
"external",
"internal",
"parent",
"sibling",
"index",
"object"
],
"alphabetize": {
"order": "asc",
"caseInsensitive": true
}
}
],
"max-depth": [
"error",
8
],
"max-params": [
"error",
12
],
"no-await-in-loop": "off",
"no-else-return": "off",
"no-lonely-if": "off",
"no-negated-condition": "off",
"object-curly-newline": "off",
"one-var": [
"error",
"never"
],
"unicorn/empty-brace-spaces": "off",
"unicorn/no-array-callback-reference": "off",
"unicorn/no-length-as-slice-end": "off",
"unicorn/no-object-as-default-parameter": "off",
"unicorn/prefer-json-parse-buffer": "off",
"unicorn/prefer-module": "off",
"unicorn/prefer-node-protocol": "off",
"unicorn/prefer-switch": "off",
"unicorn/prefer-ternary": "off",
"unicorn/prevent-abbreviations": [
"error",
{
"replacements": {
"arg": false,
"args": false,
"dir": false,
"err": false,
"fn": false,
"func": false,
"i": false,
"j": false,
"mod": false,
"num": false,
"pkg": false,
"str": false
}
}
]
}
}

270
font-size/generate-css.ts Executable file
View File

@@ -0,0 +1,270 @@
#!/usr/bin/env node
import path from 'node:path';
import process from 'node:process';
import fse from '@zokugun/fs-extra-plus/async';
import { err, OK, type Result, stringifyError, xtry } from '@zokugun/xtry';
import postcss, { Root, type Rule } from 'postcss';
type Area = {
name: string;
defaultSize: number;
files: string[];
prefixes: string[];
};
const PX_REGEX = /(-?\d+(\.\d+)?)px\b/g;
const COEFF_PRECISION = 6;
const HEADER = '/*** Generated for Custom Font Size ***/';
const ZEROS = ['margin', 'padding'];
const AREAS: Record<string, Area> = {
activitybar: {
name: 'activitybar',
defaultSize: 16,
files: ['src/vs/workbench/browser/parts/activitybar/media/activityaction.css'],
prefixes: ['.monaco-workbench .activitybar'],
},
bottompane: {
name: 'bottompane',
defaultSize: 13,
files: ['src/vs/workbench/browser/parts/panel/media/panelpart.css', 'src/vs/base/browser/ui/actionbar/actionbar.css', 'src/vs/workbench/browser/parts/media/paneCompositePart.css'],
prefixes: ['.monaco-workbench .part.panel'],
},
statusbar: {
name: 'statusbar',
defaultSize: 12,
files: ['src/vs/workbench/browser/parts/statusbar/media/statusbarpart.css'],
prefixes: ['.monaco-workbench .part.statusbar'],
},
sidebar: {
name: 'sidebar',
defaultSize: 13,
files: [
'src/vs/base/browser/ui/actionbar/actionbar.css',
'src/vs/base/browser/ui/button/button.css',
'src/vs/base/browser/ui/inputbox/inputBox.css',
'src/vs/workbench/contrib/debug/browser/media/debugToolBar.css',
'src/vs/workbench/contrib/debug/browser/media/debugViewlet.css',
'src/vs/workbench/contrib/extensions/browser/media/extension.css',
'src/vs/workbench/contrib/extensions/browser/media/extensionActions.css',
'src/vs/workbench/contrib/search/browser/media/searchview.css',
'src/vs/workbench/contrib/scm/browser/media/scm.css',
],
prefixes: ['.monaco-workbench .part.sidebar', '.monaco-workbench .part.auxiliarybar'],
},
tabs: {
name: 'tabs',
defaultSize: 13,
files: [
'src/vs/workbench/browser/parts/editor/media/editortabscontrol.css',
'src/vs/workbench/browser/parts/editor/media/editortitlecontrol.css',
'src/vs/workbench/browser/parts/editor/media/multieditortabscontrol.css'
],
prefixes: ['.monaco-workbench .part.editor > .content .editor-group-container > .title.tabs'],
},
};
function formatCoefficient(n: number): string { // {{{
const fixed = n.toFixed(COEFF_PRECISION);
return fixed.replace(/\.?0+$/, '');
} // }}}
function replacePx(area: Area) { // {{{
return (match: string, numStr: string): string => {
const pxValue = Number.parseFloat(numStr);
if(pxValue === 1) {
return match;
}
const coeff = formatCoefficient(pxValue / area.defaultSize);
return `calc(var(--vscode-workbench-${area.name}-font-size) * ${coeff})`;
};
} // }}}
function transformPxValue(value: string, area: Area): string { // {{{
return value.replaceAll(PX_REGEX, replacePx(area));
} // }}}
async function processFile(filePath: string, areas: Area[]): Promise<Result<void, string>> { // {{{
const readResult = await fse.readFile(filePath, 'utf8');
if(readResult.fails) {
return err(stringifyError(readResult.error));
}
const content = extractOriginal(readResult.value);
const postcssResult = xtry(() => postcss.parse(content, { from: filePath }));
if(postcssResult.fails) {
return err(`Failed to parse ${filePath}: ${stringifyError(postcssResult.error)}`);
}
const generatedRoot = postcss.root();
for(const area of areas) {
processFileArea(postcssResult.value, generatedRoot, area)
}
if(generatedRoot.nodes && generatedRoot.nodes.length > 0) {
const writeResult = await fse.writeFile(filePath, content + `\n\n\n${HEADER}\n\n` + generatedRoot.toString(), 'utf8');
if(writeResult.fails) {
return err(stringifyError(readResult.error));
}
console.log(`Generated: ${filePath}`);
}
else {
console.log(`No px sizes found in: ${filePath}`);
}
return OK;
} // }}}
function processFileArea(postcssResult: Root, generatedRoot: Root, area: Area): void { // {{{
postcssResult.walkRules((rule: Rule) => {
const declarationsToAdd: Array<{ prop: string; value: string }> = [];
rule.walkDecls((declaration) => {
if(PX_REGEX.test(declaration.value)) {
const newValue = transformPxValue(declaration.value, area);
declarationsToAdd.push({ prop: declaration.prop, value: newValue });
}
else if(declaration.value === 'auto' && (declaration.prop === 'height' || declaration.prop === 'width')) {
declarationsToAdd.push({ prop: declaration.prop, value: 'auto' });
}
else if(declaration.value === '0' && ZEROS.includes(declaration.prop)) {
declarationsToAdd.push({ prop: declaration.prop, value: '0' });
}
});
if(declarationsToAdd.length > 0) {
const selectors = (rule.selectors && rule.selectors.length > 0) ? rule.selectors : [rule.selector];
const prefixeds: string[] = [];
for(const prefix of area.prefixes) {
const parts = prefix.split(' ');
const prefixed = selectors.map((s) => prefixSelector(s, parts)).join(', ');
prefixeds.push(prefixed);
}
const newRule = postcss.rule({ selector: `${prefixeds.join(', ')}` });
let length = 0;
for(const declaration of declarationsToAdd) {
if(!declaration.prop.startsWith('border')) {
newRule.append({ ...declaration });
length += 1;
}
}
if(length > 0) {
generatedRoot.append(newRule);
}
}
});
} // }}}
function extractOriginal(content: string): string { // {{{
const index = content.indexOf(HEADER);
if(index === -1) {
return content;
}
return content.slice(0, Math.max(0, index - 3));
} // }}}
function extractStyle(selector: string): string { // {{{
const match = /^(\.[\w-]+)/.exec(selector);
return match?.[1] ?? '';
} // }}}
function mergeSelector(selectors: string[], prefixes: string[], index: number): void { // {{{
if(index >= prefixes.length) {
return;
}
const prefix = prefixes[index];
const selector = selectors[index];
const style = extractStyle(prefix);
if(selector === style) {
if(prefix.length > style.length) {
selectors[index] = prefix;
}
mergeSelector(selectors, prefixes, index + 1);
}
else if(selector.startsWith(style)) {
mergeSelector(selectors, prefixes, index + 1);
}
else if(index === 0) {
selectors.unshift(...prefixes)
}
else {
selectors.splice(index + 1, 0, ...prefixes.slice(index));
}
} // }}}
function prefixSelector(selector: string, prefixParts: string[]): string { // {{{
const parts = selector.split(' ');
if(parts[0] === '.mac' || parts[0] === '.linux' || parts[0] === '.windows') {
parts[0] = `${prefixParts[0]}${parts[0]}`;
parts.splice(1, 0, ...prefixParts.slice(1));
}
else {
mergeSelector(parts, prefixParts, 0);
}
return parts.join(' ');
} // }}}
async function main(): Promise<void> { // {{{
const name = process.argv[2];
const area = AREAS[name];
if(area) {
for(const file of area.files) {
const result = await processFile(path.join('..', 'vscode', file), [area]);
if(result.fails) {
console.error(`Error processing ${file}:`, result.error);
}
}
}
else if(name === 'all') {
const files: Record<string, Area[]> = {};
for(const area of Object.values(AREAS)) {
for(const file of area.files) {
if(files[file]) {
files[file].push(area)
}
else {
files[file] = [area]
}
}
}
for(const [file, areas] of Object.entries(files)) {
const result = await processFile(path.join('..', 'vscode', file), areas);
if(result.fails) {
console.error(`Error processing ${file}:`, result.error);
}
}
}
else {
console.log(`No area found for ${name}`);
console.log(`\nAvailable areas:\n- ${Object.keys(AREAS).join('\n- ')}`);
return;
}
} // }}}
await main();

7391
font-size/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

30
font-size/package.json Normal file
View File

@@ -0,0 +1,30 @@
{
"name": "font-size",
"description": "",
"version": "1.0.0",
"author": {
"name": "Baptiste Augrain",
"email": "daiyam@zokugun.org"
},
"license": "MIT",
"type": "module",
"main": "generate-css.ts",
"scripts": {
"clean": "rimraf lib",
"lint": "xo",
"lint:fix": "xo --fix",
"prepare": "fixpack || true"
},
"dependencies": {
"@zokugun/fs-extra-plus": "^0.3.3",
"@zokugun/xtry": "^0.10.1",
"fast-glob": "^3.3.3",
"postcss": "^8.5.6"
},
"devDependencies": {
"@types/node": "^22.9.0",
"fixpack": "^4.0.0",
"xo": "0.60.0"
},
"keywords": []
}

View File

@@ -0,0 +1,78 @@
{
"compilerOptions": {
/* Language and Environment */
"target": "ES2022", /* Specify ECMAScript target version. */
"lib": [ /* Specify library files to be included in the compilation. */
"ES2022",
],
/* Modules */
"module": "node16", /* Specify what module code is generated. */
/* Basic Options */
// "allowJs": false, /* Allow javascript files to be compiled. */
// "checkJs": false, /* Report errors in '.js' files. */
// "jsx": undefined, /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */
// "declaration": false, /* Generates corresponding '.d.ts' file. */
// "declarationDir": "" /* Specify the output directory for generated declaration files. */
// "declarationMap": false, /* Generates a sourcemap for each corresponding '.d.ts' file. */
// "outFile": "", /* Specify a file that bundles all outputs into one JavaScript file. */
// "outDir": "", /* Specify an output folder for all emitted files. */
// "rootDir": "", /* Specify the root directory of input files. */
// "incremental": false, /* Save '.tsbuildinfo' files to allow for incremental compilation of projects. */
// "composite": false, /* Enable constraints that allow a TypeScript project to be used with project references. */
// "tsBuildInfoFile": ".tsbuildinfo", /* Specify the folder for '.tsbuildinfo' incremental compilation files. */
// "removeComments": false, /* Disable emitting comments. */
// "noEmit": true, /* Disable emitting file from a compilation. */
// "importHelpers": false, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
// "downlevelIteration": false, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
// "isolatedModules": false, /* Ensure that each file can be safely transpiled without relying on other imports. */
/* Strict Type-Checking Options */
"strict": true, /* Enable all strict type-checking options. */
"strictNullChecks": true, /* When type checking, take into account null and undefined. */
// "strictFunctionTypes": false, /* Enable strict checking of function types. */
// "strictBindCallApply": false, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
// "strictPropertyInitialization": false, /* Enable strict checking of property initialization in classes. */
// "noImplicitThis": false, /* Enable error reporting when 'this' is given the type 'any'. */
"alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */
/* Additional Checks */
"noUnusedLocals": true, /* Report errors on unused locals. */
// "noUnusedParameters": false, /* Report errors on unused parameters. */
"noImplicitAny": false, /* Report error for expressions and declarations with an implied any type.. */
"noImplicitReturns": false, /* Report error when not all code paths in function return a value. */
// "noFallthroughCasesInSwitch": false, /* Report errors for fallthrough cases in switch statement. */
// "noUncheckedIndexedAccess": false, /* Include 'undefined' in index signature results */
// "noImplicitOverride": false, /* Ensure overriding members in derived classes are marked with an 'override' modifier. */
// "noPropertyAccessFromIndexSignature": false, /* Require undeclared properties from index signatures to use element accesses. */
/* Module Resolution Options */
// "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
// "baseUrl": "", /* Specify the base directory to resolve non-relative module names. */
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
// "typeRoots": [], /* List of folders to include type definitions from. */
// "types": [], /* Specify type package names to be included without being referenced in a source file. */
"esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
"allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
// "preserveSymlinks": false, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
// "allowUmdGlobalAccess": false, /* Allow accessing UMD globals from modules. */
// "resolveJsonModule": false, /* Enable importing .json files */
/* Source Map Options */
// "sourceMap": false, /* Create source map files for emitted JavaScript files. */
// "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
// "inlineSourceMap": false, /* Include sourcemap files inside the emitted JavaScript. */
// "inlineSources": false, /* Include source code in the sourcemaps inside the emitted JavaScript. */
/* Experimental Options */
// "experimentalDecorators": false, /* Enables experimental support for ES7 decorators. */
// "emitDecoratorMetadata": false, /* Emit design-type metadata for decorated declarations in source files. */
/* Advanced Options */
"skipLibCheck": true, /* Skip type checking all .d.ts files. */
"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
},
}

15
font-size/tsconfig.json Normal file
View File

@@ -0,0 +1,15 @@
{
"extends": "./tsconfig.base.json",
"compilerOptions": {
/* Basic Options */
"outDir": ".",
"rootDir": ".",
"declaration": true,
/* Module Resolution Options */
"resolveJsonModule": true, /* Enable importing .json files */
},
"files": [
"package.json",
],
}

View File

@@ -62,7 +62,7 @@ build_darwin_main() { # {{{
convert "code_1024.png" -resize 256x256 code_256.png
convert "code_1024.png" -resize 128x128 code_128.png
png2icns "${SRC_PREFIX}src/${QUALITY}/resources/darwin/code.icns" code_512.png code_256.png code_128.png
png2icns "${SRC_PREFIX}src/${QUALITY}/resources/darwin/code.icns" code_1024.png code_512.png code_256.png code_128.png
rm -f code_1024.png code_512.png code_256.png code_128.png code_logo.png
fi

View File

@@ -1,18 +1,18 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index c1d64c0..3e60e80 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -321,3 +321,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts
index b935764..68067db 100644
--- a/build/gulpfile.reh.ts
+++ b/build/gulpfile.reh.ts
@@ -323,3 +323,3 @@ function packageTask(type: string, platform: string, arch: string, sourceFolderN
const productJsonStream = gulp.src(['product.json'], { base: '.' })
- .pipe(json({ commit, date: readISODate('out-build'), version }))
+ .pipe(json({ commit, date: readISODate('out-build'), version, serverDownloadUrlTemplate: 'https://github.com/!!ASSETS_REPOSITORY!!/releases/download/!!RELEASE_VERSION!!/!!APP_NAME_LC!!-reh-${os}-${arch}-!!RELEASE_VERSION!!.tar.gz' }))
- .pipe(jsonEditor({ commit, date: readISODate(sourceFolderName), version }))
+ .pipe(jsonEditor({ commit, date: readISODate(sourceFolderName), version, serverDownloadUrlTemplate: 'https://github.com/!!ASSETS_REPOSITORY!!/releases/download/!!RELEASE_VERSION!!/!!APP_NAME_LC!!-reh-${os}-${arch}-!!RELEASE_VERSION!!.tar.gz' }))
.pipe(es.through(function (file) {
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 7046ee0..9aa7bb0 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -288,3 +288,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts
index a103f11..82142a1 100644
--- a/build/gulpfile.vscode.ts
+++ b/build/gulpfile.vscode.ts
@@ -374,3 +374,3 @@ function packageTask(platform: string, arch: string, sourceFolderName: string, d
const productJsonStream = gulp.src(['product.json'], { base: '.' })
- .pipe(json({ commit, date: readISODate('out-build'), checksums, version }))
+ .pipe(json({ commit, date: readISODate('out-build'), checksums, version, serverDownloadUrlTemplate: 'https://github.com/!!ASSETS_REPOSITORY!!/releases/download/!!RELEASE_VERSION!!/!!APP_NAME_LC!!-reh-${os}-${arch}-!!RELEASE_VERSION!!.tar.gz' }))
- .pipe(jsonEditor({ commit, date: readISODate(out), checksums, version }))
+ .pipe(jsonEditor({ commit, date: readISODate(out), checksums, version, serverDownloadUrlTemplate: 'https://github.com/!!ASSETS_REPOSITORY!!/releases/download/!!RELEASE_VERSION!!/!!APP_NAME_LC!!-reh-${os}-${arch}-!!RELEASE_VERSION!!.tar.gz' }))
.pipe(es.through(function (file) {

View File

@@ -1,9 +1,9 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index e12a33e..9300d62 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -188,5 +188,16 @@ function getNodeChecksum(expectedName) {
function extractAlpinefromDocker(nodeVersion, platform, arch) {
diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts
index cb1a0a5..375851e 100644
--- a/build/gulpfile.reh.ts
+++ b/build/gulpfile.reh.ts
@@ -159,5 +159,16 @@ function getNodeChecksum(expectedName: string): string | undefined {
function extractAlpinefromDocker(nodeVersion: string, platform: string, arch: string) {
- const imageName = arch === 'arm64' ? 'arm64v8/node' : 'node';
+ let imageName = 'node';
+ let dockerPlatform = '';
@@ -20,4 +20,4 @@ index e12a33e..9300d62 100644
log(`Downloading node.js ${nodeVersion} ${platform} ${arch} from docker image ${imageName}`);
- const contents = cp.execSync(`docker run --rm ${imageName}:${nodeVersion}-alpine /bin/sh -c 'cat \`which node\`'`, { maxBuffer: 100 * 1024 * 1024, encoding: 'buffer' });
+ const contents = cp.execSync(`docker run --rm ${dockerPlatform} ${imageName}:${nodeVersion}-alpine /bin/sh -c 'cat \`which node\`'`, { maxBuffer: 200 * 1024 * 1024, encoding: 'buffer' });
return es.readArray([new File({ path: 'node', contents, stat: { mode: parseInt('755', 8) } })]);
// eslint-disable-next-line local/code-no-dangerous-type-assertions

View File

@@ -1,22 +1,22 @@
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 7046ee0..faca888 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -376,3 +376,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
.pipe(replace('@@APPNAME@@', product.applicationName))
diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts
index a103f11..cc95785 100644
--- a/build/gulpfile.vscode.ts
+++ b/build/gulpfile.vscode.ts
@@ -466,3 +466,3 @@ function packageTask(platform: string, arch: string, sourceFolderName: string, d
.pipe(replace('@@NAME@@', product.nameShort))
- .pipe(rename('bin/code'));
+ .pipe(rename('bin/' + product.applicationName));
const policyDest = gulp.src('.build/policies/darwin/**', { base: '.build/policies/darwin' })
diff --git a/src/vs/platform/native/electron-main/nativeHostMainService.ts b/src/vs/platform/native/electron-main/nativeHostMainService.ts
index 6324e98..3d2fba3 100644
index 93d0008..a04d296 100644
--- a/src/vs/platform/native/electron-main/nativeHostMainService.ts
+++ b/src/vs/platform/native/electron-main/nativeHostMainService.ts
@@ -445,3 +445,3 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
@@ -539,3 +539,3 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
private async getShellCommandLink(): Promise<{ readonly source: string; readonly target: string }> {
- const target = resolve(this.environmentMainService.appRoot, 'bin', 'code');
+ const target = resolve(this.environmentMainService.appRoot, 'bin', this.productService.applicationName);
const source = `/usr/local/bin/${this.productService.applicationName}`;
@@ -680,3 +680,3 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
@@ -808,3 +808,3 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
if (this.environmentMainService.isBuilt) {
- return join(this.environmentMainService.appRoot, 'bin', 'code');
+ return join(this.environmentMainService.appRoot, 'bin', `${this.productService.applicationName}`);

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +0,0 @@
diff --git a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
index 549cfc6..9632509 100644
--- a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
+++ b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
@@ -171,3 +171,3 @@ configurationRegistry.registerConfiguration({
markdownDescription: nls.localize('chat.commandCenter.enabled', "Controls whether the command center shows a menu for actions to control chat (requires {0}).", '`#window.commandCenter#`'),
- default: true
+ default: false
},

View File

@@ -58,10 +58,10 @@ index 7d152c0..c0f2fb2 100644
+ Ok(server_name)
}
diff --git a/cli/src/tunnels/code_server.rs b/cli/src/tunnels/code_server.rs
index cf00bc4..b564330 100644
index bbabadc..b454d0e 100644
--- a/cli/src/tunnels/code_server.rs
+++ b/cli/src/tunnels/code_server.rs
@@ -457,3 +457,3 @@ impl<'a> ServerBuilder<'a> {
@@ -462,3 +462,3 @@ impl<'a> ServerBuilder<'a> {
.join("bin")
- .join(self.server_params.release.quality.server_entrypoint()),
+ .join(self.server_params.release.quality.server_entrypoint().unwrap()),
@@ -76,7 +76,7 @@ index 3d7d718..98529bc 100644
+ .join(self.quality.server_entrypoint().unwrap())
},
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index 9033914..a39bbf7 100644
index 55f1dad..3b7ef5c 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -10,3 +10,3 @@ use serde::{Deserialize, Serialize};
@@ -89,7 +89,7 @@ index 9033914..a39bbf7 100644
- },
+ }
};
@@ -58,4 +58,12 @@ fn quality_download_segment(quality: options::Quality) -> &'static str {
@@ -58,2 +58,10 @@ fn quality_download_segment(quality: options::Quality) -> &'static str {
+fn get_app_name() -> Result<&'static str, CodeError> {
+ VSCODE_CLI_APP_NAME.ok_or_else(|| CodeError::UpdatesNotConfigured("no app name"))
@@ -99,17 +99,19 @@ index 9033914..a39bbf7 100644
+ VSCODE_CLI_DOWNLOAD_ENDPOINT.ok_or_else(|| CodeError::UpdatesNotConfigured("no download url"))
+}
+
fn get_update_endpoint() -> Result<&'static str, CodeError> {
- VSCODE_CLI_UPDATE_ENDPOINT.ok_or_else(|| CodeError::UpdatesNotConfigured("no service url"))
+ VSCODE_CLI_UPDATE_ENDPOINT.ok_or_else(|| CodeError::UpdatesNotConfigured("no update url"))
fn get_update_endpoint() -> Result<String, CodeError> {
@@ -66,3 +74,3 @@ fn get_update_endpoint() -> Result<String, CodeError> {
.map(|s| s.to_string())
- .ok_or_else(|| CodeError::UpdatesNotConfigured("no service url"))
+ .ok_or_else(|| CodeError::UpdatesNotConfigured("no update url"))
}
@@ -67,3 +75,4 @@ impl UpdateService {
@@ -74,3 +82,4 @@ impl UpdateService {
- pub async fn get_release_by_semver_version(
+ /// Gets the latest commit for the target of the given quality.
+ pub async fn get_latest_commit(
&self,
@@ -72,14 +81,10 @@ impl UpdateService {
@@ -79,14 +88,10 @@ impl UpdateService {
quality: options::Quality,
- version: &str,
) -> Result<Release, AnyError> {
@@ -120,19 +122,19 @@ index 9033914..a39bbf7 100644
let download_url = format!(
- "{}/api/versions/{}/{}/{}",
+ "{}/{}/{}/{}/latest.json",
update_endpoint,
&update_endpoint,
- version,
- download_segment,
quality_download_segment(quality),
+ platform.os(),
+ platform.arch(),
);
@@ -97,3 +102,3 @@ impl UpdateService {
@@ -104,3 +109,3 @@ impl UpdateService {
let res = response.json::<UpdateServerVersion>().await?;
- debug!(self.log, "Resolved version {} to {}", version, res.version);
+ debug!(self.log, "Resolved quality {} to {}", quality, res.version);
@@ -108,40 +113,17 @@ impl UpdateService {
@@ -115,40 +120,17 @@ impl UpdateService {
- /// Gets the latest commit for the target of the given quality.
- pub async fn get_latest_commit(
@@ -151,7 +153,7 @@ index 9033914..a39bbf7 100644
+
let download_url = format!(
- "{}/api/latest/{}/{}",
- update_endpoint,
- &update_endpoint,
- download_segment,
- quality_download_segment(quality),
+ "{}/download/{}/{}-reh-web-{}-{}-{}.tar.gz",
@@ -185,7 +187,7 @@ index 9033914..a39bbf7 100644
- })
+ Ok(download_url)
}
@@ -150,15 +132,3 @@ impl UpdateService {
@@ -157,15 +139,3 @@ impl UpdateService {
pub async fn get_download_stream(&self, release: &Release) -> Result<SimpleResponse, AnyError> {
- let update_endpoint = get_update_endpoint()?;
- let download_segment = release
@@ -195,14 +197,14 @@ index 9033914..a39bbf7 100644
-
- let download_url = format!(
- "{}/commit:{}/{}/{}",
- update_endpoint,
- &update_endpoint,
- release.commit,
- download_segment,
- quality_download_segment(release.quality),
- );
+ let download_url = self.get_download_url(release)?;
@@ -196,13 +166,2 @@ pub enum TargetKind {
@@ -203,13 +173,2 @@ pub enum TargetKind {
-impl TargetKind {
- fn download_segment(&self, platform: Platform) -> Option<String> {
@@ -216,7 +218,7 @@ index 9033914..a39bbf7 100644
-}
-
#[derive(Debug, Copy, Clone, Eq, PartialEq, Serialize, Deserialize)]
@@ -225,30 +184,17 @@ pub enum Platform {
@@ -232,30 +191,17 @@ pub enum Platform {
impl Platform {
- pub fn archive(&self) -> Option<String> {
- match self {
@@ -261,7 +263,7 @@ index 9033914..a39bbf7 100644
+ Platform::WindowsX86 => "ia42",
+ Platform::WindowsARM64 => "arm64",
}
@@ -257,17 +203,17 @@ impl Platform {
@@ -264,17 +210,17 @@ impl Platform {
- pub fn cli(&self) -> String {
+ pub fn os(&self) -> String {
@@ -293,7 +295,7 @@ index 9033914..a39bbf7 100644
+ Platform::WindowsX86 => "win32",
+ Platform::WindowsARM64 => "win32",
}
@@ -276,6 +222,2 @@ impl Platform {
@@ -283,6 +229,2 @@ impl Platform {
- pub fn web(&self) -> String {
- format!("{}-web", self.headless())
@@ -301,11 +303,11 @@ index 9033914..a39bbf7 100644
-
pub fn env_default() -> Option<Platform> {
diff --git a/extensions/tunnel-forwarding/src/extension.ts b/extensions/tunnel-forwarding/src/extension.ts
index 299c728..9fb635d 100644
index 2f71999..e689f62 100644
--- a/extensions/tunnel-forwarding/src/extension.ts
+++ b/extensions/tunnel-forwarding/src/extension.ts
@@ -28,3 +28,3 @@ const cliPath = process.env.VSCODE_FORWARDING_IS_DEV
process.platform === 'darwin' ? 'bin' : '../../bin',
- vscode.env.appQuality === 'stable' ? 'code-tunnel' : 'code-tunnel-insiders',
+ '!!TUNNEL_APP_NAME!!'
) + (process.platform === 'win32' ? '.exe' : '');
@@ -37,3 +37,3 @@ if (process.env.VSCODE_FORWARDING_IS_DEV) {
- const cliName = vscode.env.appQuality === 'stable' ? 'code-tunnel' : 'code-tunnel-insiders';
+ const cliName = '!!TUNNEL_APP_NAME!!';
const extension = process.platform === 'win32' ? '.exe' : '';

View File

@@ -1,49 +1,133 @@
diff --git a/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts b/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts
index d5aa998..dab534b 100644
index 1998414..cdc533b 100644
--- a/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts
+++ b/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts
@@ -1876,3 +1876,3 @@ MenuRegistry.appendMenuItem(MenuId.EditorContext, {
ChatContextKeys.Setup.disabled.negate(),
- ChatContextKeys.Setup.installed.negate(),
+ ChatContextKeys.Setup.installed,
);
@@ -206,3 +206,4 @@ abstract class OpenChatGlobalAction extends Action2 {
ChatContextKeys.Setup.hidden.negate(),
- ChatContextKeys.Setup.disabled.negate()
+ ChatContextKeys.Setup.disabled.negate(),
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate()
)
@@ -1142,3 +1143,3 @@ export function registerChatActions() {
precondition: ContextKeyExpr.and(
- ChatContextKeys.Setup.installed,
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
ChatContextKeys.Setup.disabled.negate(),
@@ -1715,3 +1716,4 @@ MenuRegistry.appendMenuItem(MenuId.EditorContext, {
ChatContextKeys.Setup.hidden.negate(),
- ChatContextKeys.Setup.disabled.negate()
+ ChatContextKeys.Setup.disabled.negate(),
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate()
)
diff --git a/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.ts b/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.ts
index b8c8e03..512e40f 100644
--- a/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.ts
+++ b/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.ts
@@ -314,3 +314,4 @@ class AttachSelectionToChatAction extends Action2 {
ResourceContextKey.Scheme.isEqualTo(Schemas.vscodeUserData)
- )
+ ),
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
)
diff --git a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
index dbd2125..bceed38 100644
index be62dda..7b5f1ed 100644
--- a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
+++ b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
@@ -696,3 +696,3 @@ configurationRegistry.registerConfiguration({
description: nls.localize('chat.disableAIFeatures', "Disable and hide built-in AI features provided by GitHub Copilot, including chat, code completions and next edit suggestions."),
@@ -1237,3 +1237,3 @@ configurationRegistry.registerConfiguration({
description: nls.localize('chat.disableAIFeatures', "Disable and hide built-in AI features provided by GitHub Copilot, including chat and inline suggestions."),
- default: false,
+ default: true,
scope: ConfigurationScope.WINDOW
diff --git a/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts b/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts
index 391a4de..a1489b2 100644
index ddb5df4..7831288 100644
--- a/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts
+++ b/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts
@@ -67,9 +67,8 @@ const chatViewDescriptor: IViewDescriptor[] = [{
ctorDescriptor: new SyncDescriptor(ChatViewPane, [{ location: ChatAgentLocation.Chat }]),
@@ -70,10 +70,9 @@ const chatViewDescriptor: IViewDescriptor = {
ctorDescriptor: new SyncDescriptor(ChatViewPane),
- when: ContextKeyExpr.or(
- ContextKeyExpr.or(
- ChatContextKeys.Setup.hidden,
- ChatContextKeys.Setup.disabled
- )?.negate(),
- ChatContextKeys.panelParticipantRegistered,
- ChatContextKeys.extensionInvalid
- )
+ when: ContextKeyExpr.and(
+ ChatContextKeys.Setup.installed,
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
+ ChatContextKeys.Setup.disabled.negate(),
+ ChatContextKeys.Setup.hidden.negate(),
ChatContextKeys.panelParticipantRegistered,
- ChatContextKeys.extensionInvalid
+ ChatContextKeys.panelParticipantRegistered,
+ ChatContextKeys.extensionInvalid.negate()
)
diff --git a/src/vs/workbench/contrib/chat/browser/chatStatus.ts b/src/vs/workbench/contrib/chat/browser/chatStatus.ts
index 05f6f0e..7fe62fd 100644
--- a/src/vs/workbench/contrib/chat/browser/chatStatus.ts
+++ b/src/vs/workbench/contrib/chat/browser/chatStatus.ts
@@ -132,2 +132,7 @@ export class ChatStatusBarEntry extends Disposable implements IWorkbenchContribu
+ const context = chatEntitlementService.context?.value;
+ if (!context) {
+ return; // disabled
+ }
+
this.update();
+ )
};
diff --git a/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.ts b/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.ts
index 4a71579..f8b3e83 100644
--- a/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.ts
+++ b/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.ts
@@ -228,2 +228,3 @@ export class ChatSetupContribution extends Disposable implements IWorkbenchContr
ChatContextKeys.Setup.untrusted,
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
ChatContextKeys.Setup.installed.negate(),
@@ -346,2 +347,3 @@ export class ChatSetupContribution extends Disposable implements IWorkbenchContr
ChatContextKeys.Setup.hidden.negate(),
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
ChatContextKeys.Setup.installed.negate(),
@@ -518,2 +520,3 @@ export class ChatSetupContribution extends Disposable implements IWorkbenchContr
ChatContextKeys.Setup.disabled.negate(),
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
ChatContextKeys.Setup.installed.negate(),
diff --git a/src/vs/workbench/contrib/chat/common/actions/chatContextKeys.ts b/src/vs/workbench/contrib/chat/common/actions/chatContextKeys.ts
index c8fc17b..fbd2afd 100644
--- a/src/vs/workbench/contrib/chat/common/actions/chatContextKeys.ts
+++ b/src/vs/workbench/contrib/chat/common/actions/chatContextKeys.ts
@@ -163,3 +163,3 @@ export namespace ChatContextKeyExprs {
export const chatSetupTriggerContext = ContextKeyExpr.or(
- ChatContextKeys.Setup.installed.negate(),
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
ChatContextKeys.Entitlement.canSignUp
diff --git a/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.ts b/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.ts
index e9b4077..b33d6f2 100644
--- a/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.ts
+++ b/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.ts
@@ -133,3 +133,9 @@ MenuRegistry.appendMenuItem(MenuId.InlineChatEditorAffordance, {
order: 1,
- when: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasNonEmptySelection, CTX_INLINE_CHAT_FILE_BELONGS_TO_CHAT.negate(), ChatEntitlementContextKeys.Setup.hidden.negate()),
+ when: ContextKeyExpr.and(
+ EditorContextKeys.writable,
+ EditorContextKeys.hasNonEmptySelection,
+ CTX_INLINE_CHAT_FILE_BELONGS_TO_CHAT.negate(),
+ ChatEntitlementContextKeys.Setup.hidden.negate(),
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
+ ),
command: {
diff --git a/src/vs/workbench/contrib/mcp/browser/mcpServersView.ts b/src/vs/workbench/contrib/mcp/browser/mcpServersView.ts
index 864cc4f..b877a8e 100644
--- a/src/vs/workbench/contrib/mcp/browser/mcpServersView.ts
+++ b/src/vs/workbench/contrib/mcp/browser/mcpServersView.ts
@@ -554,3 +554,3 @@ export class McpServersViewsContribution extends Disposable implements IWorkbenc
ctorDescriptor: new SyncDescriptor(DefaultBrowseMcpServersView, [{}]),
- when: ContextKeyExpr.and(DefaultViewsContext, HasInstalledMcpServersContext.toNegated(), ChatContextKeys.Setup.hidden.negate(), McpServersGalleryStatusContext.isEqualTo(McpGalleryManifestStatus.Available), ContextKeyExpr.or(ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceUrlConfig}`), ProductQualityContext.notEqualsTo('stable'), ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceEnablementConfig}`))),
+ when: ContextKeyExpr.and(DefaultViewsContext, HasInstalledMcpServersContext.toNegated(), ContextKeyExpr.has('config.chat.disableAIFeatures').negate(), ChatContextKeys.Setup.hidden.negate(), McpServersGalleryStatusContext.isEqualTo(McpGalleryManifestStatus.Available), ContextKeyExpr.or(ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceUrlConfig}`), ProductQualityContext.notEqualsTo('stable'), ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceEnablementConfig}`))),
weight: 40,
@@ -569,3 +569,3 @@ export class McpServersViewsContribution extends Disposable implements IWorkbenc
ctorDescriptor: new SyncDescriptor(DefaultBrowseMcpServersView, [{ showWelcome: true }]),
- when: ContextKeyExpr.and(DefaultViewsContext, HasInstalledMcpServersContext.toNegated(), ChatContextKeys.Setup.hidden.negate(), McpServersGalleryStatusContext.isEqualTo(McpGalleryManifestStatus.Available), ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceUrlConfig}`).negate(), ProductQualityContext.isEqualTo('stable'), ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceEnablementConfig}`).negate()),
+ when: ContextKeyExpr.and(DefaultViewsContext, HasInstalledMcpServersContext.toNegated(), ContextKeyExpr.has('config.chat.disableAIFeatures').negate(), ChatContextKeys.Setup.hidden.negate(), McpServersGalleryStatusContext.isEqualTo(McpGalleryManifestStatus.Available), ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceUrlConfig}`).negate(), ProductQualityContext.isEqualTo('stable'), ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceEnablementConfig}`).negate()),
weight: 40,
diff --git a/src/vs/workbench/contrib/scm/browser/scm.contribution.ts b/src/vs/workbench/contrib/scm/browser/scm.contribution.ts
index 8f2ea73..429e28f 100644
--- a/src/vs/workbench/contrib/scm/browser/scm.contribution.ts
+++ b/src/vs/workbench/contrib/scm/browser/scm.contribution.ts
@@ -705,3 +705,3 @@ registerAction2(class extends Action2 {
ChatContextKeys.Setup.disabled.negate(),
- ChatContextKeys.Setup.installed.negate(),
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
ContextKeyExpr.in(ResourceContextKey.Resource.key, 'git.mergeChanges'),
diff --git a/src/vs/workbench/contrib/scm/browser/scmInput.ts b/src/vs/workbench/contrib/scm/browser/scmInput.ts
index a35d479..da5a449 100644
--- a/src/vs/workbench/contrib/scm/browser/scmInput.ts
+++ b/src/vs/workbench/contrib/scm/browser/scmInput.ts
@@ -850,2 +850,3 @@ registerAction2(class extends Action2 {
ChatContextKeys.Setup.disabled.negate(),
+ ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
ChatContextKeys.Setup.installed.negate(),

View File

@@ -0,0 +1,128 @@
diff --git a/src/vs/platform/sign/browser/signService.ts b/src/vs/platform/sign/browser/signService.ts
index c288b2e..8303040 100644
--- a/src/vs/platform/sign/browser/signService.ts
+++ b/src/vs/platform/sign/browser/signService.ts
@@ -5,6 +5,2 @@
-import { importAMDNodeModule, resolveAmdNodeModulePath } from '../../../amdX.js';
-import { WindowIntervalTimer } from '../../../base/browser/dom.js';
-import { mainWindow } from '../../../base/browser/window.js';
-import { memoize } from '../../../base/common/decorators.js';
import { IProductService } from '../../product/common/productService.js';
@@ -13,30 +9,4 @@ import { ISignService } from '../common/sign.js';
-declare namespace vsdaWeb {
- export function sign(salted_message: string): string;
-
- // eslint-disable-next-line @typescript-eslint/naming-convention
- export class validator {
- free(): void;
- constructor();
- createNewMessage(original: string): string;
- validate(signed_message: string): 'ok' | 'error';
- }
-
- export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
- export function init(module_or_path?: InitInput | Promise<InitInput>): Promise<unknown>;
-}
-
-// Initialized if/when vsda is loaded
-declare const vsda_web: {
- default: typeof vsdaWeb.init;
- sign: typeof vsdaWeb.sign;
- validator: typeof vsdaWeb.validator;
-};
-
-const KEY_SIZE = 32;
-const IV_SIZE = 16;
-const STEP_SIZE = KEY_SIZE + IV_SIZE;
-
export class SignService extends AbstractSignService implements ISignService {
- constructor(@IProductService private readonly productService: IProductService) {
+ constructor(@IProductService _productService: IProductService) {
super();
@@ -44,53 +14,7 @@ export class SignService extends AbstractSignService implements ISignService {
protected override getValidator(): Promise<IVsdaValidator> {
- return this.vsda().then(vsda => {
- const v = new vsda.validator();
- return {
- createNewMessage: arg => v.createNewMessage(arg),
- validate: arg => v.validate(arg),
- dispose: () => v.free(),
- };
- });
- }
-
- protected override signValue(arg: string): Promise<string> {
- return this.vsda().then(vsda => vsda.sign(arg));
- }
-
- @memoize
- private async vsda(): Promise<typeof vsda_web> {
- const checkInterval = new WindowIntervalTimer();
- let [wasm] = await Promise.all([
- this.getWasmBytes(),
- new Promise<void>((resolve, reject) => {
- importAMDNodeModule('vsda', 'rust/web/vsda.js').then(() => resolve(), reject);
-
- // todo@connor4312: there seems to be a bug(?) in vscode-loader with
- // require() not resolving in web once the script loads, so check manually
- checkInterval.cancelAndSet(() => {
- if (typeof vsda_web !== 'undefined') {
- resolve();
- }
- }, 50, mainWindow);
- }).finally(() => checkInterval.dispose()),
- ]);
-
- const keyBytes = new TextEncoder().encode(this.productService.serverLicense?.join('\n') || '');
- for (let i = 0; i + STEP_SIZE < keyBytes.length; i += STEP_SIZE) {
- const key = await crypto.subtle.importKey('raw', keyBytes.slice(i + IV_SIZE, i + IV_SIZE + KEY_SIZE), { name: 'AES-CBC' }, false, ['decrypt']);
- wasm = await crypto.subtle.decrypt({ name: 'AES-CBC', iv: keyBytes.slice(i, i + IV_SIZE) }, key, wasm);
- }
-
- await vsda_web.default(wasm);
-
- return vsda_web;
+ throw new Error('error loading vsda');
}
- private async getWasmBytes(): Promise<ArrayBuffer> {
- const url = resolveAmdNodeModulePath('vsda', 'rust/web/vsda_bg.wasm');
- const response = await fetch(url);
- if (!response.ok) {
- throw new Error('error loading vsda');
- }
-
- return response.arrayBuffer();
+ protected override signValue(_arg: string): Promise<string> {
+ throw new Error('error loading vsda');
}
diff --git a/src/vs/server/node/remoteExtensionHostAgentServer.ts b/src/vs/server/node/remoteExtensionHostAgentServer.ts
index 269cc38..a53fca9 100644
--- a/src/vs/server/node/remoteExtensionHostAgentServer.ts
+++ b/src/vs/server/node/remoteExtensionHostAgentServer.ts
@@ -8,3 +8,2 @@ import type * as http from 'http';
import * as net from 'net';
-import { createRequire } from 'node:module';
import { performance } from 'perf_hooks';
@@ -41,3 +40,2 @@ import { setupServerServices, SocketServer } from './serverServices.js';
import { CacheControl, serveError, serveFile, WebClientServer } from './webClientServer.js';
-const require = createRequire(import.meta.url);
@@ -736,14 +734,3 @@ export async function createServer(address: string | net.AddressInfo | null, arg
- const vsdaMod = instantiationService.invokeFunction((accessor) => {
- const logService = accessor.get(ILogService);
- const hasVSDA = fs.existsSync(join(FileAccess.asFileUri('').fsPath, '../node_modules/vsda'));
- if (hasVSDA) {
- try {
- return require('vsda');
- } catch (err) {
- logService.error(err);
- }
- }
- return null;
- });
+ const vsdaMod = instantiationService.invokeFunction(() => null);

View File

@@ -1,30 +0,0 @@
diff --git a/src/vs/code/electron-utility/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-utility/sharedProcess/sharedProcessMain.ts
index 89d9736..b2a1623 100644
--- a/src/vs/code/electron-utility/sharedProcess/sharedProcessMain.ts
+++ b/src/vs/code/electron-utility/sharedProcess/sharedProcessMain.ts
@@ -61,3 +61,3 @@ import { ExtensionStorageService, IExtensionStorageService } from '../../../plat
import { IgnoredExtensionsManagementService, IIgnoredExtensionsManagementService } from '../../../platform/userDataSync/common/ignoredExtensions.js';
-import { IUserDataSyncLocalStoreService, IUserDataSyncLogService, IUserDataSyncEnablementService, IUserDataSyncService, IUserDataSyncStoreManagementService, IUserDataSyncStoreService, IUserDataSyncUtilService, registerConfiguration as registerUserDataSyncConfiguration, IUserDataSyncResourceProviderService } from '../../../platform/userDataSync/common/userDataSync.js';
+import { IUserDataSyncLocalStoreService, IUserDataSyncEnablementService, IUserDataSyncService, IUserDataSyncStoreManagementService, IUserDataSyncStoreService, IUserDataSyncUtilService, registerConfiguration as registerUserDataSyncConfiguration, IUserDataSyncResourceProviderService } from '../../../platform/userDataSync/common/userDataSync.js';
import { IUserDataSyncAccountService, UserDataSyncAccountService } from '../../../platform/userDataSync/common/userDataSyncAccount.js';
@@ -65,3 +65,2 @@ import { UserDataSyncLocalStoreService } from '../../../platform/userDataSync/co
import { UserDataSyncAccountServiceChannel, UserDataSyncStoreManagementServiceChannel } from '../../../platform/userDataSync/common/userDataSyncIpc.js';
-import { UserDataSyncLogService } from '../../../platform/userDataSync/common/userDataSyncLog.js';
import { IUserDataSyncMachinesService, UserDataSyncMachinesService } from '../../../platform/userDataSync/common/userDataSyncMachines.js';
@@ -366,3 +365,2 @@ class SharedProcessMain extends Disposable implements IClientConnectionFilter {
services.set(IUserDataSyncAccountService, new SyncDescriptor(UserDataSyncAccountService, undefined, true));
- services.set(IUserDataSyncLogService, new SyncDescriptor(UserDataSyncLogService, undefined, true));
services.set(IUserDataSyncUtilService, ProxyChannel.toService(this.server.getChannel('userDataSyncUtil', client => client.ctx !== 'main')));
diff --git a/src/vs/workbench/workbench.common.main.ts b/src/vs/workbench/workbench.common.main.ts
index 61d63db..ccd7ff7 100644
--- a/src/vs/workbench/workbench.common.main.ts
+++ b/src/vs/workbench/workbench.common.main.ts
@@ -157,4 +157,2 @@ import { IgnoredExtensionsManagementService, IIgnoredExtensionsManagementService
import { ExtensionStorageService, IExtensionStorageService } from '../platform/extensionManagement/common/extensionStorage.js';
-import { IUserDataSyncLogService } from '../platform/userDataSync/common/userDataSync.js';
-import { UserDataSyncLogService } from '../platform/userDataSync/common/userDataSyncLog.js';
import { AllowedExtensionsService } from '../platform/extensionManagement/common/allowedExtensionsService.js';
@@ -164,3 +162,2 @@ import { AllowedMcpServersService } from '../platform/mcp/common/allowedMcpServe
-registerSingleton(IUserDataSyncLogService, UserDataSyncLogService, InstantiationType.Delayed);
registerSingleton(IAllowedExtensionsService, AllowedExtensionsService, InstantiationType.Delayed);

View File

@@ -1,8 +1,8 @@
diff --git a/extensions/github/package.json b/extensions/github/package.json
index 726a882..b9a4969 100644
index bce90fe..73debf7 100644
--- a/extensions/github/package.json
+++ b/extensions/github/package.json
@@ -44,19 +44,2 @@
@@ -45,19 +45,2 @@
},
- {
- "command": "github.copyVscodeDevLink",
@@ -22,7 +22,7 @@ index 726a882..b9a4969 100644
- "icon": "$(globe)"
- },
{
@@ -72,11 +55,2 @@
@@ -83,11 +66,2 @@
],
- "continueEditSession": [
- {
@@ -34,7 +34,7 @@ index 726a882..b9a4969 100644
- }
- ],
"menus": {
@@ -91,18 +65,2 @@
@@ -110,18 +84,2 @@
},
- {
- "command": "github.copyVscodeDevLink",
@@ -53,7 +53,7 @@ index 726a882..b9a4969 100644
- "when": "false"
- },
{
@@ -112,42 +70,2 @@
@@ -131,42 +89,2 @@
],
- "file/share": [
- {
@@ -97,13 +97,15 @@ index 726a882..b9a4969 100644
- ],
"scm/historyItem/context": [
diff --git a/extensions/github/src/commands.ts b/extensions/github/src/commands.ts
index 48e9574..aa853a5 100644
index 33acf5a..107e94a 100644
--- a/extensions/github/src/commands.ts
+++ b/extensions/github/src/commands.ts
@@ -9,28 +9,3 @@ import { publishRepository } from './publish.js';
@@ -9,30 +9,5 @@ import { publishRepository } from './publish.js';
import { DisposableStore, getRepositoryFromUrl } from './util.js';
-import { LinkContext, getCommitLink, getLink, getVscodeDevHost } from './links.js';
-
+import { getCommitLink } from './links.js';
import { getOctokit } from './auth.js';
-async function copyVscodeDevLink(gitAPI: GitAPI, useSelection: boolean, context: LinkContext, includeRange = true) {
- try {
- const permalink = await getLink(gitAPI, useSelection, true, getVscodeDevHost(), 'headlink', context, includeRange);
@@ -128,9 +130,9 @@ index 48e9574..aa853a5 100644
- return undefined;
- }
-}
+import { getCommitLink } from './links.js';
@@ -70,14 +45,2 @@ export function registerCommands(gitAPI: GitAPI): vscode.Disposable {
-
interface ResolvedSessionRepo {
@@ -210,14 +185,2 @@ export function registerCommands(gitAPI: GitAPI): vscode.Disposable {
- disposables.add(vscode.commands.registerCommand('github.copyVscodeDevLink', async (context: LinkContext) => {
- return copyVscodeDevLink(gitAPI, true, context);
@@ -145,13 +147,13 @@ index 48e9574..aa853a5 100644
- }));
-
disposables.add(vscode.commands.registerCommand('github.openOnGitHub', async (url: string, historyItemId: string) => {
@@ -113,6 +76,2 @@ export function registerCommands(gitAPI: GitAPI): vscode.Disposable {
@@ -253,6 +216,2 @@ export function registerCommands(gitAPI: GitAPI): vscode.Disposable {
- disposables.add(vscode.commands.registerCommand('github.openOnVscodeDev', async () => {
- return openVscodeDevLink(gitAPI);
- }));
-
return disposables;
disposables.add(vscode.commands.registerCommand('github.createPullRequest', async (sessionResource: vscode.Uri | undefined, sessionMetadata: { worktreePath?: string } | undefined) => {
diff --git a/extensions/github/src/extension.ts b/extensions/github/src/extension.ts
index 17906c5..86a0ca8 100644
--- a/extensions/github/src/extension.ts
@@ -165,7 +167,7 @@ index 17906c5..86a0ca8 100644
- disposables.add(new VscodeDevShareProvider(gitAPI));
setGitHubContext(gitAPI, disposables);
diff --git a/extensions/github/src/remoteSourceProvider.ts b/extensions/github/src/remoteSourceProvider.ts
index 291a3f1..6304ed8 100644
index bed2bb1..2880f97 100644
--- a/extensions/github/src/remoteSourceProvider.ts
+++ b/extensions/github/src/remoteSourceProvider.ts
@@ -10,3 +10,3 @@ import { Octokit } from '@octokit/rest';
@@ -173,7 +175,7 @@ index 291a3f1..6304ed8 100644
-import { getBranchLink, getVscodeDevHost } from './links.js';
+import { getBranchLink } from './links.js';
@@ -129,9 +129,2 @@ export class GithubRemoteSourceProvider implements RemoteSourceProvider {
@@ -137,9 +137,2 @@ export class GithubRemoteSourceProvider implements RemoteSourceProvider {
}
- }, {
- label: l10n.t('Checkout on vscode.dev'),

View File

@@ -1,15 +1,5 @@
diff --git a/build/lib/builtInExtensions.js b/build/lib/builtInExtensions.js
index 249777c..129af8a 100644
--- a/build/lib/builtInExtensions.js
+++ b/build/lib/builtInExtensions.js
@@ -87,5 +87,2 @@ function getExtensionDownloadStream(extension) {
}
- else if (productjson.extensionsGallery?.serviceUrl) {
- input = ext.fromMarketplace(productjson.extensionsGallery.serviceUrl, extension);
- }
else {
diff --git a/build/lib/builtInExtensions.ts b/build/lib/builtInExtensions.ts
index e9a1180..b8348e3 100644
index d52567b..fe5b988 100644
--- a/build/lib/builtInExtensions.ts
+++ b/build/lib/builtInExtensions.ts
@@ -75,4 +75,2 @@ function getExtensionDownloadStream(extension: IExtensionDefinition) {

View File

@@ -1,11 +0,0 @@
--- vscode-1.80.1/extensions/mangle-loader.js.old 2023-07-12 18:45:52.000000000 +0200
+++ vscode-1.80.1/extensions/mangle-loader.js 2023-07-28 11:55:01.177444702 +0200
@@ -37,7 +37,7 @@ function getMangledFileContents(projectP
* @type {webpack.LoaderDefinitionFunction}
*/
module.exports = async function (source, sourceMap, meta) {
- if (this.mode !== 'production') {
+ if (true) {
// Only enable mangling in production builds
return source;
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,41 @@
diff --git a/src/cli.ts b/src/cli.ts
index b643e34..2f228ef 100644
--- a/src/cli.ts
+++ b/src/cli.ts
@@ -5,2 +5,4 @@
+import * as path from 'node:path';
+import { createRequire } from 'node:module';
import './bootstrap-cli.js'; // this MUST come before other imports as it changes global state
@@ -10,3 +12,5 @@ import { resolveNLSConfiguration } from './vs/base/node/nls.js';
import { product } from './bootstrap-meta.js';
+import { getUserDataPath } from './vs/platform/environment/node/userDataPath.js';
+const require = createRequire(import.meta.url);
// NLS
@@ -21,2 +25,4 @@ process.env['VSCODE_CLI'] = '1';
+resolveUserProduct();
+
// Bootstrap ESM
@@ -26 +32,14 @@ await bootstrapESM();
await import('./vs/code/node/cli.js');
+
+function resolveUserProduct() {
+ const userDataPath = getUserDataPath({_:[]}, product.nameShort ?? 'code-oss-dev');
+ const userProductPath = path.join(userDataPath, 'product.json');
+
+ try {
+ // Assign the product configuration to the global scope
+ const productJson = require(userProductPath);
+
+ globalThis._VSCODE_USER_PRODUCT_JSON = productJson;
+ } catch (ex) {
+ }
+}
\ No newline at end of file
diff --git a/src/main.ts b/src/main.ts
index deba4c4..1b41bde 100644
index ec188d0..0160be6 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -8,2 +8,3 @@ import * as fs from 'original-fs';
@@ -19,7 +55,7 @@ index deba4c4..1b41bde 100644
+ try {
+ // Assign the product configuration to the global scope
+ const productJson = require(userProductPath);
+ // @ts-expect-error
+
+ globalThis._VSCODE_USER_PRODUCT_JSON = productJson;
+ } catch (ex) {
+ }
@@ -30,8 +66,17 @@ index deba4c4..1b41bde 100644
process.env['VSCODE_CODE_CACHE_PATH'] = codeCachePath || '';
+ resolveUserProduct();
diff --git a/src/typings/vscode-globals-product.d.ts b/src/typings/vscode-globals-product.d.ts
index ab169bd..2155f5c 100644
--- a/src/typings/vscode-globals-product.d.ts
+++ b/src/typings/vscode-globals-product.d.ts
@@ -43,2 +43,4 @@ declare global {
var _VSCODE_USE_RELATIVE_IMPORTS: boolean | undefined;
+
+ var _VSCODE_USER_PRODUCT_JSON: Record<string, any>;
}
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
index 5a6c171..275cbcf 100644
index 6f093e9..b63af55 100644
--- a/src/vs/platform/product/common/product.ts
+++ b/src/vs/platform/product/common/product.ts
@@ -31,2 +31,25 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
@@ -53,7 +98,7 @@ index 5a6c171..275cbcf 100644
+ return result;
+ }, {}) as any;
+
+ const userProduct = (globalThis as Record<string, any>)._VSCODE_USER_PRODUCT_JSON || {};
+ const userProduct = globalThis._VSCODE_USER_PRODUCT_JSON || {};
+
+ product = merge(product, userProduct);
+ } catch (ex) {

View File

@@ -0,0 +1,364 @@
diff --git a/build/.moduleignore b/build/.moduleignore
index ed36151..022d6ed 100644
--- a/build/.moduleignore
+++ b/build/.moduleignore
@@ -82,7 +82,7 @@ native-is-elevated/deps/**
-@vscode/vsce-sign/**
-!@vscode/vsce-sign/src/main.d.ts
-!@vscode/vsce-sign/src/main.js
-!@vscode/vsce-sign/package.json
-!@vscode/vsce-sign/bin/**
+@vscodium/vsce-sign/**
+!@vscodium/vsce-sign/src/main.d.ts
+!@vscodium/vsce-sign/src/main.js
+!@vscodium/vsce-sign/package.json
+!@vscodium/vsce-sign/bin/**
diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts
index 187726c..076f08b 100644
--- a/build/gulpfile.vscode.ts
+++ b/build/gulpfile.vscode.ts
@@ -449,3 +449,3 @@ function packageTask(platform: string, arch: string, sourceFolderName: string, d
'**/*.wasm',
- '**/@vscode/vsce-sign/bin/*',
+ '**/@vscodium/vsce-sign/bin/*',
], [
diff --git a/build/lib/extensions.ts b/build/lib/extensions.ts
index aacf25c..c4b0391 100644
--- a/build/lib/extensions.ts
+++ b/build/lib/extensions.ts
@@ -116,3 +116,3 @@ export function typeCheckExtensionStream(extensionPath: string, forWeb: boolean)
function fromLocalNormal(extensionPath: string): Stream {
- const vsce = require('@vscode/vsce') as typeof import('@vscode/vsce');
+ const vsce = require('@vscodium/vsce') as typeof import('@vscodium/vsce');
const result = es.through();
@@ -138,3 +138,3 @@ function fromLocalNormal(extensionPath: string): Stream {
function fromLocalEsbuild(extensionPath: string, esbuildConfigFileName: string): Stream {
- const vsce = require('@vscode/vsce') as typeof import('@vscode/vsce');
+ const vsce = require('@vscodium/vsce') as typeof import('@vscodium/vsce');
const result = es.through();
diff --git a/build/package-lock.json b/build/package-lock.json
index 644e16f..fac5de0 100644
--- a/build/package-lock.json
+++ b/build/package-lock.json
@@ -51,3 +51,3 @@
"@vscode/ripgrep": "^1.17.1",
- "@vscode/vsce": "3.6.1",
+ "@vscodium/vsce": "3.6.1-258428",
"ansi-colors": "^3.2.3",
@@ -1941,6 +1941,45 @@
},
- "node_modules/@vscode/vsce": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.6.1.tgz",
- "integrity": "sha512-UXtMgeCBl/t5zjn1TX1v1sl5L/oIv3Xc3pkKPGzaqeFCIkp5+wfFFDBXTWDt3d5uUulHnZKORHkMIsKNe9+k5A==",
+ "node_modules/@vscode/vsce/node_modules/balanced-match": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
+ "extraneous": true,
+ "license": "MIT",
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
+ "node_modules/@vscode/vsce/node_modules/brace-expansion": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
+ "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
+ "extraneous": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^4.0.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
+ "node_modules/@vscode/vsce/node_modules/glob/node_modules/minimatch": {
+ "version": "10.2.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz",
+ "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==",
+ "extraneous": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "brace-expansion": "^5.0.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@vscodium/vsce": {
+ "version": "3.6.1-258428",
+ "resolved": "https://registry.npmjs.org/@vscodium/vsce/-/vsce-3.6.1-258428.tgz",
+ "integrity": "sha512-B2uys5YU5MGNmzQPHsMsRXxzlQvZanhxE8Sfkd4Sr/LBN9BaV5yhMCppV7jyLUOQajj9K3YZThLqUYm4CCBy3A==",
"dev": true,
@@ -1953,3 +1992,2 @@
"@secretlint/secretlint-rule-preset-recommend": "^10.1.2",
- "@vscode/vsce-sign": "^2.0.0",
"azure-devops-node-api": "^12.5.0",
@@ -1988,148 +2026,3 @@
},
- "node_modules/@vscode/vsce-sign": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign/-/vsce-sign-2.0.7.tgz",
- "integrity": "sha512-cz0GFW8qCxpypOy3y509u26K1FIPMlDIHBwGmDyvEbgoma2v3y5YIHHuijr8zCYBp9kzCCOJd28s/0PG7cA7ew==",
- "dev": true,
- "hasInstallScript": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optionalDependencies": {
- "@vscode/vsce-sign-alpine-arm64": "2.0.6",
- "@vscode/vsce-sign-alpine-x64": "2.0.6",
- "@vscode/vsce-sign-darwin-arm64": "2.0.6",
- "@vscode/vsce-sign-darwin-x64": "2.0.6",
- "@vscode/vsce-sign-linux-arm": "2.0.6",
- "@vscode/vsce-sign-linux-arm64": "2.0.6",
- "@vscode/vsce-sign-linux-x64": "2.0.6",
- "@vscode/vsce-sign-win32-arm64": "2.0.6",
- "@vscode/vsce-sign-win32-x64": "2.0.6"
- }
- },
- "node_modules/@vscode/vsce-sign-alpine-arm64": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.6.tgz",
- "integrity": "sha512-wKkJBsvKF+f0GfsUuGT0tSW0kZL87QggEiqNqK6/8hvqsXvpx8OsTEc3mnE1kejkh5r+qUyQ7PtF8jZYN0mo8Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optional": true,
- "os": [
- "alpine"
- ]
- },
- "node_modules/@vscode/vsce-sign-alpine-x64": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.6.tgz",
- "integrity": "sha512-YoAGlmdK39vKi9jA18i4ufBbd95OqGJxRvF3n6ZbCyziwy3O+JgOpIUPxv5tjeO6gQfx29qBivQ8ZZTUF2Ba0w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optional": true,
- "os": [
- "alpine"
- ]
- },
- "node_modules/@vscode/vsce-sign-darwin-arm64": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.6.tgz",
- "integrity": "sha512-5HMHaJRIQuozm/XQIiJiA0W9uhdblwwl2ZNDSSAeXGO9YhB9MH5C4KIHOmvyjUnKy4UCuiP43VKpIxW1VWP4tQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@vscode/vsce-sign-darwin-x64": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.6.tgz",
- "integrity": "sha512-25GsUbTAiNfHSuRItoQafXOIpxlYj+IXb4/qarrXu7kmbH94jlm5sdWSCKrrREs8+GsXF1b+l3OB7VJy5jsykw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@vscode/vsce-sign-linux-arm": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.6.tgz",
- "integrity": "sha512-UndEc2Xlq4HsuMPnwu7420uqceXjs4yb5W8E2/UkaHBB9OWCwMd3/bRe/1eLe3D8kPpxzcaeTyXiK3RdzS/1CA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@vscode/vsce-sign-linux-arm64": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.6.tgz",
- "integrity": "sha512-cfb1qK7lygtMa4NUl2582nP7aliLYuDEVpAbXJMkDq1qE+olIw/es+C8j1LJwvcRq1I2yWGtSn3EkDp9Dq5FdA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@vscode/vsce-sign-linux-x64": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.6.tgz",
- "integrity": "sha512-/olerl1A4sOqdP+hjvJ1sbQjKN07Y3DVnxO4gnbn/ahtQvFrdhUi0G1VsZXDNjfqmXw57DmPi5ASnj/8PGZhAA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@vscode/vsce-sign-win32-arm64": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.6.tgz",
- "integrity": "sha512-ivM/MiGIY0PJNZBoGtlRBM/xDpwbdlCWomUWuLmIxbi1Cxe/1nooYrEQoaHD8ojVRgzdQEUzMsRbyF5cJJgYOg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@vscode/vsce-sign-win32-x64": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.6.tgz",
- "integrity": "sha512-mgth9Kvze+u8CruYMmhHw6Zgy3GRX2S+Ed5oSokDEK5vPEwGGKnmuXua9tmFhomeAnhgJnL4DCna3TiNuGrBTQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "SEE LICENSE IN LICENSE.txt",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@vscode/vsce/node_modules/ansi-styles": {
+ "node_modules/@vscodium/vsce/node_modules/ansi-styles": {
"version": "4.3.0",
@@ -2149,3 +2042,3 @@
},
- "node_modules/@vscode/vsce/node_modules/balanced-match": {
+ "node_modules/@vscodium/vsce/node_modules/balanced-match": {
"version": "4.0.4",
@@ -2159,3 +2052,3 @@
},
- "node_modules/@vscode/vsce/node_modules/brace-expansion": {
+ "node_modules/@vscodium/vsce/node_modules/brace-expansion": {
"version": "5.0.4",
@@ -2172,3 +2065,3 @@
},
- "node_modules/@vscode/vsce/node_modules/chalk": {
+ "node_modules/@vscodium/vsce/node_modules/chalk": {
"version": "4.1.2",
@@ -2189,3 +2082,3 @@
},
- "node_modules/@vscode/vsce/node_modules/color-convert": {
+ "node_modules/@vscodium/vsce/node_modules/color-convert": {
"version": "2.0.1",
@@ -2202,3 +2095,3 @@
},
- "node_modules/@vscode/vsce/node_modules/color-name": {
+ "node_modules/@vscodium/vsce/node_modules/color-name": {
"version": "1.1.4",
@@ -2209,3 +2102,3 @@
},
- "node_modules/@vscode/vsce/node_modules/glob": {
+ "node_modules/@vscodium/vsce/node_modules/glob": {
"version": "11.1.0",
@@ -2233,3 +2126,3 @@
},
- "node_modules/@vscode/vsce/node_modules/glob/node_modules/minimatch": {
+ "node_modules/@vscodium/vsce/node_modules/glob/node_modules/minimatch": {
"version": "10.2.4",
@@ -2249,3 +2142,3 @@
},
- "node_modules/@vscode/vsce/node_modules/has-flag": {
+ "node_modules/@vscodium/vsce/node_modules/has-flag": {
"version": "4.0.0",
@@ -2259,3 +2152,3 @@
},
- "node_modules/@vscode/vsce/node_modules/jsonc-parser": {
+ "node_modules/@vscodium/vsce/node_modules/jsonc-parser": {
"version": "3.3.1",
@@ -2263,9 +2156,11 @@
"integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/@vscode/vsce/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "node_modules/@vscodium/vsce/node_modules/semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
+ "license": "ISC",
"bin": {
@@ -2277,3 +2172,3 @@
},
- "node_modules/@vscode/vsce/node_modules/supports-color": {
+ "node_modules/@vscodium/vsce/node_modules/supports-color": {
"version": "7.2.0",
@@ -2290,12 +2185,2 @@
},
- "node_modules/@vscode/vsce/node_modules/yazl": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz",
- "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "buffer-crc32": "~0.2.3"
- }
- },
"node_modules/@xmldom/xmldom": {
@@ -7001,2 +6886,12 @@
},
+ "node_modules/yazl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz",
+ "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-crc32": "~0.2.3"
+ }
+ },
"node_modules/yocto-queue": {
diff --git a/build/package.json b/build/package.json
index 8a65120..a36d5c4 100644
--- a/build/package.json
+++ b/build/package.json
@@ -45,3 +45,3 @@
"@vscode/ripgrep": "^1.17.1",
- "@vscode/vsce": "3.6.1",
+ "@vscodium/vsce": "3.6.1-258428",
"ansi-colors": "^3.2.3",
diff --git a/src/vs/platform/extensionManagement/node/extensionSignatureVerificationService.ts b/src/vs/platform/extensionManagement/node/extensionSignatureVerificationService.ts
index 98535c5..cc37d7b 100644
--- a/src/vs/platform/extensionManagement/node/extensionSignatureVerificationService.ts
+++ b/src/vs/platform/extensionManagement/node/extensionSignatureVerificationService.ts
@@ -69,3 +69,3 @@ export class ExtensionSignatureVerificationService implements IExtensionSignatur
private async resolveVsceSign(): Promise<typeof vsceSign> {
- const mod = '@vscode/vsce-sign';
+ const mod = '@vscodium/vsce-sign';
return import(mod);

View File

@@ -0,0 +1,20 @@
diff --git a/src/vs/platform/extensionManagement/common/extensionGalleryService.ts b/src/vs/platform/extensionManagement/common/extensionGalleryService.ts
index 6414a46..0bdc5a2 100644
--- a/src/vs/platform/extensionManagement/common/extensionGalleryService.ts
+++ b/src/vs/platform/extensionManagement/common/extensionGalleryService.ts
@@ -1944,3 +1944,3 @@ export abstract class AbstractExtensionGalleryService implements IExtensionGalle
- const context = await this.requestService.request({
+ const requestOptions: IRequestOptions = {
type: 'GET',
@@ -1949,3 +1949,9 @@ export abstract class AbstractExtensionGalleryService implements IExtensionGalle
callSite: 'extensionGalleryService.getExtensionsControlManifest'
- }, CancellationToken.None);
+ };
+
+ if (!isWeb) {
+ requestOptions.headers = { Connection: 'close' };
+ }
+
+ const context = await this.requestService.request(requestOptions, CancellationToken.None);

131
patches/fix-keymap.patch Normal file
View File

@@ -0,0 +1,131 @@
diff --git a/.npmrc b/.npmrc
index a275846..87f881f 100644
--- a/.npmrc
+++ b/.npmrc
@@ -6,2 +6,3 @@ ignore-scripts=false
build_from_source="true"
+build_from_source_native_keymap="no"
legacy-peer-deps="true"
diff --git a/build/.moduleignore b/build/.moduleignore
index ed36151..5b040cc 100644
--- a/build/.moduleignore
+++ b/build/.moduleignore
@@ -65,7 +65,7 @@ fsevents/test/**
-native-keymap/binding.gyp
-native-keymap/build/**
-native-keymap/src/**
-native-keymap/deps/**
-!native-keymap/build/Release/*.node
+@vscodium/native-keymap/binding.gyp
+@vscodium/native-keymap/build/**
+@vscodium/native-keymap/src/**
+@vscodium/native-keymap/deps/**
+!@vscodium/native-keymap/build/Release/*.node
diff --git a/eslint.config.js b/eslint.config.js
index 73f062a..f008259 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -1481,3 +1481,3 @@ export default tseslint.config(
'node:module',
- 'native-keymap',
+ '@vscodium/native-keymap',
'net',
diff --git a/package-lock.json b/package-lock.json
index bc72a21..ae566c1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -32,2 +32,3 @@
"@vscode/windows-registry": "^1.2.0",
+ "@vscodium/native-keymap": "3.3.7-258424",
"@xterm/addon-clipboard": "^0.3.0-beta.191",
@@ -49,3 +50,2 @@
"native-is-elevated": "0.9.0",
- "native-keymap": "^3.3.5",
"node-pty": "^1.2.0-beta.10",
@@ -4862,2 +4862,9 @@
},
+ "node_modules/@vscodium/native-keymap": {
+ "version": "3.3.7-258424",
+ "resolved": "https://registry.npmjs.org/@vscodium/native-keymap/-/native-keymap-3.3.7-258424.tgz",
+ "integrity": "sha512-HZ20QfExV0kE2l939yE3wn0LezSV7BcpxOFmlUMUHBQbdANMSLkwzo6Zw1xOEZDoYm3VTDHt8/+WwLBR2MpA3A==",
+ "hasInstallScript": true,
+ "license": "MIT"
+ },
"node_modules/@wdio/config": {
@@ -15159,5 +15166,6 @@
"node_modules/napi-build-utils": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
- "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz",
+ "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==",
+ "license": "MIT"
},
@@ -15170,9 +15178,2 @@
},
- "node_modules/native-keymap": {
- "version": "3.3.9",
- "resolved": "https://registry.npmjs.org/native-keymap/-/native-keymap-3.3.9.tgz",
- "integrity": "sha512-d/ydQ5x+GM5W0dyAjFPwexhtc9CDH1g/xWZESS5CXk16ThyFzSBLvlBJq1+FyzUIFf/F2g1MaHdOpa6G9150YQ==",
- "hasInstallScript": true,
- "license": "MIT"
- },
"node_modules/natural-compare": {
@@ -16693,5 +16694,6 @@
"node_modules/prebuild-install": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz",
- "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==",
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz",
+ "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==",
+ "license": "MIT",
"dependencies": {
@@ -16702,3 +16704,3 @@
"mkdirp-classic": "^0.5.3",
- "napi-build-utils": "^1.0.1",
+ "napi-build-utils": "^2.0.0",
"node-abi": "^3.3.0",
diff --git a/package.json b/package.json
index d727d5a..54d14ad 100644
--- a/package.json
+++ b/package.json
@@ -119,3 +119,3 @@
"native-is-elevated": "0.9.0",
- "native-keymap": "^3.3.5",
+ "@vscodium/native-keymap": "3.3.7-258424",
"node-pty": "^1.2.0-beta.10",
diff --git a/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts b/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts
index c30c6da..ca6cea2 100644
--- a/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts
+++ b/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts
@@ -44,8 +44,8 @@ flakySuite('Native Modules (all platforms)', () => {
test('native-keymap', async () => {
- const keyMap = await import('native-keymap');
- assert.ok(typeof keyMap.onDidChangeKeyboardLayout === 'function', testErrorMessage('native-keymap'));
- assert.ok(typeof keyMap.getCurrentKeyboardLayout === 'function', testErrorMessage('native-keymap'));
+ const keyMap = await import('@vscodium/native-keymap');
+ assert.ok(typeof keyMap.onDidChangeKeyboardLayout === 'function', testErrorMessage('@vscodium/native-keymap'));
+ assert.ok(typeof keyMap.getCurrentKeyboardLayout === 'function', testErrorMessage('@vscodium/native-keymap'));
const result = keyMap.getCurrentKeyboardLayout();
- assert.ok(result, testErrorMessage('native-keymap'));
+ assert.ok(result, testErrorMessage('@vscodium/native-keymap'));
});
diff --git a/src/vs/platform/keyboardLayout/electron-main/keyboardLayoutMainService.ts b/src/vs/platform/keyboardLayout/electron-main/keyboardLayoutMainService.ts
index 8950ce2..f31cea6 100644
--- a/src/vs/platform/keyboardLayout/electron-main/keyboardLayoutMainService.ts
+++ b/src/vs/platform/keyboardLayout/electron-main/keyboardLayoutMainService.ts
@@ -5,3 +5,3 @@
-import type * as nativeKeymap from 'native-keymap';
+import type * as nativeKeymap from '@vscodium/native-keymap';
import * as platform from '../../../base/common/platform.js';
@@ -48,3 +48,3 @@ export class KeyboardLayoutMainService extends Disposable implements INativeKeyb
private async _doInitialize(): Promise<void> {
- const nativeKeymapMod = await import('native-keymap');
+ const nativeKeymapMod = await import('@vscodium/native-keymap');

View File

@@ -0,0 +1,14 @@
diff --git a/build/npm/preinstall.ts b/build/npm/preinstall.ts
index 3476fca..e23329f 100644
--- a/build/npm/preinstall.ts
+++ b/build/npm/preinstall.ts
@@ -129,3 +129,3 @@ function installHeaders() {
// Refs https://chromium-review.googlesource.com/c/v8/v8/+/6879784
- if (process.platform === 'linux') {
+ if (process.platform === 'linux' && local) {
const homedir = os.homedir();
@@ -133,3 +133,3 @@ function installHeaders() {
const nodeGypCache = path.join(cachePath, 'node-gyp');
- const localHeaderPath = path.join(nodeGypCache, local!.target, 'include', 'node');
+ const localHeaderPath = path.join(nodeGypCache, local.target, 'include', 'node');
if (fs.existsSync(localHeaderPath)) {

View File

@@ -1,8 +1,10 @@
# Fix: Replace @vscode/policy-watcher with @vscodium/policy-watcher
# Documentation: docs/patches.md#fix-policies
diff --git a/build/.moduleignore b/build/.moduleignore
index 3e654cf..d9ee9f5 100644
index 5b040cc..8d5fd71 100644
--- a/build/.moduleignore
+++ b/build/.moduleignore
@@ -126,9 +126,11 @@ vsda/**
@@ -128,9 +128,11 @@ vsda/**
-@vscode/policy-watcher/build/**
-@vscode/policy-watcher/.husky/**
@@ -21,61 +23,76 @@ index 3e654cf..d9ee9f5 100644
+@vscodium/policy-watcher/index.d.ts
+!@vscodium/policy-watcher/build/Release/vscodium-policy-watcher.node
diff --git a/build/lib/policies.js b/build/lib/policies.js
index d2ef760..fa0eea4 100644
--- a/build/lib/policies.js
+++ b/build/lib/policies.js
@@ -81,3 +81,3 @@ class BasePolicy {
return [
- `<policy name="${this.name}" class="Both" displayName="$(string.${this.name})" explainText="$(string.${this.name}_${this.description.nlsKey.replace(/\./g, '_')})" key="Software\\Policies\\Microsoft\\${regKey}" presentation="$(presentation.${this.name})">`,
+ `<policy name="${this.name}" class="Both" displayName="$(string.${this.name})" explainText="$(string.${this.name}_${this.description.nlsKey.replace(/\./g, '_')})" key="Software\\Policies\\!!ORG_NAME!!\\${regKey}" presentation="$(presentation.${this.name})">`,
` <parentCategory ref="${this.category.name.nlsKey}" />`,
@@ -501,3 +501,3 @@ function renderADMX(regKey, versions, categories, policies) {
<policyNamespaces>
- <target prefix="${regKey}" namespace="Microsoft.Policies.${regKey}" />
+ <target prefix="${regKey}" namespace="!!ORG_NAME!!.Policies.${regKey}" />
</policyNamespaces>
diff --git a/build/lib/policies.ts b/build/lib/policies.ts
index 381d2f4..9cdec71 100644
--- a/build/lib/policies.ts
+++ b/build/lib/policies.ts
@@ -107,3 +107,3 @@ abstract class BasePolicy implements Policy {
diff --git a/build/lib/policies/basePolicy.ts b/build/lib/policies/basePolicy.ts
index 7f650ba..db927cb 100644
--- a/build/lib/policies/basePolicy.ts
+++ b/build/lib/policies/basePolicy.ts
@@ -38,3 +38,3 @@ export abstract class BasePolicy implements Policy {
return [
- `<policy name="${this.name}" class="Both" displayName="$(string.${this.name})" explainText="$(string.${this.name}_${this.description.nlsKey.replace(/\./g, '_')})" key="Software\\Policies\\Microsoft\\${regKey}" presentation="$(presentation.${this.name})">`,
+ `<policy name="${this.name}" class="Both" displayName="$(string.${this.name})" explainText="$(string.${this.name}_${this.description.nlsKey.replace(/\./g, '_')})" key="Software\\Policies\\!!ORG_NAME!!\\${regKey}" presentation="$(presentation.${this.name})">`,
` <parentCategory ref="${this.category.name.nlsKey}" />`,
@@ -703,3 +703,3 @@ function renderADMX(regKey: string, versions: string[], categories: Category[],
diff --git a/build/lib/policies/render.ts b/build/lib/policies/render.ts
index 47b485d..8437fd4 100644
--- a/build/lib/policies/render.ts
+++ b/build/lib/policies/render.ts
@@ -49,3 +49,3 @@ export function renderADMX(regKey: string, versions: string[], categories: Categ
<policyNamespaces>
- <target prefix="${regKey}" namespace="Microsoft.Policies.${regKey}" />
+ <target prefix="${regKey}" namespace="!!ORG_NAME!!.Policies.${regKey}" />
</policyNamespaces>
@@ -167,3 +167,3 @@ export function renderProfileManifest(appName: string, bundleIdentifier: string,
<key>pfm_default</key>
- <string>Microsoft</string>
+ <string>!!ORG_NAME!!</string>
<key>pfm_name</key>
@@ -185,3 +185,3 @@ export function renderProfileManifest(appName: string, bundleIdentifier: string,
<key>pfm_app_url</key>
- <string>https://code.visualstudio.com/</string>
+ <string>https://github.com/VSCodium/vscodium</string>
<key>pfm_description</key>
@@ -189,3 +189,3 @@ export function renderProfileManifest(appName: string, bundleIdentifier: string,
<key>pfm_documentation_url</key>
- <string>https://code.visualstudio.com/docs/setup/enterprise</string>
+ <string>https://github.com/VSCodium/vscodium</string>
<key>pfm_domain</key>
@@ -255,3 +255,3 @@ ${policyEntries}
<key>PayloadDescription</key>
- <string>This profile manages ${appName}. For more information see https://code.visualstudio.com/docs/setup/enterprise</string>
+ <string>This profile manages ${appName}. For more information see https://github.com/VSCodium/vscodium</string>
<key>PayloadDisplayName</key>
@@ -261,3 +261,3 @@ ${policyEntries}
<key>PayloadOrganization</key>
- <string>Microsoft</string>
+ <string>!!ORG_NAME!!</string>
<key>PayloadType</key>
diff --git a/eslint.config.js b/eslint.config.js
index 127bb34..44d2b4c 100644
index f008259..f87fda1 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -800,3 +800,3 @@ export default tseslint.config(
'@vscode/iconv-lite-umd',
@@ -1464,3 +1464,3 @@ export default tseslint.config(
'@vscode/native-watchdog',
- '@vscode/policy-watcher',
+ '@vscodium/policy-watcher',
'@vscode/proxy-agent',
diff --git a/package-lock.json b/package-lock.json
index 4572a94..9f8c938 100644
index ae566c1..3b3a5dd 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,3 +18,2 @@
"@vscode/iconv-lite-umd": "0.7.0",
@@ -21,3 +21,2 @@
"@vscode/native-watchdog": "^1.4.6",
- "@vscode/policy-watcher": "^1.3.2",
"@vscode/proxy-agent": "^0.35.0",
@@ -29,2 +28,3 @@
"@vscode/windows-registry": "^1.1.0",
"@vscode/proxy-agent": "^0.39.1",
@@ -33,2 +32,3 @@
"@vscodium/native-keymap": "3.3.7-258424",
+ "@vscodium/policy-watcher": "^1.3.2-252465",
"@xterm/addon-clipboard": "^0.2.0-beta.102",
@@ -2960,22 +2960,2 @@
"@xterm/addon-clipboard": "^0.3.0-beta.191",
@@ -4538,22 +4538,2 @@
},
- "node_modules/@vscode/policy-watcher": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@vscode/policy-watcher/-/policy-watcher-1.3.2.tgz",
- "integrity": "sha512-fmNPYysU2ioH99uCaBPiRblEZSnir5cTmc7w91hAxAoYoGpHt2PZPxT5eIOn7FGmPOsjLdQcd6fduFJGYVD4Mw==",
- "version": "1.3.7",
- "resolved": "https://registry.npmjs.org/@vscode/policy-watcher/-/policy-watcher-1.3.7.tgz",
- "integrity": "sha512-OvIczTbtGLZs7YU0ResbjM0KEB2ORBnlJ4ICxaB9fKHNVBwNVp4i2qIkDQGp3UBGtu7P8/+eg4/ZKk2oJGFcug==",
- "hasInstallScript": true,
- "license": "MIT",
- "dependencies": {
@@ -93,12 +110,12 @@ index 4572a94..9f8c938 100644
- }
- },
"node_modules/@vscode/proxy-agent": {
@@ -3372,2 +3352,22 @@
@@ -4869,2 +4849,22 @@
},
+ "node_modules/@vscodium/policy-watcher": {
+ "version": "1.3.2-252465",
+ "resolved": "https://registry.npmjs.org/@vscodium/policy-watcher/-/policy-watcher-1.3.2-252465.tgz",
+ "integrity": "sha512-kpnb656HMteBIm8d9LhBpQ5gL2A/4rJrsaLCF0D8IWyrZAQ0UR9EzXM6tZ6p5H+KWot3QUjm0Gry6vMV1yye5Q==",
+ "version": "1.3.2-255408",
+ "resolved": "https://registry.npmjs.org/@vscodium/policy-watcher/-/policy-watcher-1.3.2-255408.tgz",
+ "integrity": "sha512-0KERmB+VkSz9hvFWEDGalCpxQ9+qjLaUazXMBkzWQ9SjKPaD6zU9u6wA4/OUu816JnvCFEeJYEe9WcDZPnKQ1w==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "dependencies": {
@@ -107,24 +124,24 @@ index 4572a94..9f8c938 100644
+ }
+ },
+ "node_modules/@vscodium/policy-watcher/node_modules/node-addon-api": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.3.0.tgz",
+ "integrity": "sha512-8VOpLHFrOQlAH+qA0ZzuGRlALRA6/LVh8QJldbrC4DY0hXoMP0l4Acq8TzFC018HztWiRqyCEj2aTWY2UvnJUg==",
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.6.0.tgz",
+ "integrity": "sha512-gBVjCaqDlRUk0EwoPNKzIr9KkS9041G/q31IBShPs1Xz6UTA+EXdZADbzqAJQrpDRq71CIMnOP5VMut3SL0z5Q==",
+ "license": "MIT",
+ "engines": {
+ "node": "^18 || ^20 || >= 21"
+ }
+ },
"node_modules/@webassemblyjs/ast": {
"node_modules/@wdio/config": {
diff --git a/package.json b/package.json
index 8c0fdf3..0817f25 100644
index 54d14ad..47778c2 100644
--- a/package.json
+++ b/package.json
@@ -79,3 +79,3 @@
"@vscode/iconv-lite-umd": "0.7.0",
@@ -91,3 +91,3 @@
"@vscode/native-watchdog": "^1.4.6",
- "@vscode/policy-watcher": "^1.3.2",
+ "@vscodium/policy-watcher": "^1.3.2-252465",
"@vscode/proxy-agent": "^0.35.0",
"@vscode/proxy-agent": "^0.39.1",
diff --git a/src/vs/base/test/node/uri.perf.data.txt b/src/vs/base/test/node/uri.perf.data.txt
index ee0a24b..881ce36 100644
--- a/src/vs/base/test/node/uri.perf.data.txt
@@ -225,7 +242,7 @@ index ee0a24b..881ce36 100644
+/Users/example/node_modules/@vscodium/policy-watcher/src/windows/NumberPolicy.hh
/Users/example/node_modules/@vscode/vscode-languagedetection/CODE_OF_CONDUCT.md
diff --git a/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts b/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts
index 2a6acba..167d759 100644
index ca6cea2..32b22fe 100644
--- a/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts
+++ b/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts
@@ -62,5 +62,5 @@ flakySuite('Native Modules (all platforms)', () => {
@@ -238,7 +255,7 @@ index 2a6acba..167d759 100644
+ assert.ok(typeof watcher.createWatcher === 'function', testErrorMessage('@vscodium/policy-watcher'));
});
diff --git a/src/vs/platform/policy/node/nativePolicyService.ts b/src/vs/platform/policy/node/nativePolicyService.ts
index 67f7892..840d655 100644
index feb4ba1..4d9e0c3 100644
--- a/src/vs/platform/policy/node/nativePolicyService.ts
+++ b/src/vs/platform/policy/node/nativePolicyService.ts
@@ -8,3 +8,3 @@ import { IStringDictionary } from '../../../base/common/collections.js';
@@ -254,5 +271,5 @@ index 67f7892..840d655 100644
@@ -31,3 +31,3 @@ export class NativePolicyService extends AbstractPolicyService implements IPolic
try {
- this.watcher.value = createWatcher(this.productName, policyDefinitions, update => {
+ this.watcher.value = createWatcher('!!ORG_NAME!!', this.productName, policyDefinitions, update => {
+ this.watcher.value = createWatcher('VSCodium', this.productName, policyDefinitions, update => {
this._onDidPolicyChange(update);

View File

@@ -1,12 +1,8 @@
diff --git a/remote/package-lock.json b/remote/package-lock.json
index f0ed1cc..a973af3 100644
index 30a7391..94f839a 100644
--- a/remote/package-lock.json
+++ b/remote/package-lock.json
@@ -40,2 +40,3 @@
"tas-client-umd": "0.2.0",
+ "tslib": "^2.6.3",
"vscode-oniguruma": "1.7.0",
@@ -1109,2 +1110,8 @@
@@ -1155,2 +1155,8 @@
},
+ "node_modules/tslib": {
+ "version": "2.7.0",
@@ -16,10 +12,10 @@ index f0ed1cc..a973af3 100644
+ },
"node_modules/tunnel-agent": {
diff --git a/remote/package.json b/remote/package.json
index 33afee9..525ed07 100644
index 119d62c..9ef9624 100644
--- a/remote/package.json
+++ b/remote/package.json
@@ -35,2 +35,3 @@
"tas-client-umd": "0.2.0",
@@ -37,2 +37,3 @@
"tas-client": "0.3.1",
+ "tslib": "^2.6.3",
"vscode-oniguruma": "1.7.0",

View File

@@ -0,0 +1,10 @@
diff --git a/src/vs/workbench/contrib/remoteTunnel/electron-browser/remoteTunnel.contribution.ts b/src/vs/workbench/contrib/remoteTunnel/electron-browser/remoteTunnel.contribution.ts
index 0eaa650..43eeee6 100644
--- a/src/vs/workbench/contrib/remoteTunnel/electron-browser/remoteTunnel.contribution.ts
+++ b/src/vs/workbench/contrib/remoteTunnel/electron-browser/remoteTunnel.contribution.ts
@@ -152,2 +152,5 @@ export class RemoteTunnelWorkbenchContribution extends Disposable implements IWo
const shouldRecommend = async () => {
+ if (!Boolean(remoteExtension)) {
+ return false;
+ }
if (this.storageService.getBoolean(REMOTE_TUNNEL_EXTENSION_RECOMMENDED_KEY, StorageScope.APPLICATION)) {

View File

@@ -1,63 +1,25 @@
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 31b1c4a..f808aa6 100644
index 7434345..f870f59 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -17,23 +17,23 @@
},
@@ -29,6 +29,6 @@
"[typescript]": {
"editor.defaultFormatter": "vscode.typescript-language-features",
- "editor.formatOnSave": true
+ // "editor.formatOnSave": true
},
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features",
- "editor.formatOnSave": true
+ // "editor.formatOnSave": true
},
"[rust]": {
@@ -36,3 +36,3 @@
"editor.defaultFormatter": "rust-lang.rust-analyzer",
- "editor.formatOnSave": true,
+ // "editor.formatOnSave": true,
},
"[github-issues]": {
"editor.wordWrap": "on"
},
@@ -42,4 +42,4 @@
// --- Files ---
- "files.trimTrailingWhitespace": true,
- "files.insertFinalNewline": true,
+ // "files.trimTrailingWhitespace": true,
+ // "files.insertFinalNewline": true,
"files.exclude": {
".git": true,
".build": true,
@@ -42,9 +42,9 @@
".vscode-test": true,
"cli/target": true,
"build/**/*.js.map": true,
- "build/**/*.js": {
- "when": "$(basename).ts"
- }
+ // "build/**/*.js": {
+ // "when": "$(basename).ts"
+ // }
},
"files.associations": {
"cglicenses.json": "jsonc",
@@ -55,7 +55,7 @@
"**/yarn.lock": true,
"**/package-lock.json": true,
"**/Cargo.lock": true,
- "build/**/*.js": true,
+ // "build/**/*.js": true,
"out/**": true,
"out-build/**": true,
"out-vscode/**": true,
@@ -71,6 +71,7 @@
"build/builtin/*.js": true,
"build/monaco/*.js": true,
"build/npm/*.js": true,
+ "build/**/*.js": true,
"build/*.js": true
},

View File

@@ -1,5 +1,5 @@
diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
index 6805633..9d4b59f 100755
index f0d5fe6..fdb3707 100755
--- a/build/azure-pipelines/linux/setup-env.sh
+++ b/build/azure-pipelines/linux/setup-env.sh
@@ -2,3 +2,3 @@
@@ -9,17 +9,17 @@ index 6805633..9d4b59f 100755
@@ -22,3 +22,3 @@ else
echo "Downloading remote sysroot"
- SYSROOT_ARCH="$SYSROOT_ARCH" VSCODE_SYSROOT_DIR="$VSCODE_REMOTE_SYSROOT_DIR" VSCODE_SYSROOT_PREFIX="-glibc-2.28-gcc-8.5.0" node -e '(async () => { const { getVSCodeSysroot } = require("./build/linux/debian/install-sysroot.js"); await getVSCodeSysroot(process.env["SYSROOT_ARCH"]); })()'
+ SYSROOT_ARCH="$SYSROOT_ARCH" VSCODE_SYSROOT_DIR="$VSCODE_REMOTE_SYSROOT_DIR" node -e '(async () => { const { getVSCodeSysroot } = require("./build/linux/debian/install-sysroot.js"); await getVSCodeSysroot(process.env["SYSROOT_ARCH"]); })()'
- SYSROOT_ARCH="$SYSROOT_ARCH" VSCODE_SYSROOT_DIR="$VSCODE_REMOTE_SYSROOT_DIR" VSCODE_SYSROOT_PREFIX="-glibc-2.28-gcc-8.5.0" node -e 'import { getVSCodeSysroot } from "./build/linux/debian/install-sysroot.ts"; (async () => { await getVSCodeSysroot(process.env["SYSROOT_ARCH"]); })()'
+ SYSROOT_ARCH="$SYSROOT_ARCH" VSCODE_SYSROOT_DIR="$VSCODE_REMOTE_SYSROOT_DIR" node -e 'import { getVSCodeSysroot } from "./build/linux/debian/install-sysroot.ts"; (async () => { await getVSCodeSysroot(process.env["SYSROOT_ARCH"]); })()'
fi
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 10b7b44..0ad7550 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -233,9 +233,23 @@ function nodejs(platform, arch) {
diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts
index 8e7f6bb..0874203 100644
--- a/build/gulpfile.reh.ts
+++ b/build/gulpfile.reh.ts
@@ -239,9 +239,23 @@ function nodejs(platform: string, arch: string): NodeJS.ReadWriteStream | undefi
case 'linux':
- return (product.nodejsRepository !== 'https://nodejs.org' ?
- fetchGithub(product.nodejsRepository, { version: `${nodeVersion}-${internalNodeVersion}`, name: expectedName, checksumSha256 }) :
- fetchGithub(product.nodejsRepository, { version: `${nodeVersion}-${internalNodeVersion}`, name: expectedName!, checksumSha256 }) :
- fetchUrls(`/dist/v${nodeVersion}/node-v${nodeVersion}-${platform}-${arch}.tar.gz`, { base: 'https://nodejs.org', checksumSha256 })
- ).pipe(flatmap(stream => stream.pipe(gunzip()).pipe(untar())))
- .pipe(filter('**/node'))
@@ -33,7 +33,7 @@ index 10b7b44..0ad7550 100644
+ .pipe(rename('node'));
+ }
+ if (product.nodejsRepository !== 'https://nodejs.org') {
+ return fetchGithub(product.nodejsRepository, { version: `${nodeVersion}-${internalNodeVersion}`, name: expectedName, checksumSha256 })
+ return fetchGithub(product.nodejsRepository, { version: `${nodeVersion}-${internalNodeVersion}`, name: expectedName!, checksumSha256 })
+ .pipe(flatmap(stream => stream.pipe(gunzip()).pipe(untar())))
+ .pipe(filter('**/node'))
+ .pipe(util.setExecutableBit('**'))
@@ -47,13 +47,13 @@ index 10b7b44..0ad7550 100644
+ .pipe(rename('node'));
+ }
case 'alpine':
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 25d8916..250ba7c 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -366,2 +366,12 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts
index 25a3600..c9402f3 100644
--- a/build/gulpfile.vscode.ts
+++ b/build/gulpfile.vscode.ts
@@ -516,4 +516,15 @@ function packageTask(platform: string, arch: string, sourceFolderName: string, d
+ const electronOverride = {};
+ const electronOverride: { repo?: string; tag?: string } = {};
+ if (process.env.VSCODE_ELECTRON_REPOSITORY) {
+ // official electron doesn't support all arch, override the repo with `VSCODE_ELECTRON_REPOSITORY`.
+ electronOverride.repo = process.env.VSCODE_ELECTRON_REPOSITORY;
@@ -63,48 +63,21 @@ index 25d8916..250ba7c 100644
+ electronOverride.tag = process.env.VSCODE_ELECTRON_TAG;
+ }
+
let result = all
@@ -370,3 +380,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
.pipe(filter(['**', '!**/.github/**'], { dot: true })) // https://github.com/microsoft/vscode/issues/116523
- .pipe(electron({ ...config, platform, arch: arch === 'armhf' ? 'arm' : arch, ffmpegChromium: false }))
+ .pipe(electron({ ...config, ...electronOverride, platform, arch: arch === 'armhf' ? 'arm' : arch, ffmpegChromium: false }))
.pipe(filter(['**', '!LICENSE', '!version'], { dot: true }));
diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
index f58d0f8..4edb371 100644
--- a/build/linux/debian/dep-lists.js
+++ b/build/linux/debian/dep-lists.js
@@ -140,3 +140,3 @@ exports.referenceGeneratedDepsByArch = {
'xdg-utils (>= 1.0.2)'
- ]
+ ],
};
const electronConfig = {
...config,
+ ...electronOverride,
platform,
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
index 5b7ccd5..707129f 100644
index 46c257d..78bfb66 100644
--- a/build/linux/debian/dep-lists.ts
+++ b/build/linux/debian/dep-lists.ts
@@ -140,3 +140,3 @@ export const referenceGeneratedDepsByArch = {
@@ -141,3 +141,3 @@ export const referenceGeneratedDepsByArch = {
'xdg-utils (>= 1.0.2)'
- ]
+ ],
};
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index d16e13b..18e409a 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -73,3 +73,5 @@ async function fetchUrl(options, retries = 10, retryDelay = 1000) {
try {
- const response = await fetch(`https://api.github.com/repos/Microsoft/vscode-linux-build-agent/releases/tags/v${version}`, {
+ const repository = process.env['VSCODE_SYSROOT_REPOSITORY'] ?? 'Microsoft/vscode-linux-build-agent';
+ const actualVersion = process.env['VSCODE_SYSROOT_VERSION'] ?? version;
+ const response = await fetch(`https://api.github.com/repos/${repository}/releases/tags/v${actualVersion}`, {
headers: ghApiHeaders,
@@ -82,3 +84,3 @@ async function fetchUrl(options, retries = 10, retryDelay = 1000) {
if (!asset) {
- throw new Error(`Could not find asset in release of Microsoft/vscode-linux-build-agent @ ${version}`);
+ throw new Error(`Could not find asset in release of ${repository} @ ${actualVersion}`);
}
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
index 670fb68..092fc68 100644
index 0dfc69a..7b6ac8b 100644
--- a/build/linux/debian/install-sysroot.ts
+++ b/build/linux/debian/install-sysroot.ts
@@ -82,3 +82,5 @@ async function fetchUrl(options: IFetchOptions, retries = 10, retryDelay = 1000)

View File

@@ -1,5 +1,5 @@
diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
index c27358a..3e33f75 100755
index fdb3707..67bc741 100755
--- a/build/azure-pipelines/linux/setup-env.sh
+++ b/build/azure-pipelines/linux/setup-env.sh
@@ -76,2 +76,14 @@ elif [ "$npm_config_arch" == "arm" ]; then
@@ -27,128 +27,71 @@ index 5294177..1e33aeb 100755
+ TRIPLE="powerpc64le-linux-gnu"
fi
diff --git a/build/checksums/vscode-sysroot.txt b/build/checksums/vscode-sysroot.txt
index 5744a5f..3fedbe9 100644
index 847383e..37186f4 100644
--- a/build/checksums/vscode-sysroot.txt
+++ b/build/checksums/vscode-sysroot.txt
@@ -7 +7,2 @@ f82c8dacbb9dd85819e4801909eb4e842ac12c899632aa75b4839383a18c7501 arm-rpi-linux-
84acc5a15566c98ddf80631731d672e0ce9febcf3f2e969101e0dfd7ef2405e3 x86_64-linux-gnu-glibc-2.28-gcc-8.5.0.tar.gz
@@ -7 +7,2 @@ ac4b6b14b4cec027a22a51bbbb049b3504958a78106c8a8d5cec144206b767d1 x86_64-linux-g
1ebb6ef1fe2983269fd0855a88f9c9a37f9b515d16524a9146198e4cabdf34f7 x86_64-linux-gnu-glibc-2.28-gcc-8.5.0.tar.gz
+fa8176d27be18bb0eeb7f55b0fa22255050b430ef68c29136599f02976eb0b1b powerpc64le-linux-gnu-glibc-2.28.tar.gz
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 5ac9f95..cd04bdf 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -50,2 +50,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts
index 012df0b..a7da071 100644
--- a/build/gulpfile.reh.ts
+++ b/build/gulpfile.reh.ts
@@ -52,2 +52,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
{ platform: 'alpine', arch: 'arm64' },
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index aafc64e..484d5f4 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -26,2 +26,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.scan.ts b/build/gulpfile.scan.ts
index 19e50c0..47b25cf 100644
--- a/build/gulpfile.scan.ts
+++ b/build/gulpfile.scan.ts
@@ -24,2 +24,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
];
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 004417f..c38fc1a 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -475,2 +475,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
];
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index cd8610d..707581d 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -33,3 +33,3 @@ const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
function getDebPackageArch(arch) {
- return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64' }[arch];
+ return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el' }[arch];
}
@@ -146,3 +146,3 @@ function getRpmBuildPath(rpmArch) {
function getRpmPackageArch(arch) {
- return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64' }[arch];
+ return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le' }[arch];
}
@@ -304,2 +304,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.vscode.linux.ts b/build/gulpfile.vscode.linux.ts
index c5d2163..da4fc1f 100644
--- a/build/gulpfile.vscode.linux.ts
+++ b/build/gulpfile.vscode.linux.ts
@@ -32,2 +32,3 @@ function getDebPackageArch(arch: string): string {
case 'arm64': return 'arm64';
+ case 'ppc64le': return 'ppc64el';
default: throw new Error(`Unknown arch: ${arch}`);
@@ -142,2 +143,3 @@ function getRpmPackageArch(arch: string): string {
case 'arm64': return 'aarch64';
+ case 'ppc64le': return 'ppc64le';
default: throw new Error(`Unknown arch: ${arch}`);
@@ -286,2 +288,3 @@ const BUILD_TARGETS = [
{ arch: 'arm64' },
+ { arch: 'ppc64le' },
];
diff --git a/build/linux/debian/calculate-deps.js b/build/linux/debian/calculate-deps.js
index 34276ce..fdae163 100644
--- a/build/linux/debian/calculate-deps.js
+++ b/build/linux/debian/calculate-deps.js
@@ -54,2 +54,5 @@ function calculatePackageDeps(binaryPath, arch, chromiumSysroot, vscodeSysroot)
break;
+ case 'ppc64el':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/powerpc64le-linux-gnu`, `-l${chromiumSysroot}/lib/powerpc64le-linux-gnu`, `-l${vscodeSysroot}/usr/lib/powerpc64le-linux-gnu`, `-l${vscodeSysroot}/lib/powerpc64le-linux-gnu`);
+ break;
}
diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts
index ce46a41..3389ede 100644
--- a/build/gulpfile.vscode.ts
+++ b/build/gulpfile.vscode.ts
@@ -614,2 +614,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
];
diff --git a/build/linux/debian/calculate-deps.ts b/build/linux/debian/calculate-deps.ts
index addc386..423c415 100644
index 98a9630..6c6bbf5 100644
--- a/build/linux/debian/calculate-deps.ts
+++ b/build/linux/debian/calculate-deps.ts
@@ -61,2 +61,8 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
@@ -61,2 +61,9 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
break;
+ case 'ppc64el':
+ case 'ppc64le':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/powerpc64le-linux-gnu`,
+ `-l${chromiumSysroot}/lib/powerpc64le-linux-gnu`,
+ `-l${vscodeSysroot}/usr/lib/powerpc64le-linux-gnu`,
+ `-l${vscodeSysroot}/lib/powerpc64le-linux-gnu`);
+ break;
}
diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
index 057961c..ed10661 100644
--- a/build/linux/debian/dep-lists.js
+++ b/build/linux/debian/dep-lists.js
@@ -141,2 +141,41 @@ exports.referenceGeneratedDepsByArch = {
],
+ 'ppc64el': [
+ 'ca-certificates',
+ 'libasound2 (>= 1.0.17)',
+ 'libatk-bridge2.0-0 (>= 2.5.3)',
+ 'libatk1.0-0 (>= 2.2.0)',
+ 'libatspi2.0-0 (>= 2.9.90)',
+ 'libc6 (>= 2.17)',
+ 'libc6 (>= 2.28)',
+ 'libcairo2 (>= 1.6.0)',
+ 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
+ 'libdbus-1-3 (>= 1.9.14)',
+ 'libdrm2 (>= 2.4.75)',
+ 'libexpat1 (>= 2.1~beta3)',
+ 'libgbm1 (>= 17.1.0~rc2)',
+ 'libglib2.0-0 (>= 2.37.3)',
+ 'libgssapi-krb5-2 (>= 1.17)',
+ 'libgtk-3-0 (>= 3.9.10)',
+ 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
+ 'libkrb5-3 (>= 1.6.dfsg.2)',
+ 'libnspr4 (>= 2:4.9-2~)',
+ 'libnss3 (>= 2:3.30)',
+ 'libnss3 (>= 3.26)',
+ 'libpango-1.0-0 (>= 1.14.0)',
+ 'libstdc++6 (>= 4.1.1)',
+ 'libstdc++6 (>= 5)',
+ 'libstdc++6 (>= 5.2)',
+ 'libstdc++6 (>= 6)',
+ 'libx11-6',
+ 'libx11-6 (>= 2:1.4.99.1)',
+ 'libxcb1 (>= 1.9.2)',
+ 'libxcomposite1 (>= 1:0.4.4-1)',
+ 'libxdamage1 (>= 1:1.1)',
+ 'libxext6',
+ 'libxfixes3',
+ 'libxkbcommon0 (>= 0.5.0)',
+ 'libxkbfile1 (>= 1:1.1.0)',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
+ ],
};
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
index 707129f..7fe60be 100644
index 78bfb66..5acd3a0 100644
--- a/build/linux/debian/dep-lists.ts
+++ b/build/linux/debian/dep-lists.ts
@@ -141,2 +141,41 @@ export const referenceGeneratedDepsByArch = {
@@ -142,2 +142,41 @@ export const referenceGeneratedDepsByArch = {
],
+ 'ppc64el': [
+ 'ca-certificates',
@@ -190,162 +133,35 @@ index 707129f..7fe60be 100644
+ 'xdg-utils (>= 1.0.2)'
+ ],
};
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index 8fbdf3d..011b36f 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -146,2 +146,6 @@ async function getVSCodeSysroot(arch, isMusl = false) {
break;
+ case 'ppc64le':
+ expectedName = `powerpc64le-linux-gnu${prefix}.tar.gz`;
+ triple = `powerpc64le-linux-gnu`;
+ break;
}
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
index 9f3fd15..756b7fd 100644
index 7b6ac8b..dde47ba 100644
--- a/build/linux/debian/install-sysroot.ts
+++ b/build/linux/debian/install-sysroot.ts
@@ -159,2 +159,6 @@ export async function getVSCodeSysroot(arch: DebianArchString, isMusl: boolean =
@@ -158,2 +158,6 @@ export async function getVSCodeSysroot(arch: DebianArchString, isMusl: boolean =
break;
+ case 'ppc64le':
+ expectedName = `powerpc64le-linux-gnu${prefix}.tar.gz`;
+ triple = `powerpc64le-linux-gnu`;
+ break;
}
diff --git a/build/linux/debian/types.js b/build/linux/debian/types.js
index ce21d50..2c56b9c 100644
--- a/build/linux/debian/types.js
+++ b/build/linux/debian/types.js
@@ -8,3 +8,3 @@ exports.isDebianArchString = isDebianArchString;
function isDebianArchString(s) {
- return ['amd64', 'armhf', 'arm64'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el'].includes(s);
}
diff --git a/build/linux/debian/types.ts b/build/linux/debian/types.ts
index e97485e..43f2434 100644
index e97485e..c56d067 100644
--- a/build/linux/debian/types.ts
+++ b/build/linux/debian/types.ts
@@ -5,6 +5,6 @@
-export type DebianArchString = 'amd64' | 'armhf' | 'arm64';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'ppc64le';
export function isDebianArchString(s: string): s is DebianArchString {
- return ['amd64', 'armhf', 'arm64'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'ppc64le'].includes(s);
}
diff --git a/build/linux/rpm/dep-lists.js b/build/linux/rpm/dep-lists.js
index 1f19c85..43ac5a0 100644
--- a/build/linux/rpm/dep-lists.js
+++ b/build/linux/rpm/dep-lists.js
@@ -316,2 +316,102 @@ exports.referenceGeneratedDepsByArch = {
'xdg-utils'
+ ],
+ "ppc64le": [
+ 'ca-certificates',
+ 'ld-linux-x86-64.so.2()(64bit)',
+ 'ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)',
+ 'ld64.so.2()(64bit)',
+ 'ld64.so.2(GLIBC_2.17)(64bit)',
+ 'libX11.so.6()(64bit)',
+ 'libXcomposite.so.1()(64bit)',
+ 'libXdamage.so.1()(64bit)',
+ 'libXext.so.6()(64bit)',
+ 'libXfixes.so.3()(64bit)',
+ 'libXrandr.so.2()(64bit)',
+ 'libasound.so.2()(64bit)',
+ 'libasound.so.2(ALSA_0.9)(64bit)',
+ 'libasound.so.2(ALSA_0.9.0rc4)(64bit)',
+ 'libatk-1.0.so.0()(64bit)',
+ 'libatk-bridge-2.0.so.0()(64bit)',
+ 'libatspi.so.0()(64bit)',
+ 'libc.so.6()(64bit)',
+ 'libc.so.6(GLIBC_2.14)(64bit)',
+ 'libc.so.6(GLIBC_2.17)(64bit)',
+ 'libc.so.6(GLIBC_2.2.5)(64bit)',
+ 'libc.so.6(GLIBC_2.28)(64bit)',
+ 'libc.so.6(GLIBC_2.4)(64bit)',
+ 'libc.so.6(GLIBC_2.9)(64bit)',
+ 'libcairo.so.2()(64bit)',
+ 'libcups.so.2()(64bit)',
+ 'libcurl.so.4()(64bit)',
+ 'libdbus-1.so.3()(64bit)',
+ 'libdbus-1.so.3(LIBDBUS_1_3)(64bit)',
+ 'libdl.so.2()(64bit)',
+ 'libdl.so.2(GLIBC_2.17)(64bit)',
+ 'libdrm.so.2()(64bit)',
+ 'libexpat.so.1()(64bit)',
+ 'libgbm.so.1()(64bit)',
+ 'libgcc_s.so.1()(64bit)',
+ 'libgcc_s.so.1(GCC_3.0)(64bit)',
+ 'libgcc_s.so.1(GCC_3.4.4)(64bit)',
+ 'libgio-2.0.so.0()(64bit)',
+ 'libglib-2.0.so.0()(64bit)',
+ 'libgobject-2.0.so.0()(64bit)',
+ 'libgssapi_krb5.so.2()(64bit)',
+ 'libgssapi_krb5.so.2(gssapi_krb5_2_MIT)(64bit)',
+ 'libgtk-3.so.0()(64bit)',
+ 'libkrb5.so.3()(64bit)',
+ 'libkrb5.so.3(krb5_3_MIT)(64bit)',
+ 'libm.so.6()(64bit)',
+ 'libm.so.6(GLIBC_2.17)(64bit)',
+ 'libm.so.6(GLIBC_2.2.5)(64bit)',
+ 'libm.so.6(GLIBC_2.27)(64bit)',
+ 'libnspr4.so()(64bit)',
+ 'libnss3.so()(64bit)',
+ 'libnss3.so(NSS_3.11)(64bit)',
+ 'libnss3.so(NSS_3.12)(64bit)',
+ 'libnss3.so(NSS_3.12.1)(64bit)',
+ 'libnss3.so(NSS_3.2)(64bit)',
+ 'libnss3.so(NSS_3.22)(64bit)',
+ 'libnss3.so(NSS_3.3)(64bit)',
+ 'libnss3.so(NSS_3.30)(64bit)',
+ 'libnss3.so(NSS_3.4)(64bit)',
+ 'libnss3.so(NSS_3.5)(64bit)',
+ 'libnss3.so(NSS_3.9.2)(64bit)',
+ 'libnssutil3.so()(64bit)',
+ 'libnssutil3.so(NSSUTIL_3.12.3)(64bit)',
+ 'libpango-1.0.so.0()(64bit)',
+ 'libpthread.so.0()(64bit)',
+ 'libpthread.so.0(GLIBC_2.17)(64bit)',
+ 'libpthread.so.0(GLIBC_2.2.5)(64bit)',
+ 'libpthread.so.0(GLIBC_2.3.2)(64bit)',
+ 'libpthread.so.0(GLIBC_2.3.3)(64bit)',
+ 'libsmime3.so()(64bit)',
+ 'libsmime3.so(NSS_3.10)(64bit)',
+ 'libsmime3.so(NSS_3.2)(64bit)',
+ 'libssl3.so(NSS_3.28)(64bit)',
+ 'libstdc++.so.6()(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.5)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.8)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.9)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.11)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.14)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.15)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.18)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.19)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.20)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.21)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.22)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.5)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.9)(64bit)',
+ 'libutil.so.1()(64bit)',
+ 'libutil.so.1(GLIBC_2.2.5)(64bit)',
+ 'libxcb.so.1()(64bit)',
+ 'libxkbcommon.so.0()(64bit)',
+ 'libxkbcommon.so.0(V_0.5.0)(64bit)',
+ 'libxkbfile.so.1()(64bit)',
+ 'rpmlib(FileDigests) <= 4.6.0-1',
+ 'rtld(GNU_HASH)',
+ 'xdg-utils'
]
diff --git a/build/linux/rpm/dep-lists.ts b/build/linux/rpm/dep-lists.ts
index db52338..4231f09 100644
index 0424c8d..c7e0820 100644
--- a/build/linux/rpm/dep-lists.ts
+++ b/build/linux/rpm/dep-lists.ts
@@ -315,2 +315,102 @@ export const referenceGeneratedDepsByArch = {
@@ -318,2 +318,102 @@ export const referenceGeneratedDepsByArch = {
'xdg-utils'
+ ],
+ "ppc64le": [
@@ -448,15 +264,6 @@ index db52338..4231f09 100644
+ 'rtld(GNU_HASH)',
+ 'xdg-utils'
]
diff --git a/build/linux/rpm/types.js b/build/linux/rpm/types.js
index a20b9c2..7b58961 100644
--- a/build/linux/rpm/types.js
+++ b/build/linux/rpm/types.js
@@ -8,3 +8,3 @@ exports.isRpmArchString = isRpmArchString;
function isRpmArchString(s) {
- return ['x86_64', 'armv7hl', 'aarch64'].includes(s);
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le'].includes(s);
}
diff --git a/build/linux/rpm/types.ts b/build/linux/rpm/types.ts
index c6a01da..3f3c3f5 100644
--- a/build/linux/rpm/types.ts
@@ -471,27 +278,27 @@ index c6a01da..3f3c3f5 100644
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le'].includes(s);
}
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index a39bbf7..84d3efe 100644
index 3b7ef5c..ec97760 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -176,2 +176,3 @@ pub enum Platform {
@@ -183,2 +183,3 @@ pub enum Platform {
LinuxARM32Legacy,
+ LinuxPPC64LE,
DarwinX64,
@@ -194,2 +195,3 @@ impl Platform {
@@ -201,2 +202,3 @@ impl Platform {
Platform::LinuxARM32Legacy => "armhf",
+ Platform::LinuxPPC64LE => "ppc64le",
Platform::DarwinX64 => "x64",
@@ -213,2 +215,3 @@ impl Platform {
@@ -220,2 +222,3 @@ impl Platform {
Platform::LinuxARM32Legacy => "linux",
+ Platform::LinuxPPC64LE => "linux",
Platform::DarwinX64 => "darwin",
@@ -241,2 +244,4 @@ impl Platform {
@@ -248,2 +251,4 @@ impl Platform {
Some(Platform::LinuxARM64)
+ } else if cfg!(all(target_os = "linux", target_arch = "powerpc64")) {
+ Some(Platform::LinuxPPC64LE)
} else if cfg!(all(target_os = "macos", target_arch = "x86_64")) {
@@ -268,2 +273,3 @@ impl fmt::Display for Platform {
@@ -275,2 +280,3 @@ impl fmt::Display for Platform {
Platform::LinuxARM32Legacy => "LinuxARM32Legacy",
+ Platform::LinuxPPC64LE => "LinuxPPC64LE",
Platform::DarwinX64 => "DarwinX64",
@@ -505,36 +312,36 @@ index 44c8597..679aacb 100644
+ Platform::LinuxPPC64LE
} else {
diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
index 8ea4c0b..b9d3b47 100644
index 8ea4c0b..94028e3 100644
--- a/resources/server/bin/helpers/check-requirements-linux.sh
+++ b/resources/server/bin/helpers/check-requirements-linux.sh
@@ -55,2 +55,3 @@ case $ARCH in
;;
+ ppc64el) LDCONFIG_ARCH="64bit";;
+ ppc64le) LDCONFIG_ARCH="64bit";;
esac
diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
index e91310f..a28beef 100644
index ab11f6b..fd1ec31 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -47,2 +47,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
@@ -48,2 +48,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
case TargetPlatform.LINUX_ARMHF: return 'Linux ARM';
+ case TargetPlatform.LINUX_PPC64LE: return 'Linux PowerPC64';
@@ -70,2 +71,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
@@ -71,2 +72,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
case TargetPlatform.LINUX_ARMHF: return TargetPlatform.LINUX_ARMHF;
+ case TargetPlatform.LINUX_PPC64LE: return TargetPlatform.LINUX_PPC64LE;
@@ -105,2 +107,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
@@ -106,2 +108,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
}
+ if (arch === 'ppc64le') {
+ return TargetPlatform.LINUX_PPC64LE;
+ }
return TargetPlatform.UNKNOWN;
diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
index 0b42527..69d6eb3 100644
index 021ad01..60cd058 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -329,2 +329,3 @@ export const enum TargetPlatform {
@@ -342,2 +342,3 @@ export const enum TargetPlatform {
LINUX_ARMHF = 'linux-armhf',
+ LINUX_PPC64LE = 'linux-ppc64le',

View File

@@ -1,60 +1,48 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index cd04bdf..e284026 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -51,2 +51,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts
index f986b4e..557990e 100644
--- a/build/gulpfile.reh.ts
+++ b/build/gulpfile.reh.ts
@@ -53,2 +53,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
{ platform: 'alpine', arch: 'arm64' },
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index 484d5f4..66c8e1f 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -27,2 +27,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.scan.ts b/build/gulpfile.scan.ts
index 47b25cf..dd5bb56 100644
--- a/build/gulpfile.scan.ts
+++ b/build/gulpfile.scan.ts
@@ -25,2 +25,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
];
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 3ed2182..f0614d0 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -492,2 +492,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
];
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index 707581d..298181d 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -33,3 +33,3 @@ const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
function getDebPackageArch(arch) {
- return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el' }[arch];
+ return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el', riscv64: 'riscv64' }[arch];
}
@@ -146,3 +146,3 @@ function getRpmBuildPath(rpmArch) {
function getRpmPackageArch(arch) {
- return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le' }[arch];
+ return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le', riscv64: 'riscv64' }[arch];
}
@@ -305,2 +305,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.vscode.linux.ts b/build/gulpfile.vscode.linux.ts
index da4fc1f..b64dd9a 100644
--- a/build/gulpfile.vscode.linux.ts
+++ b/build/gulpfile.vscode.linux.ts
@@ -33,2 +33,3 @@ function getDebPackageArch(arch: string): string {
case 'ppc64le': return 'ppc64el';
+ case 'riscv64': return 'riscv64';
default: throw new Error(`Unknown arch: ${arch}`);
@@ -144,2 +145,3 @@ function getRpmPackageArch(arch: string): string {
case 'ppc64le': return 'ppc64le';
+ case 'riscv64': return 'riscv64';
default: throw new Error(`Unknown arch: ${arch}`);
@@ -289,2 +291,3 @@ const BUILD_TARGETS = [
{ arch: 'ppc64le' },
+ { arch: 'riscv64' },
];
diff --git a/build/linux/debian/calculate-deps.js b/build/linux/debian/calculate-deps.js
index fdae163..a08ebda 100644
--- a/build/linux/debian/calculate-deps.js
+++ b/build/linux/debian/calculate-deps.js
@@ -57,2 +57,5 @@ function calculatePackageDeps(binaryPath, arch, chromiumSysroot, vscodeSysroot)
break;
+ case 'riscv64':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/riscv64-linux-gnu`, `-l${chromiumSysroot}/lib/riscv64-linux-gnu`, `-l${vscodeSysroot}/usr/lib/riscv64-linux-gnu`, `-l${vscodeSysroot}/lib/riscv64-linux-gnu`);
+ break;
}
diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts
index 1d7e9d5..3a5a9ca 100644
--- a/build/gulpfile.vscode.ts
+++ b/build/gulpfile.vscode.ts
@@ -518,2 +518,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
];
diff --git a/build/linux/debian/calculate-deps.ts b/build/linux/debian/calculate-deps.ts
index 423c415..88ee2f0 100644
index 6c6bbf5..5ee005e 100644
--- a/build/linux/debian/calculate-deps.ts
+++ b/build/linux/debian/calculate-deps.ts
@@ -67,2 +67,8 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
@@ -68,2 +68,8 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
break;
+ case 'riscv64':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/riscv64-linux-gnu`,
@@ -63,58 +51,11 @@ index 423c415..88ee2f0 100644
+ `-l${vscodeSysroot}/lib/riscv64-linux-gnu`);
+ break;
}
diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
index a85352e..4ccdcd9 100644
--- a/build/linux/debian/dep-lists.js
+++ b/build/linux/debian/dep-lists.js
@@ -178,2 +178,42 @@ exports.referenceGeneratedDepsByArch = {
],
+ 'riscv64': [
+ 'ca-certificates',
+ 'libatomic1',
+ 'libasound2 (>= 1.0.17)',
+ 'libatk-bridge2.0-0 (>= 2.5.3)',
+ 'libatk1.0-0 (>= 2.2.0)',
+ 'libatspi2.0-0 (>= 2.9.90)',
+ 'libc6 (>= 2.17)',
+ 'libc6 (>= 2.28)',
+ 'libcairo2 (>= 1.6.0)',
+ 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
+ 'libdbus-1-3 (>= 1.0.2)',
+ 'libdrm2 (>= 2.4.60)',
+ 'libexpat1 (>= 2.0.1)',
+ 'libgbm1 (>= 17.1.0~rc2)',
+ 'libglib2.0-0 (>= 2.16.0)',
+ 'libglib2.0-0 (>= 2.39.4)',
+ 'libgtk-3-0 (>= 3.9.10)',
+ 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
+ 'libnspr4 (>= 2:4.9-2~)',
+ 'libnss3 (>= 2:3.22)',
+ 'libnss3 (>= 3.26)',
+ 'libpango-1.0-0 (>= 1.14.0)',
+ 'libsecret-1-0 (>= 0.18)',
+ 'libstdc++6 (>= 4.1.1)',
+ 'libstdc++6 (>= 5)',
+ 'libstdc++6 (>= 5.2)',
+ 'libstdc++6 (>= 6)',
+ 'libx11-6',
+ 'libx11-6 (>= 2:1.4.99.1)',
+ 'libxcb1 (>= 1.9.2)',
+ 'libxcomposite1 (>= 1:0.4.4-1)',
+ 'libxdamage1 (>= 1:1.1)',
+ 'libxext6',
+ 'libxfixes3',
+ 'libxkbcommon0 (>= 0.4.1)',
+ 'libxkbfile1',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
+ ],
};
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
index 0d0f11b..b765492 100644
index 73d451f..7ea5910 100644
--- a/build/linux/debian/dep-lists.ts
+++ b/build/linux/debian/dep-lists.ts
@@ -178,2 +178,42 @@ export const referenceGeneratedDepsByArch = {
@@ -181,2 +181,42 @@ export const referenceGeneratedDepsByArch = {
],
+ 'riscv64': [
+ 'ca-certificates',
@@ -157,58 +98,29 @@ index 0d0f11b..b765492 100644
+ 'xdg-utils (>= 1.0.2)'
+ ],
};
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index ab6b826..fc2817a 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -144,2 +144,6 @@ async function getVSCodeSysroot(arch) {
break;
+ case 'riscv64':
+ expectedName = `riscv64-linux-gnu${prefix}.tar.gz`;
+ triple = 'riscv64-linux-gnu';
+ break;
}
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
index c23db0f..50c28b2 100644
index 3086928..6e5246c 100644
--- a/build/linux/debian/install-sysroot.ts
+++ b/build/linux/debian/install-sysroot.ts
@@ -158,2 +158,6 @@ export async function getVSCodeSysroot(arch: DebianArchString): Promise<string>
@@ -162,2 +162,6 @@ export async function getVSCodeSysroot(arch: DebianArchString, isMusl: boolean =
break;
+ case 'riscv64':
+ expectedName = `riscv64-linux-gnu${prefix}.tar.gz`;
+ triple = 'riscv64-linux-gnu';
+ break;
}
diff --git a/build/linux/debian/types.js b/build/linux/debian/types.js
index 2c56b9c..cadefc2 100644
--- a/build/linux/debian/types.js
+++ b/build/linux/debian/types.js
@@ -8,3 +8,3 @@ exports.isDebianArchString = isDebianArchString;
function isDebianArchString(s) {
- return ['amd64', 'armhf', 'arm64', 'ppc64el'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64'].includes(s);
}
diff --git a/build/linux/debian/types.ts b/build/linux/debian/types.ts
index 43f2434..24fe452 100644
index c56d067..5d63ed2 100644
--- a/build/linux/debian/types.ts
+++ b/build/linux/debian/types.ts
@@ -5,6 +5,6 @@
-export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'riscv64';
-export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'ppc64le';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'ppc64le' | 'riscv64';
export function isDebianArchString(s: string): s is DebianArchString {
- return ['amd64', 'armhf', 'arm64', 'ppc64el'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64'].includes(s);
}
diff --git a/build/linux/rpm/types.js b/build/linux/rpm/types.js
index 7b58961..99a8cff 100644
--- a/build/linux/rpm/types.js
+++ b/build/linux/rpm/types.js
@@ -8,3 +8,3 @@ exports.isRpmArchString = isRpmArchString;
function isRpmArchString(s) {
- return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le'].includes(s);
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64'].includes(s);
- return ['amd64', 'armhf', 'arm64', 'ppc64el', 'ppc64le'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'ppc64le', 'riscv64'].includes(s);
}
diff --git a/build/linux/rpm/types.ts b/build/linux/rpm/types.ts
index 3f3c3f5..d94537e 100644
@@ -224,27 +136,27 @@ index 3f3c3f5..d94537e 100644
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64'].includes(s);
}
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index 84d3efe..4f2c8c2 100644
index ec97760..de9ca72 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -177,2 +177,3 @@ pub enum Platform {
@@ -184,2 +184,3 @@ pub enum Platform {
LinuxPPC64LE,
+ LinuxRISCV64,
DarwinX64,
@@ -196,2 +197,3 @@ impl Platform {
@@ -203,2 +204,3 @@ impl Platform {
Platform::LinuxPPC64LE => "ppc64le",
+ Platform::LinuxRISCV64 => "riscv64",
Platform::DarwinX64 => "x64",
@@ -216,2 +218,3 @@ impl Platform {
@@ -223,2 +225,3 @@ impl Platform {
Platform::LinuxPPC64LE => "linux",
+ Platform::LinuxRISCV64 => "linux",
Platform::DarwinX64 => "darwin",
@@ -246,2 +249,4 @@ impl Platform {
@@ -253,2 +256,4 @@ impl Platform {
Some(Platform::LinuxPPC64LE)
+ } else if cfg!(all(target_os = "linux", target_arch = "riscv64")) {
+ Some(Platform::LinuxRISCV64)
} else if cfg!(all(target_os = "macos", target_arch = "x86_64")) {
@@ -274,2 +279,3 @@ impl fmt::Display for Platform {
@@ -281,2 +286,3 @@ impl fmt::Display for Platform {
Platform::LinuxPPC64LE => "LinuxPPC64LE",
+ Platform::LinuxRISCV64 => "LinuxRISCV64",
Platform::DarwinX64 => "DarwinX64",
@@ -258,36 +170,36 @@ index 679aacb..1a37552 100644
+ Platform::LinuxRISCV64
} else {
diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
index b9d3b47..b18e402 100644
index 94028e3..c41cce7 100644
--- a/resources/server/bin/helpers/check-requirements-linux.sh
+++ b/resources/server/bin/helpers/check-requirements-linux.sh
@@ -56,2 +56,3 @@ case $ARCH in
ppc64el) LDCONFIG_ARCH="64bit";;
ppc64le) LDCONFIG_ARCH="64bit";;
+ riscv64) LDCONFIG_ARCH="RISC-V";;
esac
diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
index 5400065..be95b04 100644
index a754ff3..b607327 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -45,2 +45,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
@@ -49,2 +49,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
case TargetPlatform.LINUX_PPC64LE: return 'Linux PowerPC64';
+ case TargetPlatform.LINUX_RISCV64: return 'Linux RISC-V 64';
@@ -69,2 +70,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
@@ -73,2 +74,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
case TargetPlatform.LINUX_PPC64LE: return TargetPlatform.LINUX_PPC64LE;
+ case TargetPlatform.LINUX_RISCV64: return TargetPlatform.LINUX_RISCV64;
@@ -107,2 +109,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
@@ -111,2 +113,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
}
+ if (arch === 'riscv64') {
+ return TargetPlatform.LINUX_RISCV64;
+ }
return TargetPlatform.UNKNOWN;
diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
index 23f1bea..10152de 100644
index b605be0..22d2206 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -320,2 +320,3 @@ export const enum TargetPlatform {
@@ -332,2 +332,3 @@ export const enum TargetPlatform {
LINUX_PPC64LE = 'linux-ppc64le',
+ LINUX_RISCV64 = 'linux-riscv64',

View File

@@ -1,49 +1,65 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index e284026..52f9a12 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -52,2 +52,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts
index ff202a7..74bd1bc 100644
--- a/build/gulpfile.reh.ts
+++ b/build/gulpfile.reh.ts
@@ -54,2 +54,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'riscv64' },
+ { platform: 'linux', arch: 'loong64' },
{ platform: 'alpine', arch: 'arm64' },
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index 66c8e1f..8a8c1eb 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -28,2 +28,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.scan.ts b/build/gulpfile.scan.ts
index dd5bb56..e7881de 100644
--- a/build/gulpfile.scan.ts
+++ b/build/gulpfile.scan.ts
@@ -26,2 +26,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'riscv64' },
+ { platform: 'linux', arch: 'loong64' },
];
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index f0614d0..1438867 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -493,2 +493,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.vscode.linux.ts b/build/gulpfile.vscode.linux.ts
index b64dd9a..e146586 100644
--- a/build/gulpfile.vscode.linux.ts
+++ b/build/gulpfile.vscode.linux.ts
@@ -34,2 +34,3 @@ function getDebPackageArch(arch: string): string {
case 'riscv64': return 'riscv64';
+ case 'loong64': return 'loong64';
default: throw new Error(`Unknown arch: ${arch}`);
@@ -146,2 +147,3 @@ function getRpmPackageArch(arch: string): string {
case 'riscv64': return 'riscv64';
+ case 'loong64': return 'loong64';
default: throw new Error(`Unknown arch: ${arch}`);
@@ -292,2 +294,3 @@ const BUILD_TARGETS = [
{ arch: 'riscv64' },
+ { arch: 'loong64' },
];
diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts
index 15bd141..cabe16f 100644
--- a/build/gulpfile.vscode.ts
+++ b/build/gulpfile.vscode.ts
@@ -509,2 +509,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'riscv64' },
+ { platform: 'linux', arch: 'loong64' },
];
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index 4f2c8c2..4ea1bd2 100644
index f1afd87..0a5e6df 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -178,2 +178,3 @@ pub enum Platform {
@@ -188,2 +188,3 @@ pub enum Platform {
LinuxRISCV64,
+ LinuxLoong64,
DarwinX64,
@@ -198,2 +199,3 @@ impl Platform {
@@ -208,2 +209,3 @@ impl Platform {
Platform::LinuxRISCV64 => "riscv64",
+ Platform::LinuxLoong64 => "loong64",
Platform::DarwinX64 => "x64",
@@ -219,2 +221,3 @@ impl Platform {
@@ -229,2 +231,3 @@ impl Platform {
Platform::LinuxRISCV64 => "linux",
+ Platform::LinuxLoong64 => "linux",
Platform::DarwinX64 => "darwin",
@@ -251,2 +254,4 @@ impl Platform {
@@ -261,2 +264,4 @@ impl Platform {
Some(Platform::LinuxRISCV64)
+ } else if cfg!(all(target_os = "linux", target_arch = "loongarch64")) {
+ Some(Platform::LinuxLoong64)
} else if cfg!(all(target_os = "macos", target_arch = "x86_64")) {
@@ -280,2 +285,3 @@ impl fmt::Display for Platform {
@@ -290,2 +295,3 @@ impl fmt::Display for Platform {
Platform::LinuxRISCV64 => "LinuxRISCV64",
+ Platform::LinuxLoong64 => "LinuxLoong64",
Platform::DarwinX64 => "DarwinX64",
@@ -65,28 +81,28 @@ index b18e402..0b7aa4e 100644
+ loongarch64) LDCONFIG_ARCH="double-float";;
esac
diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
index be95b04..1a0decd 100644
index b607327..7162d83 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -46,2 +46,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
@@ -50,2 +50,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
case TargetPlatform.LINUX_RISCV64: return 'Linux RISC-V 64';
+ case TargetPlatform.LINUX_LOONG64: return 'Linux Loong64';
@@ -71,2 +72,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
@@ -75,2 +76,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
case TargetPlatform.LINUX_RISCV64: return TargetPlatform.LINUX_RISCV64;
+ case TargetPlatform.LINUX_LOONG64: return TargetPlatform.LINUX_LOONG64;
@@ -112,2 +114,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
@@ -116,2 +118,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
}
+ if (arch === 'loong64') {
+ return TargetPlatform.LINUX_LOONG64;
+ }
return TargetPlatform.UNKNOWN;
diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
index 10152de..3eb0412 100644
index 96d08cb..51e67ea 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -321,2 +321,3 @@ export const enum TargetPlatform {
@@ -332,2 +332,3 @@ export const enum TargetPlatform {
LINUX_RISCV64 = 'linux-riscv64',
+ LINUX_LOONG64 = 'linux-loong64',

View File

@@ -1,5 +1,5 @@
diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
index 3e33f75..052b38f 100755
index 6ff90d4..381150d 100755
--- a/build/azure-pipelines/linux/setup-env.sh
+++ b/build/azure-pipelines/linux/setup-env.sh
@@ -88,2 +88,14 @@ elif [ "$npm_config_arch" == "ppc64" ]; then
@@ -24,63 +24,51 @@ index 3fedbe9..3c4e291 100644
@@ -8 +8,2 @@ f82c8dacbb9dd85819e4801909eb4e842ac12c899632aa75b4839383a18c7501 arm-rpi-linux-
fa8176d27be18bb0eeb7f55b0fa22255050b430ef68c29136599f02976eb0b1b powerpc64le-linux-gnu-glibc-2.28.tar.gz
+7055f3d40e7195fb1e13f0fbaf5ffadf781bddaca5fd5e0d9972f4157a203fb5 s390x-linux-gnu-glibc-2.28.tar.gz
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 52f9a12..4b890f4 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -53,2 +53,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts
index af8403a..a697f8c 100644
--- a/build/gulpfile.reh.ts
+++ b/build/gulpfile.reh.ts
@@ -55,2 +55,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'loong64' },
+ { platform: 'linux', arch: 's390x' },
{ platform: 'alpine', arch: 'arm64' },
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index 8a8c1eb..1ef390b 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -29,2 +29,3 @@ const BUILD_TARGETS = [
diff --git a/build/gulpfile.scan.ts b/build/gulpfile.scan.ts
index e7881de..affa8df 100644
--- a/build/gulpfile.scan.ts
+++ b/build/gulpfile.scan.ts
@@ -27,2 +27,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'loong64' },
+ { platform: 'linux', arch: 's390x' },
];
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index ee66585..c9f9ceb 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -478,2 +478,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'loong64' },
+ { platform: 'linux', arch: 's390x' },
];
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index 298181d..dcc42a8 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -33,3 +33,3 @@ const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
function getDebPackageArch(arch) {
- return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el', riscv64: 'riscv64' }[arch];
+ return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el', riscv64: 'riscv64', s390x: 's390x' }[arch];
}
@@ -146,3 +146,3 @@ function getRpmBuildPath(rpmArch) {
function getRpmPackageArch(arch) {
- return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le', riscv64: 'riscv64' }[arch];
+ return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le', riscv64: 'riscv64', s390x: 's390x' }[arch];
}
@@ -306,2 +306,3 @@ const BUILD_TARGETS = [
{ arch: 'riscv64' },
diff --git a/build/gulpfile.vscode.linux.ts b/build/gulpfile.vscode.linux.ts
index e146586..ca18865 100644
--- a/build/gulpfile.vscode.linux.ts
+++ b/build/gulpfile.vscode.linux.ts
@@ -35,2 +35,3 @@ function getDebPackageArch(arch: string): string {
case 'loong64': return 'loong64';
+ case 's390x': return 's390x';
default: throw new Error(`Unknown arch: ${arch}`);
@@ -148,2 +149,3 @@ function getRpmPackageArch(arch: string): string {
case 'loong64': return 'loong64';
+ case 's390x': return 's390x';
default: throw new Error(`Unknown arch: ${arch}`);
@@ -295,2 +297,3 @@ const BUILD_TARGETS = [
{ arch: 'loong64' },
+ { arch: 's390x' },
];
diff --git a/build/linux/debian/calculate-deps.js b/build/linux/debian/calculate-deps.js
index a08ebda..9527119 100644
--- a/build/linux/debian/calculate-deps.js
+++ b/build/linux/debian/calculate-deps.js
@@ -60,2 +60,5 @@ function calculatePackageDeps(binaryPath, arch, chromiumSysroot, vscodeSysroot)
break;
+ case 's390x':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/s390x-linux-gnu`, `-l${chromiumSysroot}/lib/s390x-linux-gnu`, `-l${vscodeSysroot}/usr/lib/s390x-linux-gnu`, `-l${vscodeSysroot}/lib/s390x-linux-gnu`);
+ break;
}
diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts
index d5f3ed8..ac87a54 100644
--- a/build/gulpfile.vscode.ts
+++ b/build/gulpfile.vscode.ts
@@ -520,2 +520,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'loong64' },
+ { platform: 'linux', arch: 's390x' },
];
diff --git a/build/linux/debian/calculate-deps.ts b/build/linux/debian/calculate-deps.ts
index 88ee2f0..8037cf2 100644
index 5ee005e..71fb92e 100644
--- a/build/linux/debian/calculate-deps.ts
+++ b/build/linux/debian/calculate-deps.ts
@@ -73,2 +73,8 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
@@ -74,2 +74,8 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
break;
+ case 's390x':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/s390x-linux-gnu`,
@@ -89,58 +77,11 @@ index 88ee2f0..8037cf2 100644
+ `-l${vscodeSysroot}/lib/s390x-linux-gnu`);
+ break;
}
diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
index 13cf8f0..9ffd805 100644
--- a/build/linux/debian/dep-lists.js
+++ b/build/linux/debian/dep-lists.js
@@ -220,2 +220,42 @@ exports.referenceGeneratedDepsByArch = {
],
+ 's390x': [
+ 'ca-certificates',
+ 'libatomic1',
+ 'libasound2 (>= 1.0.17)',
+ 'libatk-bridge2.0-0 (>= 2.5.3)',
+ 'libatk1.0-0 (>= 2.2.0)',
+ 'libatspi2.0-0 (>= 2.9.90)',
+ 'libc6 (>= 2.17)',
+ 'libc6 (>= 2.28)',
+ 'libcairo2 (>= 1.6.0)',
+ 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
+ 'libdbus-1-3 (>= 1.0.2)',
+ 'libdrm2 (>= 2.4.60)',
+ 'libexpat1 (>= 2.0.1)',
+ 'libgbm1 (>= 17.1.0~rc2)',
+ 'libglib2.0-0 (>= 2.16.0)',
+ 'libglib2.0-0 (>= 2.39.4)',
+ 'libgtk-3-0 (>= 3.9.10)',
+ 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
+ 'libnspr4 (>= 2:4.9-2~)',
+ 'libnss3 (>= 2:3.22)',
+ 'libnss3 (>= 3.26)',
+ 'libpango-1.0-0 (>= 1.14.0)',
+ 'libsecret-1-0 (>= 0.18)',
+ 'libstdc++6 (>= 4.1.1)',
+ 'libstdc++6 (>= 5)',
+ 'libstdc++6 (>= 5.2)',
+ 'libstdc++6 (>= 6)',
+ 'libx11-6',
+ 'libx11-6 (>= 2:1.4.99.1)',
+ 'libxcb1 (>= 1.9.2)',
+ 'libxcomposite1 (>= 1:0.4.4-1)',
+ 'libxdamage1 (>= 1:1.1)',
+ 'libxext6',
+ 'libxfixes3',
+ 'libxkbcommon0 (>= 0.4.1)',
+ 'libxkbfile1',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
+ ],
};
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
index 7e6938a..8a314ec 100644
index 7ea5910..9498993 100644
--- a/build/linux/debian/dep-lists.ts
+++ b/build/linux/debian/dep-lists.ts
@@ -220,2 +220,42 @@ export const referenceGeneratedDepsByArch = {
@@ -221,2 +221,42 @@ export const referenceGeneratedDepsByArch = {
],
+ 's390x': [
+ 'ca-certificates',
@@ -183,55 +124,35 @@ index 7e6938a..8a314ec 100644
+ 'xdg-utils (>= 1.0.2)'
+ ],
};
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index e510426..ce7c75b 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -154,2 +154,6 @@ async function getVSCodeSysroot(arch, isMusl = false) {
break;
+ case 's390x':
+ expectedName = `s390x-linux-gnu${prefix}.tar.gz`;
+ triple = 's390x-linux-gnu';
+ break;
}
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
index 42841f6..cffae59 100644
index 6e5246c..89fac34 100644
--- a/build/linux/debian/install-sysroot.ts
+++ b/build/linux/debian/install-sysroot.ts
@@ -167,2 +167,6 @@ export async function getVSCodeSysroot(arch: DebianArchString, isMusl: boolean =
@@ -166,2 +166,6 @@ export async function getVSCodeSysroot(arch: DebianArchString, isMusl: boolean =
break;
+ case 's390x':
+ expectedName = `s390x-linux-gnu${prefix}.tar.gz`;
+ triple = 's390x-linux-gnu';
+ break;
}
diff --git a/build/linux/debian/types.js b/build/linux/debian/types.js
index cadefc2..8132812 100644
--- a/build/linux/debian/types.js
+++ b/build/linux/debian/types.js
@@ -8,3 +8,3 @@ exports.isDebianArchString = isDebianArchString;
function isDebianArchString(s) {
- return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64', 's390x'].includes(s);
}
diff --git a/build/linux/debian/types.ts b/build/linux/debian/types.ts
index 24fe452..9efba5b 100644
index 5d63ed2..5f793e2 100644
--- a/build/linux/debian/types.ts
+++ b/build/linux/debian/types.ts
@@ -5,6 +5,6 @@
-export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'riscv64';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'riscv64' | 's390x';
-export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'ppc64le' | 'riscv64';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'ppc64le' | 'riscv64' | 's390x';
export function isDebianArchString(s: string): s is DebianArchString {
- return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64', 's390x'].includes(s);
- return ['amd64', 'armhf', 'arm64', 'ppc64el', 'ppc64le', 'riscv64'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'ppc64le', 'riscv64', 's390x'].includes(s);
}
diff --git a/build/linux/rpm/dep-lists.ts b/build/linux/rpm/dep-lists.ts
index 4231f09..fc70433 100644
index fba6ee4..33efc80 100644
--- a/build/linux/rpm/dep-lists.ts
+++ b/build/linux/rpm/dep-lists.ts
@@ -415,2 +415,102 @@ export const referenceGeneratedDepsByArch = {
@@ -416,2 +416,102 @@ export const referenceGeneratedDepsByArch = {
'xdg-utils'
+ ],
+ "s390x": [
@@ -334,15 +255,6 @@ index 4231f09..fc70433 100644
+ 'rtld(GNU_HASH)',
+ 'xdg-utils'
]
diff --git a/build/linux/rpm/types.js b/build/linux/rpm/types.js
index 99a8cff..e2f3548 100644
--- a/build/linux/rpm/types.js
+++ b/build/linux/rpm/types.js
@@ -8,3 +8,3 @@ exports.isRpmArchString = isRpmArchString;
function isRpmArchString(s) {
- return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64'].includes(s);
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64', 's390x'].includes(s);
}
diff --git a/build/linux/rpm/types.ts b/build/linux/rpm/types.ts
index d94537e..3834b94 100644
--- a/build/linux/rpm/types.ts
@@ -357,7 +269,7 @@ index d94537e..3834b94 100644
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64', 's390x'].includes(s);
}
diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
index 0b7aa4e..e8b7ce0 100644
index dc9faac..9078cc9 100644
--- a/resources/server/bin/helpers/check-requirements-linux.sh
+++ b/resources/server/bin/helpers/check-requirements-linux.sh
@@ -58,2 +58,3 @@ case $ARCH in
@@ -365,28 +277,28 @@ index 0b7aa4e..e8b7ce0 100644
+ s390x) LDCONFIG_ARCH="64bit";;
esac
diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
index dedea4c..1043fe4 100644
index 7162d83..f6bb8fd 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -50,2 +50,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
@@ -51,2 +51,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
case TargetPlatform.LINUX_LOONG64: return 'Linux Loong64';
+ case TargetPlatform.LINUX_S390X: return 'Linux S390X';
@@ -76,2 +77,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
@@ -77,2 +78,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
case TargetPlatform.LINUX_LOONG64: return TargetPlatform.LINUX_LOONG64;
+ case TargetPlatform.LINUX_S390X: return TargetPlatform.LINUX_S390X;
@@ -120,2 +122,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
@@ -121,2 +123,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
}
+ if (arch === 's390x') {
+ return TargetPlatform.LINUX_S390X;
+ }
return TargetPlatform.UNKNOWN;
diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
index 6d554ce..51d23fa 100644
index f93e0ca..c4cc8c9 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -332,2 +332,3 @@ export const enum TargetPlatform {
@@ -334,2 +334,3 @@ export const enum TargetPlatform {
LINUX_LOONG64 = 'linux-loong64',
+ LINUX_S390X = 'linux-s390x',

26
patches/linux/cli.patch Normal file
View File

@@ -0,0 +1,26 @@
diff --git a/cli/src/tunnels/code_server.rs b/cli/src/tunnels/code_server.rs
index bbabadc..08af0df 100644
--- a/cli/src/tunnels/code_server.rs
+++ b/cli/src/tunnels/code_server.rs
@@ -4,2 +4,4 @@
*--------------------------------------------------------------------------------------------*/
+#![allow(unused_imports)]
+
use super::paths::{InstalledServer, ServerPaths};
diff --git a/cli/src/tunnels/dev_tunnels.rs b/cli/src/tunnels/dev_tunnels.rs
index 0168ee6..5d0d8d4 100644
--- a/cli/src/tunnels/dev_tunnels.rs
+++ b/cli/src/tunnels/dev_tunnels.rs
@@ -4,2 +4,4 @@
*--------------------------------------------------------------------------------------------*/
+#![allow(unused_imports)]
+
use super::protocol::{self, PortPrivacy, PortProtocol};
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index 55f1dad..f22a83c 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -4,2 +4,3 @@
*--------------------------------------------------------------------------------------------*/
+#![allow(unused_imports)]

View File

@@ -1,13 +1,13 @@
diff --git a/build/npm/dirs.js b/build/npm/dirs.js
index b9645e6..22f3450 100644
--- a/build/npm/dirs.js
+++ b/build/npm/dirs.js
@@ -47,4 +47,2 @@ const dirs = [
diff --git a/build/npm/dirs.ts b/build/npm/dirs.ts
index 48d76e2..270b078 100644
--- a/build/npm/dirs.ts
+++ b/build/npm/dirs.ts
@@ -53,4 +53,2 @@ export const dirs = [
'extensions/vscode-test-resolver',
- 'remote',
- 'remote/web',
'test/automation',
@@ -59,4 +57,2 @@ if (fs.existsSync(`${__dirname}/../../.build/distro/npm`)) {
@@ -66,4 +64,2 @@ if (existsSync(`${import.meta.dirname}/../../.build/distro/npm`)) {
dirs.push('.build/distro/npm');
- dirs.push('.build/distro/npm/remote');
- dirs.push('.build/distro/npm/remote/web');

View File

@@ -0,0 +1,123 @@
diff --git a/src/vs/platform/environment/common/environment.ts b/src/vs/platform/environment/common/environment.ts
index 4a14c83..59c963b 100644
--- a/src/vs/platform/environment/common/environment.ts
+++ b/src/vs/platform/environment/common/environment.ts
@@ -137,2 +137,3 @@ export interface INativeEnvironmentService extends IEnvironmentService {
userDataPath: string;
+ userStatePath: string;
diff --git a/src/vs/platform/environment/common/environmentService.ts b/src/vs/platform/environment/common/environmentService.ts
index 535132f..edd76bc 100644
--- a/src/vs/platform/environment/common/environmentService.ts
+++ b/src/vs/platform/environment/common/environmentService.ts
@@ -28,2 +28,4 @@ export interface INativeEnvironmentPaths {
+ userStateDir: string;
+
/**
@@ -54,2 +56,5 @@ export abstract class AbstractNativeEnvironmentService implements INativeEnviron
+ @memoize
+ get userStatePath(): string { return this.paths.userStateDir; }
+
@memoize
@@ -75,3 +80,3 @@ export abstract class AbstractNativeEnvironmentService implements INativeEnviron
const key = toLocalISOString(new Date()).replace(/-|:|\.\d+Z$/g, '');
- this.args.logsPath = join(this.userDataPath, 'logs', key);
+ this.args.logsPath = join(this.userStatePath, key);
}
diff --git a/src/vs/platform/environment/node/environmentService.ts b/src/vs/platform/environment/node/environmentService.ts
index ae9e7e1..3c6c6c5 100644
--- a/src/vs/platform/environment/node/environmentService.ts
+++ b/src/vs/platform/environment/node/environmentService.ts
@@ -11,2 +11,3 @@ import { getUserDataPath } from './userDataPath.js';
import { IProductService } from '../../product/common/productService.js';
+import { getUserStatePath } from './userStatePath.js';
@@ -18,3 +19,4 @@ export class NativeEnvironmentService extends AbstractNativeEnvironmentService {
tmpDir: tmpdir(),
- userDataDir: getUserDataPath(args, productService.nameShort)
+ userDataDir: getUserDataPath(args, productService.nameShort),
+ userStateDir: getUserStatePath(args, productService.nameShort)
}, productService);
diff --git a/src/vs/platform/environment/node/userStatePath.ts b/src/vs/platform/environment/node/userStatePath.ts
new file mode 100644
index 0000000..53f9e2f
--- /dev/null
+++ b/src/vs/platform/environment/node/userStatePath.ts
@@ -0,0 +1,42 @@
+import { homedir } from 'os';
+import { NativeParsedArgs } from '../common/argv.js';
+
+import { resolve, isAbsolute, join } from 'path';
+
+const cwd = process.env['VSCODE_CWD'] || process.cwd();
+
+export function getUserStatePath(cliArgs: NativeParsedArgs, productName: string): string {
+ const userStatePath = doGetUserStatePath(cliArgs, productName);
+ const pathsToResolve = [userStatePath];
+
+ if (!isAbsolute(userStatePath)) {
+ pathsToResolve.unshift(cwd);
+ }
+
+ return resolve(...pathsToResolve);
+}
+
+function doGetUserStatePath(cliArgs: NativeParsedArgs, productName: string): string {
+
+ // 0. Running out of sources has a fixed productName
+ if (process.env['VSCODE_DEV']) {
+ productName = 'code-oss-dev';
+ }
+
+ // 1. Support portable mode
+ const portablePath = process.env['VSCODE_PORTABLE'];
+ if (portablePath) {
+ return join(portablePath, 'user-state');
+ }
+
+ // 2. Support global VSCODE_APPSTATE environment variable
+ let appStatePath = process.env['VSCODE_APPSTATE'];
+ if (appStatePath) {
+ return join(appStatePath, productName);
+ }
+
+ // 4. Otherwise
+ appStatePath = process.env['XDG_STATE_HOME'] || join(homedir(), '.local', 'state');
+
+ return join(appStatePath, productName);
+}
diff --git a/src/vs/platform/window/common/window.ts b/src/vs/platform/window/common/window.ts
index fa297d1..839fd60 100644
--- a/src/vs/platform/window/common/window.ts
+++ b/src/vs/platform/window/common/window.ts
@@ -443,2 +443,3 @@ export interface INativeWindowConfiguration extends IWindowConfiguration, Native
userDataDir: string;
+ userStateDir: string;
diff --git a/src/vs/platform/windows/electron-main/windowsMainService.ts b/src/vs/platform/windows/electron-main/windowsMainService.ts
index 117dfd2..6b0458b 100644
--- a/src/vs/platform/windows/electron-main/windowsMainService.ts
+++ b/src/vs/platform/windows/electron-main/windowsMainService.ts
@@ -1511,2 +1511,3 @@ export class WindowsMainService extends Disposable implements IWindowsMainServic
userDataDir: this.environmentMainService.userDataPath,
+ userStateDir: this.environmentMainService.userStatePath,
diff --git a/src/vs/workbench/services/environment/electron-browser/environmentService.ts b/src/vs/workbench/services/environment/electron-browser/environmentService.ts
index 6cfa517..46286c6 100644
--- a/src/vs/workbench/services/environment/electron-browser/environmentService.ts
+++ b/src/vs/workbench/services/environment/electron-browser/environmentService.ts
@@ -153,3 +153,3 @@ export class NativeWorkbenchEnvironmentService extends AbstractNativeEnvironment
) {
- super(configuration, { homeDir: configuration.homeDir, tmpDir: configuration.tmpDir, userDataDir: configuration.userDataDir }, productService);
+ super(configuration, { homeDir: configuration.homeDir, tmpDir: configuration.tmpDir, userDataDir: configuration.userDataDir, userStateDir: configuration.userStateDir }, productService);
}
diff --git a/src/vs/workbench/services/workingCopy/test/electron-browser/workingCopyBackupService.test.ts b/src/vs/workbench/services/workingCopy/test/electron-browser/workingCopyBackupService.test.ts
index 6b7307e..c74476a 100644
--- a/src/vs/workbench/services/workingCopy/test/electron-browser/workingCopyBackupService.test.ts
+++ b/src/vs/workbench/services/workingCopy/test/electron-browser/workingCopyBackupService.test.ts
@@ -74,2 +74,3 @@ const TestNativeWindowConfiguration: INativeWindowConfiguration = {
userDataDir: joinPath(homeDir, product.nameShort).fsPath,
+ userStateDir: joinPath(homeDir, product.nameShort).fsPath,
profiles: { profile: NULL_PROFILE, all: [NULL_PROFILE], home: homeDir },

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,9 @@
diff --git a/src/vs/base/common/policy.ts b/src/vs/base/common/policy.ts
index 8141b0f..33599d9 100644
--- a/src/vs/base/common/policy.ts
+++ b/src/vs/base/common/policy.ts
@@ -11,3 +11,3 @@ import { IDefaultAccount } from './defaultAccount.js';
*/
-export const LINUX_SYSTEM_POLICY_FILE_PATH = '/etc/vscode/policy.json';
+export const LINUX_SYSTEM_POLICY_FILE_PATH = '/etc/!!GLOBAL_DIRNAME!!/policy.json';

View File

@@ -1,16 +1,15 @@
diff --git a/build/npm/postinstall.js b/build/npm/postinstall.js
index fa8da7d..5e2f51b 100644
--- a/build/npm/postinstall.js
+++ b/build/npm/postinstall.js
@@ -53,8 +53,9 @@ function npmInstall(dir, opts) {
log(dir, `Installing dependencies inside container ${process.env['VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME']}...`);
diff --git a/build/npm/postinstall.ts b/build/npm/postinstall.ts
index ae2651c..3bc46fa 100644
--- a/build/npm/postinstall.ts
+++ b/build/npm/postinstall.ts
@@ -74,5 +74,7 @@ async function npmInstallAsync(dir: string, opts?: child_process.SpawnOptions):
opts.cwd = root;
- if (process.env['npm_config_arch'] === 'arm64') {
- run('sudo', ['docker', 'run', '--rm', '--privileged', 'multiarch/qemu-user-static', '--reset', '-p', 'yes'], opts);
- run('sudo', ['docker', 'run', '--rm', '--privileged', 'multiarch/qemu-user-static', '--reset', '-p', 'yes'], syncOpts);
- }
+ const emulateArchList = ['arm64', 'arm', 'ppc64', 'riscv64', 's390x', 'loong64'];
+ if (process.env['DISABLE_QEMU'] !== 'true' && !!process.env['npm_config_arch'] && emulateArchList.includes(process.env['npm_config_arch'])) {
+ run('sudo', ['docker', 'run', '--rm', '--privileged', 'tonistiigi/binfmt:latest', '--install', 'all'], opts);
}
+ run('sudo', ['docker', 'run', '--rm', '--privileged', 'tonistiigi/binfmt:latest', '--install', 'all'], syncOpts);
+ }
+
run('sudo', [
'docker', 'run',

View File

@@ -1,8 +1,8 @@
diff --git a/package-lock.json b/package-lock.json
index fd395eb..f56bc78 100644
index bc72a21..a875c97 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18274,6 +18274,7 @@
@@ -20630,6 +20630,7 @@
"node_modules/web-tree-sitter": {
- "version": "0.20.8",
- "resolved": "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.20.8.tgz",
@@ -15,12 +15,12 @@ index fd395eb..f56bc78 100644
+ "license": "MIT"
},
diff --git a/package.json b/package.json
index eb0abcc..40b107a 100644
index d727d5a..ce7ba11 100644
--- a/package.json
+++ b/package.json
@@ -226,2 +226,5 @@
"node-addon-api": "7.1.0"
+ },
@@ -231,2 +231,5 @@
"overrides": {
+ "@vscode/l10n-dev@0.0.35": {
+ "web-tree-sitter": "0.23.0"
}
+ },
"node-gyp-build": "4.8.1",

View File

@@ -12,11 +12,11 @@ index a7142fe..526ca17 100644
+ }
}
diff --git a/src/vs/base/parts/ipc/node/ipc.net.ts b/src/vs/base/parts/ipc/node/ipc.net.ts
index 629f2c4..ec1acba 100644
index e58f678..add8048 100644
--- a/src/vs/base/parts/ipc/node/ipc.net.ts
+++ b/src/vs/base/parts/ipc/node/ipc.net.ts
@@ -774,3 +774,3 @@ function unmask(buffer: VSBuffer, mask: number): void {
@@ -839,3 +839,3 @@ function unmask(buffer: VSBuffer, mask: number): void {
// Related to https://github.com/microsoft/vscode/issues/30624
-export const XDG_RUNTIME_DIR = <string | undefined>process.env['XDG_RUNTIME_DIR'];
+export const XDG_RUNTIME_DIR = <string | undefined>(!!process.env.FLATPAK_ID ? join(process.env['XDG_RUNTIME_DIR'] as string, 'app', process.env.FLATPAK_ID) : process.env['XDG_RUNTIME_DIR']);
-export const XDG_RUNTIME_DIR = process.env['XDG_RUNTIME_DIR'];
+export const XDG_RUNTIME_DIR = !!process.env.FLATPAK_ID ? join(process.env['XDG_RUNTIME_DIR'] as string, 'app', process.env.FLATPAK_ID) : process.env['XDG_RUNTIME_DIR'];

View File

@@ -1,51 +1,17 @@
diff --git a/build/lib/compilation.js b/build/lib/compilation.js
index 61a6d28..831b7c2 100644
--- a/build/lib/compilation.js
+++ b/build/lib/compilation.js
@@ -145,24 +145,3 @@ function compileTask(src, out, build, options = {}) {
}
- // mangle: TypeScript to TypeScript
- let mangleStream = event_stream_1.default.through();
- if (build && !options.disableMangle) {
- let ts2tsMangler = new index_1.Mangler(compile.projectPath, (...data) => (0, fancy_log_1.default)(ansi_colors_1.default.blue('[mangler]'), ...data), { mangleExports: true, manglePrivateFields: true });
- const newContentsByFileName = ts2tsMangler.computeNewFileContents(new Set(['saveState']));
- mangleStream = event_stream_1.default.through(async function write(data) {
- const tsNormalPath = ts.normalizePath(data.path);
- const newContents = (await newContentsByFileName).get(tsNormalPath);
- if (newContents !== undefined) {
- data.contents = Buffer.from(newContents.out);
- data.sourceMap = newContents.sourceMap && JSON.parse(newContents.sourceMap);
- }
- this.push(data);
- }, async function end() {
- // free resources
- (await newContentsByFileName).clear();
- this.push(null);
- ts2tsMangler = undefined;
- });
- }
return srcPipe
- .pipe(mangleStream)
.pipe(generator.stream)
diff --git a/build/lib/compilation.ts b/build/lib/compilation.ts
index a1de9f1..084fd2f 100644
index 948c6b4..66ecdd3 100644
--- a/build/lib/compilation.ts
+++ b/build/lib/compilation.ts
@@ -18,4 +18,2 @@ import File from 'vinyl';
import * as task from './task';
-import { Mangler } from './mangle/index';
-import { RawSourceMap } from 'source-map';
import ts = require('typescript');
@@ -133,27 +131,3 @@ export function compileTask(src: string, out: string, build: boolean, options: {
@@ -131,27 +131,3 @@ export function compileTask(src: string, out: string, build: boolean, options: {
- // mangle: TypeScript to TypeScript
- let mangleStream = es.through();
- if (build && !options.disableMangle) {
- let ts2tsMangler = new Mangler(compile.projectPath, (...data) => fancyLog(ansiColors.blue('[mangler]'), ...data), { mangleExports: true, manglePrivateFields: true });
- let ts2tsMangler: Mangler | undefined = new Mangler(compile.projectPath, (...data) => fancyLog(ansiColors.blue('[mangler]'), ...data), { mangleExports: true, manglePrivateFields: true });
- const newContentsByFileName = ts2tsMangler.computeNewFileContents(new Set(['saveState']));
- mangleStream = es.through(async function write(data: File & { sourceMap?: RawSourceMap }) {
- type TypeScriptExt = typeof ts & { normalizePath(path: string): string };
- const tsNormalPath = (<TypeScriptExt>ts).normalizePath(data.path);
- const tsNormalPath = (ts as TypeScriptExt).normalizePath(data.path);
- const newContents = (await newContentsByFileName).get(tsNormalPath);
- if (newContents !== undefined) {
- data.contents = Buffer.from(newContents.out);
@@ -57,7 +23,7 @@ index a1de9f1..084fd2f 100644
- (await newContentsByFileName).clear();
-
- this.push(null);
- (<any>ts2tsMangler) = undefined;
- ts2tsMangler = undefined;
- });
- }
-

View File

@@ -1,110 +1,72 @@
diff --git a/build/gulpfile.extensions.js b/build/gulpfile.extensions.js
index 7826f48..eca4a1d 100644
--- a/build/gulpfile.extensions.js
+++ b/build/gulpfile.extensions.js
@@ -23,2 +23,3 @@ const plumber = require('gulp-plumber');
const ext = require('./lib/extensions');
+const product = require('../product.json');
diff --git a/build/gulpfile.extensions.ts b/build/gulpfile.extensions.ts
index e013781..3caf586 100644
--- a/build/gulpfile.extensions.ts
+++ b/build/gulpfile.extensions.ts
@@ -26,2 +26,3 @@ import * as util from './lib/util.ts';
import watcher from './lib/watch/index.ts';
+import product from '../product.json' with { type: 'json' };
@@ -74,3 +75,3 @@ const compilations = [
@@ -100,3 +101,3 @@ const compilations = [
-const getBaseUrl = out => `https://main.vscode-cdn.net/sourcemaps/${commit}/${out}`;
+const getBaseUrl = out => `https://github.com/VSCodium/sourcemaps/releases/download/${product.quality}-${commit}/${out.replaceAll('/', '-')}`;
-const getBaseUrl = (out: string) => `https://main.vscode-cdn.net/sourcemaps/${commit}/${out}`;
+const getBaseUrl = (out: string) => `https://github.com/VSCodium/sourcemaps/releases/download/${product.quality}-${commit}/extensions-${out.replaceAll('/', '-')}`;
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 10b7b44..79861bf 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -454,3 +454,3 @@ function tweakProductForServerWeb(product) {
diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts
index 0ad08ab..78f17b8 100644
--- a/build/gulpfile.reh.ts
+++ b/build/gulpfile.reh.ts
@@ -494,3 +494,3 @@ function tweakProductForServerWeb(product: typeof import('../product.json')) {
util.rimraf(`out-vscode-${type}-min`),
- optimize.minifyTask(`out-vscode-${type}`, `https://main.vscode-cdn.net/sourcemaps/${commit}/core`)
+ optimize.minifyTask(`out-vscode-${type}`, `https://github.com/VSCodium/sourcemaps/releases/download/${product.quality}-${commit}/core`)
));
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index ed06b6a..9488983 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -147,3 +147,3 @@ gulp.task(bundleVSCodeTask);
diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts
index 187726c..4854af5 100644
--- a/build/gulpfile.vscode.ts
+++ b/build/gulpfile.vscode.ts
@@ -238,3 +238,3 @@ function runTsGoTypeCheck(): Promise<void> {
-const sourceMappingURLBase = `https://main.vscode-cdn.net/sourcemaps/${commit}`;
+const sourceMappingURLBase = `https://github.com/VSCodium/sourcemaps/releases/download/${product.quality}-${commit}`;
const minifyVSCodeTask = task.define('minify-vscode', task.series(
diff --git a/build/gulpfile.vscode.web.js b/build/gulpfile.vscode.web.js
index 295a977..318ce92 100644
--- a/build/gulpfile.vscode.web.js
+++ b/build/gulpfile.vscode.web.js
@@ -140,3 +140,3 @@ const minifyVSCodeWebTask = task.define('minify-vscode-web', task.series(
const isCI = !!process.env['CI'] || !!process.env['BUILD_ARTIFACTSTAGINGDIRECTORY'] || !!process.env['GITHUB_WORKSPACE'];
diff --git a/build/gulpfile.vscode.web.ts b/build/gulpfile.vscode.web.ts
index 3e6b29a..f031b99 100644
--- a/build/gulpfile.vscode.web.ts
+++ b/build/gulpfile.vscode.web.ts
@@ -164,3 +164,3 @@ const minifyVSCodeWebTask = task.define('minify-vscode-web-OLD', task.series(
util.rimraf('out-vscode-web-min'),
- optimize.minifyTask('out-vscode-web', `https://main.vscode-cdn.net/sourcemaps/${commit}/core`)
+ optimize.minifyTask('out-vscode-web', `https://github.com/VSCodium/sourcemaps/releases/download/${product.quality}-${commit}/core`)
));
diff --git a/build/lib/extensions.js b/build/lib/extensions.js
index c80a1be..25cf259 100644
--- a/build/lib/extensions.js
+++ b/build/lib/extensions.js
@@ -75,4 +75,5 @@ const vzip = require('gulp-vinyl-zip');
const root = path_1.default.dirname(path_1.default.dirname(__dirname));
+const product = JSON.parse(fs_1.default.readFileSync(path_1.default.join(root, 'product.json'), 'utf8'));
const commit = (0, getVersion_1.getVersion)(root);
@@ -169,3 +169,3 @@ gulp.task(minifyVSCodeWebTask);
// esbuild-based tasks (new)
-const sourceMappingURLBase = `https://main.vscode-cdn.net/sourcemaps/${commit}`;
+const sourceMappingURLBase = `https://github.com/VSCodium/sourcemaps/releases/download/${product.quality}-${commit}`;
function minifyExtensionResources(input) {
@@ -205,3 +206,3 @@ function fromLocalWebpack(extensionPath, webpackConfigFileName, disableMangle) {
data.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, function (_m, g1) {
- return `\n//# sourceMappingURL=${sourceMappingURLBase}/extensions/${path_1.default.basename(extensionPath)}/${relativeOutputPath}/${g1}`;
+ return `\n//# sourceMappingURL=${sourceMappingURLBase}/extensions-${path_1.default.basename(extensionPath).replaceAll('/', '-')}-${relativeOutputPath.replaceAll('/', '-')}-${g1.replaceAll('/', '-')}`;
}), 'utf8');
const esbuildBundleVSCodeWebTask = task.define('esbuild-vscode-web', () => runEsbuildBundle('out-vscode-web', false, true));
diff --git a/build/lib/extensions.ts b/build/lib/extensions.ts
index 9e7cf9f..eed31ca 100644
index aacf25c..a62f2a7 100644
--- a/build/lib/extensions.ts
+++ b/build/lib/extensions.ts
@@ -30,4 +30,5 @@ const vzip = require('gulp-vinyl-zip');
const root = path.dirname(path.dirname(__dirname));
+const product = JSON.parse(fs.readFileSync(path.join(root, 'product.json'), 'utf8'));
const commit = getVersion(root);
-const sourceMappingURLBase = `https://main.vscode-cdn.net/sourcemaps/${commit}`;
+const sourceMappingURLBase = `https://github.com/VSCodium/sourcemaps/releases/download/${product.quality}-${commit}`;
@@ -32,4 +32,2 @@ const require = createRequire(import.meta.url);
const root = path.dirname(path.dirname(import.meta.dirname));
-// const commit = getVersion(root);
-// const sourceMappingURLBase = `https://main.vscode-cdn.net/sourcemaps/${commit}`;
@@ -179,3 +180,3 @@ function fromLocalWebpack(extensionPath: string, webpackConfigFileName: string,
data.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, function (_m, g1) {
- return `\n//# sourceMappingURL=${sourceMappingURLBase}/extensions/${path.basename(extensionPath)}/${relativeOutputPath}/${g1}`;
+ return `\n//# sourceMappingURL=${sourceMappingURLBase}/extensions-${path.basename(extensionPath).replaceAll('/', '-')}-${relativeOutputPath.replaceAll('/', '-')}-${g1.replaceAll('/', '-')}`;
}), 'utf8');
diff --git a/build/lib/optimize.js b/build/lib/optimize.js
index fbc455b..4e7fe85 100644
--- a/build/lib/optimize.js
+++ b/build/lib/optimize.js
@@ -186,3 +186,3 @@ function bundleTask(opts) {
function minifyTask(src, sourceMapBaseUrl) {
- const sourceMappingURL = sourceMapBaseUrl ? ((f) => `${sourceMapBaseUrl}/${f.relative}.map`) : undefined;
+ const sourceMappingURL = sourceMapBaseUrl ? ((f) => `${sourceMapBaseUrl}-${f.relative.replaceAll('/', '-')}.map`) : undefined;
return cb => {
diff --git a/build/lib/optimize.ts b/build/lib/optimize.ts
index d89d0d6..fca30cf 100644
index f5e812e..f9a4adc 100644
--- a/build/lib/optimize.ts
+++ b/build/lib/optimize.ts
@@ -211,3 +211,3 @@ export function bundleTask(opts: IBundleESMTaskOpts): () => NodeJS.ReadWriteStre
@@ -229,3 +229,3 @@ export function bundleTask(opts: IBundleTaskOpts): () => NodeJS.ReadWriteStream
export function minifyTask(src: string, sourceMapBaseUrl?: string): (cb: any) => void {
- const sourceMappingURL = sourceMapBaseUrl ? ((f: any) => `${sourceMapBaseUrl}/${f.relative}.map`) : undefined;
+ const sourceMappingURL = sourceMapBaseUrl ? ((f: any) => `${sourceMapBaseUrl}-${f.relative.replaceAll('/', '-')}.map`) : undefined;
diff --git a/build/lib/util.js b/build/lib/util.js
index 389b9e0..f80d8e5 100644
--- a/build/lib/util.js
+++ b/build/lib/util.js
@@ -235,4 +235,4 @@ function rewriteSourceMappingURL(sourceMappingURLBase) {
const contents = f.contents.toString('utf8');
- const str = `//# sourceMappingURL=${sourceMappingURLBase}/${path_1.default.dirname(f.relative).replace(/\\/g, '/')}/$1`;
- f.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, str));
+ const fp = path_1.default.dirname(f.relative).replace(/\\/g, '/').replaceAll('/', '-');
+ f.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, (_m, p) => `//# sourceMappingURL=${sourceMappingURLBase}/${fp}-${p.replaceAll('/', '-')}`));
return f;
const target = getBuildTarget();
diff --git a/build/lib/util.ts b/build/lib/util.ts
index 4931342..833091c 100644
index 4203e6e..a01fb78 100644
--- a/build/lib/util.ts
+++ b/build/lib/util.ts
@@ -285,4 +285,4 @@ export function rewriteSourceMappingURL(sourceMappingURLBase: string): NodeJS.Re
const contents = (<Buffer>f.contents).toString('utf8');
@@ -287,4 +287,4 @@ export function rewriteSourceMappingURL(sourceMappingURLBase: string): NodeJS.Re
const contents = (f.contents as Buffer).toString('utf8');
- const str = `//# sourceMappingURL=${sourceMappingURLBase}/${path.dirname(f.relative).replace(/\\/g, '/')}/$1`;
- f.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, str));
+ const fp = path.dirname(f.relative).replace(/\\/g, '/').replaceAll('/', '-');

View File

@@ -29,16 +29,16 @@ index 0000000..1daa1fe
+
+export default codiumCompletionSpec;
diff --git a/extensions/terminal-suggest/src/terminalSuggestMain.ts b/extensions/terminal-suggest/src/terminalSuggestMain.ts
index b0f197f..6884365 100644
index 95654ff..202474b 100644
--- a/extensions/terminal-suggest/src/terminalSuggestMain.ts
+++ b/extensions/terminal-suggest/src/terminalSuggestMain.ts
@@ -10,2 +10,4 @@ import codeCompletionSpec from './completions/code';
@@ -13,2 +13,4 @@ import codeCompletionSpec from './completions/code';
import codeInsidersCompletionSpec from './completions/code-insiders';
+import codiumCompletionSpec from './completions/codium';
+import codiumInsidersCompletionSpec from './completions/codium-insiders';
import codeTunnelCompletionSpec from './completions/code-tunnel';
@@ -64,2 +66,4 @@ export const availableSpecs: Fig.Spec[] = [
@@ -76,2 +78,4 @@ export const availableSpecs: Fig.Spec[] = [
npxCompletionSpec,
+ codiumInsidersCompletionSpec,
+ codiumCompletionSpec,
setLocationSpec,
pnpmCompletionSpec,

View File

@@ -1,9 +1,9 @@
diff --git a/src/vs/platform/update/electron-main/updateService.win32.ts b/src/vs/platform/update/electron-main/updateService.win32.ts
index a2561be..a50958e 100644
index ae4fd9c..3744826 100644
--- a/src/vs/platform/update/electron-main/updateService.win32.ts
+++ b/src/vs/platform/update/electron-main/updateService.win32.ts
@@ -56,3 +56,3 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
@@ -58,3 +58,3 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
get cachePath(): Promise<string> {
- const result = path.join(tmpdir(), `vscode-${this.productService.quality}-${this.productService.target}-${process.arch}`);
+ const result = path.join(tmpdir(), `${this.productService.applicationName}-${this.productService.quality}-${this.productService.target}-${process.arch}`);
return fs.promises.mkdir(result, { recursive: true }).then(() => result);
return mkdir(result, { recursive: true }).then(() => result);

View File

@@ -1,206 +1,203 @@
diff --git a/.npmrc b/.npmrc
index 05f84f8..62dbfd8 100644
index e4a5cc2..e3be238 100644
--- a/.npmrc
+++ b/.npmrc
@@ -1,3 +1,3 @@
disturl="https://electronjs.org/headers"
-target="34.5.1"
+target="34.5.4"
ms_build_id="11369351"
-target="39.2.3"
+target="39.2.7"
ms_build_id="12895514"
diff --git a/build/checksums/electron.txt b/build/checksums/electron.txt
index 9bfbc95..086fa93 100644
index ace84ba..5da4475 100644
--- a/build/checksums/electron.txt
+++ b/build/checksums/electron.txt
@@ -1,75 +1,75 @@
-249f89d35cb6bd74edc07551b141bffc2045847c4cf9e57e21089d5082bdb4b4 *chromedriver-v34.5.1-darwin-arm64.zip
-7ff68fd26f225deaa8c6fbcd76dc80a00f9ef73f9118075f3e2ab54dfb0c810e *chromedriver-v34.5.1-darwin-x64.zip
-749f692603527e8743c81d05eb2de2e281e2b03b148ec00379f13e8da17ca7a4 *chromedriver-v34.5.1-linux-arm64.zip
-14bcc062457cf31d606451aa7fae1baae720a944dead06231fe2a55f17d39966 *chromedriver-v34.5.1-linux-armv7l.zip
-57cf85eb9dafe28ccdd8ba4a095cb1fd5b8c71f0743bf532b132bc45e56630ef *chromedriver-v34.5.1-linux-x64.zip
-e90e10cf45f4aaba1d8b763279b7c4b85e1132bdc9faef834ffda41ee1460df8 *chromedriver-v34.5.1-mas-arm64.zip
-1206e1c71ec0360be9531e48c0292ffac37e40d8d7a48dd38f1108d3d3ccc0c0 *chromedriver-v34.5.1-mas-x64.zip
-1b226994cfa02663f23edfb0c8a4d3e218b7c4d037a90bbb4800a7c396b67d9f *chromedriver-v34.5.1-win32-arm64.zip
-dc38291ccad6f715a82cc2ce0cfffe3bb37612fa86013d405e878ea74e4c5fb8 *chromedriver-v34.5.1-win32-ia32.zip
-3ccc7e4b65adde12e26b7affeea30b9597b8841fc2a4d3c50c042e80b85853ac *chromedriver-v34.5.1-win32-x64.zip
-71fe75d29208ca9e38754d903af4d5d6e80c62b04097605c36ebf722c2447842 *electron-api.json
-009c833bd014b6f873974c5d3189905e705ebcb188a90ae05b60ea252319a46e *electron-v34.5.1-darwin-arm64-dsym-snapshot.zip
-c5f5722c55e75e9860cb203e03626c04f30f272ef17b735946fd723600ee07ea *electron-v34.5.1-darwin-arm64-dsym.zip
-06de49512ac4b0b4e374bdcd296e8c70584fb47207bb6caed9122e3cef5da8f7 *electron-v34.5.1-darwin-arm64-symbols.zip
-78411442b5bd2252cf4605b6a44c35ad6a06807d03c63c61726ad7693c6d5893 *electron-v34.5.1-darwin-arm64.zip
-e90b292974251336ae8990a74977065ac4dd6388836ccd1cfee3a1599a37bd39 *electron-v34.5.1-darwin-x64-dsym-snapshot.zip
-35a0ac52f6036cd0a7d4bc9848477b653095b210497e36797427ff8fe3194c7f *electron-v34.5.1-darwin-x64-dsym.zip
-0457bb7413c770245912342a6dd07c3588f586e8d868e0dd534179e22b07898c *electron-v34.5.1-darwin-x64-symbols.zip
-8d4bc5f4495ef952589891b6c70a86d8a9d143a1d4d90d15dd81926639822031 *electron-v34.5.1-darwin-x64.zip
-73be60acd1f3773f87b283eef8c26e257f16efd46a179c143311b1b9fcb4a61a *electron-v34.5.1-linux-arm64-debug.zip
-53677a8f437b36b79481eb6c6f9f7557606af04ef94cce751620e8206dad36a8 *electron-v34.5.1-linux-arm64-symbols.zip
-4c0d5833faa01cc3a586087b82f719c2fe331515d26bb3fa098dc79bd3ea153f *electron-v34.5.1-linux-arm64.zip
-73be60acd1f3773f87b283eef8c26e257f16efd46a179c143311b1b9fcb4a61a *electron-v34.5.1-linux-armv7l-debug.zip
-6eb39e79bd52f566d18a1140242c7484b89d7cd77573b92fc2e2993b51d6fbf1 *electron-v34.5.1-linux-armv7l-symbols.zip
-7ed517eeaff56960a01fe53fc445e4118135eeb8267d61c37ef9df943dcc35fb *electron-v34.5.1-linux-armv7l.zip
-582a2206cf1e09baa8511ca21b697cc49fddd76ef7723406b449b130b3d21730 *electron-v34.5.1-linux-x64-debug.zip
-7b5d60f3d6c4ef84b0855148f14295624527cc27ab395bf54640a06eb3f7a5b0 *electron-v34.5.1-linux-x64-symbols.zip
-3ae6f75fa08f5c1bdb7bbcec4dc9cf7d7f53ffcf6a4292e4a482b2ce515505e7 *electron-v34.5.1-linux-x64.zip
-e6ff5c411167c0cf8c82cd737f8d0c863f4371e8e1fe213d04b502584411d239 *electron-v34.5.1-mas-arm64-dsym-snapshot.zip
-8d1cb700f23d8ac7ec078d4d5d07018dfae594346e7bc5652356a5fe242a2b44 *electron-v34.5.1-mas-arm64-dsym.zip
-3b74614ef81382e63f189aceb87f6c3830a23ffed046d06f672d0c1a1b361e96 *electron-v34.5.1-mas-arm64-symbols.zip
-eabc29959b914f623f5f2e4011cb4e35182ed9528dc30664e59ca37c806c1d7d *electron-v34.5.1-mas-arm64.zip
-ee3de3f5a96efb0197022557ec2de36d92d7423426636577864b1ae744053dea *electron-v34.5.1-mas-x64-dsym-snapshot.zip
-a3db9cc489720701e3f35d2f7425c97e24f74fdb78a38bc0950b68b3f82aebb2 *electron-v34.5.1-mas-x64-dsym.zip
-a9131003b1ac4a3c3327ff405e1cd8f3e61dc8a73cfae3e05cb5eb0f2d872bee *electron-v34.5.1-mas-x64-symbols.zip
-1b44d42dbe9cb6bc5c2fb77f708d639e01f8ec6f74b95710fc6c8dbd70181f3b *electron-v34.5.1-mas-x64.zip
-4495d8bf4d3dbb5ebc3ad135f4658e09d706368d002af9f24d236e1a0a28e994 *electron-v34.5.1-win32-arm64-pdb.zip
-2c31fa61d24e736f3e327eba4d354c09471fba5aa277e215f7e2ea275b323a80 *electron-v34.5.1-win32-arm64-symbols.zip
-c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.5.1-win32-arm64-toolchain-profile.zip
-c0cff1c83094a430f1b202bb5035b51ebcefa54cd53d798bb63de9cb96abf223 *electron-v34.5.1-win32-arm64.zip
-d662fb7afc288aa15d929fecbb391c7067448ea86b4bf01e941fa8da744a8167 *electron-v34.5.1-win32-ia32-pdb.zip
-2cd1f41a3297fc271e426bd0cc5f8c3474f73438a7a303186701cb7d8b26bdb6 *electron-v34.5.1-win32-ia32-symbols.zip
-c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.5.1-win32-ia32-toolchain-profile.zip
-cf86edf6cdb47d5cfb00c4eb68f7a18d70bf9e33f1f6a0481d51673cf6af7050 *electron-v34.5.1-win32-ia32.zip
-9dd0e6f6ef53f8bd4d7ecd97a3bfc7e8a98de8771986071692afc57d57d199d6 *electron-v34.5.1-win32-x64-pdb.zip
-f50ab96420bddd43bd5dbd56130cfcd69eea2dba18bfd3c8c3b4bb189bb033e6 *electron-v34.5.1-win32-x64-symbols.zip
-c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.5.1-win32-x64-toolchain-profile.zip
-da606d1a085a52ddf5592110b58284fc3bf49f273f6f2e7d6a8341c98af8498e *electron-v34.5.1-win32-x64.zip
-793ae7822cbdad6270c318f3c93c0e8b4f9276dea6dd87db2d1297cadc7381c6 *electron.d.ts
-1d1465b4f6a3919a6e8e2fb8612b29f61b09d80f386a8fa2b806859b9be0d0bf *ffmpeg-v34.5.1-darwin-arm64.zip
-e138b6422dd1648cbe817b99f59476c65ed9946d50e50094124eae660b416378 *ffmpeg-v34.5.1-darwin-x64.zip
-346101611df565cabcfaa3515b1db3f70d0891ba8f1241074dd09b69e12630d2 *ffmpeg-v34.5.1-linux-arm64.zip
-5c77c712ee93bd26706daa78f0651d9b4ba8e4b46a115908f29d2742a2e1b9f0 *ffmpeg-v34.5.1-linux-armv7l.zip
-f5ab70d399d528450c9499966e88ce02a368bb8c7dd7ac0676a6628fa29b3f14 *ffmpeg-v34.5.1-linux-x64.zip
-10e3424c01b946274fa8c651d4ea79032637feca4c8712ebb1c00f392711594f *ffmpeg-v34.5.1-mas-arm64.zip
-4db0373915c2c2a055bd04755acdbcd08e00456f1fb92fefc0e05cd7fb48e4fa *ffmpeg-v34.5.1-mas-x64.zip
-c8cca82fc9315f86ffb60b39e824ebec7f98361f8773ea0618d9feea92b88412 *ffmpeg-v34.5.1-win32-arm64.zip
-c8cca82fc9315f86ffb60b39e824ebec7f98361f8773ea0618d9feea92b88412 *ffmpeg-v34.5.1-win32-ia32.zip
-c8cca82fc9315f86ffb60b39e824ebec7f98361f8773ea0618d9feea92b88412 *ffmpeg-v34.5.1-win32-x64.zip
-9ae3a56bf29d9704cd8cf32924aad89414f28d439e61dd54bdd8b4259b8d0b1d *hunspell_dictionaries.zip
-691e23913b7dbde1f9c9b6e9f13f06353d5c7927cbab6d48b7de43e76e5eacd8 *libcxx-objects-v34.5.1-linux-arm64.zip
-eaaa18779a96873daeece21c7c823d1f5d4759f8eca79dbbbf2055635df6112f *libcxx-objects-v34.5.1-linux-armv7l.zip
-6a2e3dfcea9d0582ecbc2a6be124f0e830e2194111bd9aa6a9843cb956c946c4 *libcxx-objects-v34.5.1-linux-x64.zip
-d4b70d94523ebd770009dba04c842450539a9bdc856de660a7391620d3bcc1fb *libcxx_headers.zip
-0ed01bc1908fd8f7519ccdf636b5732c6fe2c095a6dc35a13eb6c79b9e87d7d1 *libcxxabi_headers.zip
-f633cd0df0b08a15938ccdc77480bc28eb96fd85936ef76c343cc3f47fe74f3c *mksnapshot-v34.5.1-darwin-arm64.zip
-a8643285a2386960ceb608ff34d6dac33942142e821e2e0c670b282389a87e53 *mksnapshot-v34.5.1-darwin-x64.zip
-70863b79d4b7ab75d013a9192f7b23165e3e523b243632c7b55418767527e022 *mksnapshot-v34.5.1-linux-arm64-x64.zip
-c30319434ea16416c38bbdf847432fd37fd8e1aa78c1c22b6345d02e3743c016 *mksnapshot-v34.5.1-linux-armv7l-x64.zip
-e882e32b67501d36710da396167274158c1940afe67459ffa1d9df534a8f6df1 *mksnapshot-v34.5.1-linux-x64.zip
-af1d08dbd3c572ae10db0d24203a28d83c87e92e966064134ec5d7770c74e3ac *mksnapshot-v34.5.1-mas-arm64.zip
-238058875abebcb9233e609fadad76e85b79530f1bdfb60498b144fec82ff8fc *mksnapshot-v34.5.1-mas-x64.zip
-779e494cf2088ee386bb3ffd68d5efc2de3d43e5a2e6a5a768638799c460fdab *mksnapshot-v34.5.1-win32-arm64-x64.zip
-9f9790fab86209ca76ecfae3e20dc028bc0e49574872f6ac17b8856093811357 *mksnapshot-v34.5.1-win32-ia32.zip
-5c39077fd59426108f15e4981c7be5ebe56aa706b9d166853225de882fee8d6e *mksnapshot-v34.5.1-win32-x64.zip
+f68064647df820d9f207d039850cb055fddb2539a8b01838a5af787d9413dde1 *chromedriver-v34.5.4-darwin-arm64.zip
+7bf6fe1aa4be3a9b8a6583667a8c81c1bb7e01ec62a886c2fecd1fac108fa8ab *chromedriver-v34.5.4-darwin-x64.zip
+d5eb1a8e1748b74341acab18eb928a5e139f9a530e153c1c59b6e8383ff284bd *chromedriver-v34.5.4-linux-arm64.zip
+5d8f205a4b326b65528bf24988457129d40f5c393b0af43410d28e252bc2170d *chromedriver-v34.5.4-linux-armv7l.zip
+08d86fb4cd0a2ae190ef43de117fa8a1b02079b302709fc0d3d7df5b60869429 *chromedriver-v34.5.4-linux-x64.zip
+8ef6b029dbb939162ef43bfceffd14f36f4674c6ac28daf2be9f29fd58eab343 *chromedriver-v34.5.4-mas-arm64.zip
+53318dcb6d29f9e23efe88fda1fc88bc9d22aaa588538bfde42ecbc9f8c61306 *chromedriver-v34.5.4-mas-x64.zip
+130d0fc9f96c83486ee8e37121dc1a412bfa71f65aa8ad67f6f4e4ed30cc4d1e *chromedriver-v34.5.4-win32-arm64.zip
+00ef5fc423142150758fdb1968f0b0db996ae035c211df164e7af9422743dfae *chromedriver-v34.5.4-win32-ia32.zip
+01f6371487d173f0b2d8b41d7aab5affa9ac7f0cc5154f1ee39ba2120e36026d *chromedriver-v34.5.4-win32-x64.zip
+7cfbc13990047fe5917ad9cf3269f83c4759551a5c300011bf8eda3af96efabb *electron-api.json
+194074a282320343e0997c9071f70f64cafcd6113f7741a628c45249105a0801 *electron-v34.5.4-darwin-arm64-dsym-snapshot.zip
+cb2deebc1596cfdea6889f37c7827bcd31af9645209288b3a92d0f25b78761e8 *electron-v34.5.4-darwin-arm64-dsym.zip
+f2402094acdc73d8123a8535f623934948662316a340ec767c3ddfd75c73dd9b *electron-v34.5.4-darwin-arm64-symbols.zip
+92dc77f80fde9267ce2db8e7094c6e49b1766a19c3da90c25e2b5024b7a4501b *electron-v34.5.4-darwin-arm64.zip
+8ef7c227cce20a4da7dbfc85f83f4d1af0a8d698cc9e8cea8487571e412b1591 *electron-v34.5.4-darwin-x64-dsym-snapshot.zip
+276dce4418ad0c630c82757a5242575eff67793a10151a65c0ed81965cbf2b1c *electron-v34.5.4-darwin-x64-dsym.zip
+a7a57b5e02f86e545dadf479e5c2652760c1cb2f9738e0f75f3d3db06e40ee1d *electron-v34.5.4-darwin-x64-symbols.zip
+c631318672a1b6ecc9835ccf1501562380728a044a78de2fa105608a6610fa01 *electron-v34.5.4-darwin-x64.zip
+fd49778abd8eb28b00241137db97c5c9eaf27a52aadcbff3b8832d1eedfec954 *electron-v34.5.4-linux-arm64-debug.zip
+cef68467ee2d5e4ed0f60c44168b0e1c885582e6ff2dc6773848b6983fee5c08 *electron-v34.5.4-linux-arm64-symbols.zip
+f4b4dcc92a0f4bf92c68571868dd13d49b33bca51f7b1352319f55f5abbf3505 *electron-v34.5.4-linux-arm64.zip
+fd49778abd8eb28b00241137db97c5c9eaf27a52aadcbff3b8832d1eedfec954 *electron-v34.5.4-linux-armv7l-debug.zip
+2a3a78b068ac2cbe223d9aec30012125586ea84e357ba05cab9def032ce649c5 *electron-v34.5.4-linux-armv7l-symbols.zip
+048256f513e036df0f056c32b249b0ca48f6c3c0481b1e6bdc686df409289f8d *electron-v34.5.4-linux-armv7l.zip
+6e108ee8b073619bf0760947f4a71c0846602aa18820593566362eaadc4f8ff5 *electron-v34.5.4-linux-x64-debug.zip
+cc962ac6ec063d6cb222892e0e0dc1d9efdb64ac2086790e35d61f035b6d31fd *electron-v34.5.4-linux-x64-symbols.zip
+c8c871ef0cf83e1e937afa620e9eb2fa7fc22f5a1302e9ec666923fc22bc0bd0 *electron-v34.5.4-linux-x64.zip
+4131d194d5e7be6e1c2b6e43fd115f679264df397a1bbf653c1bbbbb83109cc0 *electron-v34.5.4-mas-arm64-dsym-snapshot.zip
+c252bc1b97bcc50615ac3b1296152481b4deaa7f79f6b0e42a56614991695413 *electron-v34.5.4-mas-arm64-dsym.zip
+1a435e5c0db5a52b607b57e5627d2862d67826a732ce4c2db9ecc86ff843ffd0 *electron-v34.5.4-mas-arm64-symbols.zip
+a309cc5d77994e27c2bdd2d753642dd217e909ca0d1de336d2f72f4f89bdac6f *electron-v34.5.4-mas-arm64.zip
+4388832d22a4f10ced28ed15daa254cb3805dbb0e33f2816a74c7b82dca93926 *electron-v34.5.4-mas-x64-dsym-snapshot.zip
+c6d7c1b5c605db62b25bb5ee0bd6159b9e063019d970e418e3c5773c8074e6b6 *electron-v34.5.4-mas-x64-dsym.zip
+539cd04e89ad98afa71159ba6e7e001387a5fc22ca9a1421890d8be0e1cbf8bd *electron-v34.5.4-mas-x64-symbols.zip
+c8319f49a04c9de7792225847f0f52358c0cdeedbc83dd8edc1949d917d3d377 *electron-v34.5.4-mas-x64.zip
+e5331a5cf9d100982ae15dddad4abdaedf5d7976f325af4c39d5bdd094122880 *electron-v34.5.4-win32-arm64-pdb.zip
+3e87f89afc24ce72b8dd8b7df56561dd7a5474cfe8df3788a94bbc5cf446fd87 *electron-v34.5.4-win32-arm64-symbols.zip
+c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.5.4-win32-arm64-toolchain-profile.zip
+912346508a25c56a0f4a5eeda466bb145cabcbff9e68b0f8759bf8847e01dab3 *electron-v34.5.4-win32-arm64.zip
+f98be086997be9534e991a1374755cfcfbbf9f53a95ab17e9291ef224370da79 *electron-v34.5.4-win32-ia32-pdb.zip
+aaa12a153b0bb2746cf7acd8f994a2c714d27791393383e1e78403de16388131 *electron-v34.5.4-win32-ia32-symbols.zip
+c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.5.4-win32-ia32-toolchain-profile.zip
+19f272b112ad2b2468caa3a01ceaa0f4ab83e100a0decdda36b261c0b584e848 *electron-v34.5.4-win32-ia32.zip
+2bac4be5bed9eff8a7adb3732c112beaf06a643f8c8b91c02cf226101bee2ca3 *electron-v34.5.4-win32-x64-pdb.zip
+3eb34ea1553ccfbd33a95c65827dac1d07119ede1749b8010a113a1693b80394 *electron-v34.5.4-win32-x64-symbols.zip
+c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.5.4-win32-x64-toolchain-profile.zip
+42c05407af7584c9b8134647b7f217ae683c3a04991d3de7524094cceff95505 *electron-v34.5.4-win32-x64.zip
+9a321b11432efca3d64439b1a398911de27c33fab0d6c3458924f5c71088b046 *electron.d.ts
+9483ab113a02e4520c20ea9d1b4464f0f677a4f9a408b0df12632a9e3ef4bade *ffmpeg-v34.5.4-darwin-arm64.zip
+c2fb961e4219f41772c796db759703240bfea2251366e6a77580805a70a8ecfe *ffmpeg-v34.5.4-darwin-x64.zip
+346101611df565cabcfaa3515b1db3f70d0891ba8f1241074dd09b69e12630d2 *ffmpeg-v34.5.4-linux-arm64.zip
+5c77c712ee93bd26706daa78f0651d9b4ba8e4b46a115908f29d2742a2e1b9f0 *ffmpeg-v34.5.4-linux-armv7l.zip
+f5ab70d399d528450c9499966e88ce02a368bb8c7dd7ac0676a6628fa29b3f14 *ffmpeg-v34.5.4-linux-x64.zip
+c7d14c50640283759e21932d3c478b3bad01e15add490efb3fc18446c32a5fe1 *ffmpeg-v34.5.4-mas-arm64.zip
+944918f694a9c37a74faee19feb989c02b78aaf32bfaa945ccce688fa76126ce *ffmpeg-v34.5.4-mas-x64.zip
+39d841fb03d07e6831533c29bf55446f16a2116a5f02beb1022b68232bac6a55 *ffmpeg-v34.5.4-win32-arm64.zip
+39d841fb03d07e6831533c29bf55446f16a2116a5f02beb1022b68232bac6a55 *ffmpeg-v34.5.4-win32-ia32.zip
+39d841fb03d07e6831533c29bf55446f16a2116a5f02beb1022b68232bac6a55 *ffmpeg-v34.5.4-win32-x64.zip
+2caad55fb223f7aa9652f9b68ce29440c8c714e9be65ff657682dc4f9a05d67a *hunspell_dictionaries.zip
+f584b71abbbb021e1002fdc85d67773898219af2982209abfff4f92f8b255243 *libcxx-objects-v34.5.4-linux-arm64.zip
+51e2db3cb02ab656404d7a28beab866d07b59dc2cc3127e5984ec5397f0f43d8 *libcxx-objects-v34.5.4-linux-armv7l.zip
+6e6ca30cdedb38b9bfbcf79d8f14f466ab023145c464c1f75d581482e9fe601f *libcxx-objects-v34.5.4-linux-x64.zip
+3191ca448f1978a80181ab0e31ecd7c1fbfe9cd409018b82f3879c0b2b299fc7 *libcxx_headers.zip
+6afe922a6e3006d40a5342719af3d40de669bb4e03aa938816f3732901677407 *libcxxabi_headers.zip
+6d3bed9a1eb9e6692f9c936336d65d4cc1f43401b5570e75b8e2838605057f88 *mksnapshot-v34.5.4-darwin-arm64.zip
+8022267c02204f75495a23177a144af4bdce8a56aa89b918df127e4b98cb7e2d *mksnapshot-v34.5.4-darwin-x64.zip
+4901999d515c571a9882a50fb6b92e12423c6fe3775d1d7574bdaf8cc9fd32bd *mksnapshot-v34.5.4-linux-arm64-x64.zip
+723c47202c2553c930057328be3ddfcef53da9e71140e8ba581295e3000dde00 *mksnapshot-v34.5.4-linux-armv7l-x64.zip
+0e8b27412c7a223035d16599134f783e9d77b9372898e64b45401e9c3cace29a *mksnapshot-v34.5.4-linux-x64.zip
+2d194587b295c6119b690917c1508d7ed8ee6e2798778afd6de5114cae1bd9b9 *mksnapshot-v34.5.4-mas-arm64.zip
+8e3c743227136f327e928bca25d8fe16a8f003feb33bb936dda4fb1f20765a88 *mksnapshot-v34.5.4-mas-x64.zip
+669c3375bac1ee3b2c8737432d0d2a6e2dc4d44f0d9fa1aa6a1aaf10b6db8224 *mksnapshot-v34.5.4-win32-arm64-x64.zip
+3a54ef58fb4cfc3e2f4b006f96b260e2ac980203a653ad6c1d2bd24d004106dc *mksnapshot-v34.5.4-win32-ia32.zip
+20ec7d86c5f42061c544a2461b6a35a2d69a38cbf69418043ed73856c2ac2a95 *mksnapshot-v34.5.4-win32-x64.zip
-1e88807c749e69c9a1b2abef105cf30dbec4fddc365afcaa624b1e2df80fe636 *chromedriver-v39.2.3-darwin-arm64.zip
-5cadee0db7684ae48a7f9f4f1310c3f6e1518b0fa88cf3efb36f58984763d43d *chromedriver-v39.2.3-darwin-x64.zip
-8de5ed25a12029ca999455c1cadf28341ec5e0de87a3a0c27dbb24df99f154b1 *chromedriver-v39.2.3-linux-arm64.zip
-766b16d8b1297738a0d1fa7e44d992142558f6e12820197746913385590f033e *chromedriver-v39.2.3-linux-armv7l.zip
-f35049fe3d8dbfdb7c541b59bdca6982b571761bb8cb7fc85515ceaea9451de9 *chromedriver-v39.2.3-linux-x64.zip
-bffe049ac205d87d14d8d2fb61c8f4dfd72b6d60fcd72ebedf7ef78c90ed52d9 *chromedriver-v39.2.3-mas-arm64.zip
-95a7142ba2ba6a418c6d804729dbe4f1fee897cd9ecaf32e554bb9cabff52b9c *chromedriver-v39.2.3-mas-x64.zip
-da1a59e49c16f7b0924b8b43847a19c93110f7d3b5d511cc41d7ec43a5d3807a *chromedriver-v39.2.3-win32-arm64.zip
-9ba84c1e03e31dd630439d53c975b51c21aa4038526dc01970b94464303db5c7 *chromedriver-v39.2.3-win32-ia32.zip
-82d88829e894277d737188afe22a2c82611107f7b31aeb221ae67e56a580dceb *chromedriver-v39.2.3-win32-x64.zip
-aca80a76b97d4b0aa3001882bd8cb7a8fb3f1df75cbc4f0d74eaad0c9df53c9b *electron-api.json
-0fb6f376da5f1bb06125134cd8e33d79a76c4d47b0bc51d20c3359e092095b98 *electron-v39.2.3-darwin-arm64-dsym-snapshot.zip
-6a9e67878637191edcefbd36b070137c3ca4f674307c255864eb9720128905c4 *electron-v39.2.3-darwin-arm64-dsym.zip
-30fd6a23a4a70de3882525c1666af98a2cf07e0826c54bef8f466efb25b1d2ec *electron-v39.2.3-darwin-arm64-symbols.zip
-2128a27c1b0fd80be9d608fb293639f76611b4108eca1e045c933fd04097a7b1 *electron-v39.2.3-darwin-arm64.zip
-68435db35b408d7eb3b9f208f2a7aa803bb8578f409ee99bab435118951a21a5 *electron-v39.2.3-darwin-x64-dsym-snapshot.zip
-59e821dbe0083d4e28a77dff5f72fa65c0db7e7966d760ebb5a41af92da43958 *electron-v39.2.3-darwin-x64-dsym.zip
-cdbe6988a9c9277d5a1acd2f3aaf08e603050f3dae0c10dee4b10d7a6f7cf818 *electron-v39.2.3-darwin-x64-symbols.zip
-f8085a04dc35bfe0c32c36e6feffde07de16459bf36dfab422760181717f5ac0 *electron-v39.2.3-darwin-x64.zip
-ce57eb6bd0ddfa1d37d8a35615276aeb60c19ae0636f21da3270cf07844074b4 *electron-v39.2.3-linux-arm64-debug.zip
-d2652381b24dc05c57a4ce4835b6efc796e6af14419ec80a9ab31f1c3c53f143 *electron-v39.2.3-linux-arm64-symbols.zip
-c58c5904d6015cbbfa5f04fbda5c83b9a276a3565b5f3fa166795c789b055cdd *electron-v39.2.3-linux-arm64.zip
-f0f0be5ea43c0fe84b9609dd5d2b98904c2d4bb8ced9c7c72b72cef377f2734a *electron-v39.2.3-linux-armv7l-debug.zip
-f08ae5371aca8a9f3775a6855c74da71d8817bd9f135c3ba975d428d14f3c42f *electron-v39.2.3-linux-armv7l-symbols.zip
-d7c2f0b5038c49b1e637f8dbda945be4e6f3a6d7ebf802543e6ef5093c9641ff *electron-v39.2.3-linux-armv7l.zip
-aa8b9e4b5eed3a0d2271c01d34551d7dc3e9be30a68af06604c1e2cd3cf93223 *electron-v39.2.3-linux-x64-debug.zip
-d5ebf9628e055b03c90d2d6d4ed86f443b900e264ff34061c953541e27fad5f9 *electron-v39.2.3-linux-x64-symbols.zip
-5eb51ebcb60487c4fc3a5b74ffb57a03eefd48def32200adf310ffaba4153d64 *electron-v39.2.3-linux-x64.zip
-f6cc53c0a45c73779c837d71693f54cc18b12b7148c82c689e2b059772182b84 *electron-v39.2.3-mas-arm64-dsym-snapshot.zip
-0caf9b7b958a7d2ba7e6f757f885842efda3ebc794a2ac048b90cde2926281ee *electron-v39.2.3-mas-arm64-dsym.zip
-c3164da6588c546e728b6fa0754042328cdb43e28dbb0fbcfbda740ed58038fe *electron-v39.2.3-mas-arm64-symbols.zip
-36ea0a98a0480096b4bc6e22c194e999cdfd7f1263c51f08d2815985a8a39ef7 *electron-v39.2.3-mas-arm64.zip
-73d356aa3b51cb261d30f0c27ce354b904d17c3c05c124a1f41112d085e66852 *electron-v39.2.3-mas-x64-dsym-snapshot.zip
-083f53e15a93404b309754df6b5e785785b28e01fdab08a89a45e5024f44e046 *electron-v39.2.3-mas-x64-dsym.zip
-cdd8aaf3b90aedc8c09a44efa03ec67e8426102fad7333ff6bfc257dc6fa01b7 *electron-v39.2.3-mas-x64-symbols.zip
-517d26f9b76b23976d0fc1dcc366e2b50b782592d9b0fc1d814dd1e7ce66efef *electron-v39.2.3-mas-x64.zip
-1a83af2259feb361f7ceb79e047b701ea8297d616487d9d6a79530014d5000c7 *electron-v39.2.3-win32-arm64-pdb.zip
-a154f036378a81859804f660773f6d434770fc311af86dfe01ace5346b9dc788 *electron-v39.2.3-win32-arm64-symbols.zip
-4aae37230f86b1590f102aa038268299bfb55ce2bf3b76ac4d6159e7b6a69f8e *electron-v39.2.3-win32-arm64-toolchain-profile.zip
-b68d623d70c4d0ed76c979027d2a4f6a16bc8dee6f243f5bc2064b4bb52bb34d *electron-v39.2.3-win32-arm64.zip
-be73842257d098ac911b3363e0c11b1d51ab8f6ebd641e512a2e15ccbea73193 *electron-v39.2.3-win32-ia32-pdb.zip
-5f65391f51b5d46d5e0ec7018f3febc0f5b6f072b57310d6d6c9b014de911ff4 *electron-v39.2.3-win32-ia32-symbols.zip
-4aae37230f86b1590f102aa038268299bfb55ce2bf3b76ac4d6159e7b6a69f8e *electron-v39.2.3-win32-ia32-toolchain-profile.zip
-6668fadbdd0283225f4bc60c711f8cd8ac316f43f486cd8a1f62a6a35f89cf7a *electron-v39.2.3-win32-ia32.zip
-430aa905803772476fc1f943e87e4a319d33880d88e08472504531b96834dff1 *electron-v39.2.3-win32-x64-pdb.zip
-9adb254e6ee0d96311cc8056049814436b7e973757d026aac3b533820be027ec *electron-v39.2.3-win32-x64-symbols.zip
-4aae37230f86b1590f102aa038268299bfb55ce2bf3b76ac4d6159e7b6a69f8e *electron-v39.2.3-win32-x64-toolchain-profile.zip
-d4365ad128bbdcb3df99dc4a0ad9de85c5e920903070a473b55377253b6c3fdd *electron-v39.2.3-win32-x64.zip
-feb2f068cd1e2f70bdd7816c13e58dcff9add18fdc8c8e19145a5fd343be541a *electron.d.ts
-4fe4db7f974c64497ddc07c3955a7d83dcfeba61bcec704b33638a4848038d49 *ffmpeg-v39.2.3-darwin-arm64.zip
-8fa2eb8ce5bdf2ecc4cf1f5ebc0f46a4e466fb4841513d482b99838b265995af *ffmpeg-v39.2.3-darwin-x64.zip
-bc72228a7380bc491783602d823bbe2d75e9e417d9b93a40a64be6ff5e3a1bcc *ffmpeg-v39.2.3-linux-arm64.zip
-322698b5ebfae62c34e98c2589b0906b99c15a8181ca3b6d1ffe166ec7d99ab1 *ffmpeg-v39.2.3-linux-armv7l.zip
-40d23294d7bcc48cb3f647f278672021e969a6332cd3cbb06ee681833759626a *ffmpeg-v39.2.3-linux-x64.zip
-4fe4db7f974c64497ddc07c3955a7d83dcfeba61bcec704b33638a4848038d49 *ffmpeg-v39.2.3-mas-arm64.zip
-8fa2eb8ce5bdf2ecc4cf1f5ebc0f46a4e466fb4841513d482b99838b265995af *ffmpeg-v39.2.3-mas-x64.zip
-d324af171e0ae820ec72075924ace2bda96e837ccc79e22b652dda6f82b673b6 *ffmpeg-v39.2.3-win32-arm64.zip
-d982077305d0e4296bed95eb7d2f1048a90b06cfb84d5ddf2a1928e1f07c4dba *ffmpeg-v39.2.3-win32-ia32.zip
-fa65c30f970f9724f4353d068a640592b09a15593b943fa7544cd07e9cace90e *ffmpeg-v39.2.3-win32-x64.zip
-244cd79cf68540e83449ad7d73183416413b3d603cee4496ec07705cbd9338ee *hunspell_dictionaries.zip
-f995e05259eeae64f0e6fbb6d2863aa2fc5846e3ff2dfb3cd22defc3bbbb68d7 *libcxx-objects-v39.2.3-linux-arm64.zip
-3607b4a15aa5f2dbd9e2338ca5451ad8ff646bdac415f9845352d53be1c26ddf *libcxx-objects-v39.2.3-linux-armv7l.zip
-b5020533566dbf22b0b890caa766eb2f4d11675fb1c79c2f41bc54da45a34fc2 *libcxx-objects-v39.2.3-linux-x64.zip
-919a2cc35920b21fbcc5834e858c400f51b607f084c593883c637dba27b9d29a *libcxx_headers.zip
-34e4b44f9c5e08b557a2caed55456ce7690abab910196a783a2a47b58d2b9ac9 *libcxxabi_headers.zip
-661d3578cabe5c98d806d5eeeaee48ac0c997114b9cd76388581e58f6d1c2ce1 *mksnapshot-v39.2.3-darwin-arm64.zip
-c3032c90522e4491e3de641fade3c90be109269108d4ff39b55dbf7331e6eb9a *mksnapshot-v39.2.3-darwin-x64.zip
-bcd8fb45f3b093208346dc2dd2e0b5b70d117e26a70b9619921b26a7f99ba310 *mksnapshot-v39.2.3-linux-arm64-x64.zip
-647762d3d8b01b5123ec11ea5b6984d7b78a26c79ea4d159a3b9fa780de03321 *mksnapshot-v39.2.3-linux-armv7l-x64.zip
-86c0febd8e9ddd8b700c6fb633ec1406bf4fe19ddc2801cb50c01ad345c8ce6e *mksnapshot-v39.2.3-linux-x64.zip
-3676ffc5f489b7d7faafe36fdb5f0f4ce98c8d6fcedfacf6feded7f21b2a50ea *mksnapshot-v39.2.3-mas-arm64.zip
-728936a18c11727d32730c89060dca2d998e7df9159f12bcba2bdf1b51584aad *mksnapshot-v39.2.3-mas-x64.zip
-a3ef9ab1ad5c8172c029dcc36abdc979ecf01f235516120f666595d4d5d02aee *mksnapshot-v39.2.3-win32-arm64-x64.zip
-02584df98255591438ffcc6589bd1ee60af8b8897d08079e7a7dd054e09614fe *mksnapshot-v39.2.3-win32-ia32.zip
-d4dd9de8637d7d8240b7a0686916c0fe84058ad00db9422f5491fbbd7a53cf4b *mksnapshot-v39.2.3-win32-x64.zip
+ab4c5ce64b92082b15f11ed2a89766fa5542b33d656872678ca0aee99e51a7c8 *chromedriver-v39.2.7-darwin-arm64.zip
+976f03f6e5e1680e5f8449bd04da531aabec0b664ff462a14f0d41fad0b437af *chromedriver-v39.2.7-darwin-x64.zip
+28649b04333820f826ea658d18f8111e0a187b3afc498af05b5c59b27ac00155 *chromedriver-v39.2.7-linux-arm64.zip
+149033ccf7f909214c7d69788bdef2e4ce164cae1091a2f8220f62e495576f9b *chromedriver-v39.2.7-linux-armv7l.zip
+6a071551518eddc688dd348d3e63b0c55f744589a041943e5706bebfd5337f19 *chromedriver-v39.2.7-linux-x64.zip
+824ea4699fd6aa6822e453496ebf576174d04e0f0991843b77eb346a842725bc *chromedriver-v39.2.7-mas-arm64.zip
+aa991650a765b2bc168f8b742341048fa030ee9e3bd0d0799e1b1d29a4c55d0b *chromedriver-v39.2.7-mas-x64.zip
+a8fc4467bf9be10de3e341648ccd6ad6d618b4456a744137e9f19bd5f9d9bd37 *chromedriver-v39.2.7-win32-arm64.zip
+01b247563a054617530e454646b086352bc03e02ad4f18e5b65b4e3dfd276a1e *chromedriver-v39.2.7-win32-ia32.zip
+a8bc2b9052ac8dadeaf88ea9cd6e46ec0032eee2345a0548741bfed922520579 *chromedriver-v39.2.7-win32-x64.zip
+23486b3effffe5b3bc3ca70261fc9abe2396fd5d018652494f73e3f48cfe57cf *electron-api.json
+8bee9e905544e60e08468efca91481ec467ab8f108a81846c365782ba0fc737c *electron-v39.2.7-darwin-arm64-dsym-snapshot.zip
+3be97c3152cd4a84a6fe4013f7e4712422015f4beeb13eb35f8b4d223307d39a *electron-v39.2.7-darwin-arm64-dsym.zip
+6d5551120d0564fc5596a3b724258da2ce632663d12782c8fdf15a2cc461ed95 *electron-v39.2.7-darwin-arm64-symbols.zip
+bda657a77c074ee0c6a0e5d5f6de17918d7cf959306b454f6fadb07a08588883 *electron-v39.2.7-darwin-arm64.zip
+39f0aab332506455337edff540d007c509e72d8c419cdc57f88a0312848f51c9 *electron-v39.2.7-darwin-x64-dsym-snapshot.zip
+1efed54563ede59d7ae9ba3d548b3e93ede1a4e5dfa510ca22036ea2dd8a2956 *electron-v39.2.7-darwin-x64-dsym.zip
+3b9bfe84905870c9c36939ffac545d388213ffbb296b969f35ae2a098f6a32b7 *electron-v39.2.7-darwin-x64-symbols.zip
+d7535e64ad54efcf0fae84d7fea4c2ee4727eec99c78d2a5acc695285cb0a9f0 *electron-v39.2.7-darwin-x64.zip
+59a3bd71f9c1b355dfbc43f233126cd32b82a53439f0d419e6349044d39e8bbf *electron-v39.2.7-linux-arm64-debug.zip
+1b326f1a5bea47d9be742554434ddf4f094d7bcdd256f440b808359dc78fcd33 *electron-v39.2.7-linux-arm64-symbols.zip
+445465a43bd2ffaec09877f4ed46385065632a4683c2806cc6211cc73c110024 *electron-v39.2.7-linux-arm64.zip
+300c8d11d82cd1257b08e5a08c5e315f758133b627c0271a0f249ba3cb4533d2 *electron-v39.2.7-linux-armv7l-debug.zip
+034dca3c137c7bfe0736456c1aa0941721e3a9f3a8a72a2786cb817d4edb0f9d *electron-v39.2.7-linux-armv7l-symbols.zip
+5de99e9f4de8c9ac2fb93df725e834e3e93194c08c99968def7f7b78594fc97c *electron-v39.2.7-linux-armv7l.zip
+64ef2ae24ae0869ebadb34b178fd7e8375d750d7afe39b42cfa28824f0d11445 *electron-v39.2.7-linux-x64-debug.zip
+63466c4b6024ae38fdb38ff116abd561b9e36b8d4cd8f8aefbe41289950dba0c *electron-v39.2.7-linux-x64-symbols.zip
+2f5285ef563dca154aa247696dddef545d3d895dd9b227ed423ea0d43737c22c *electron-v39.2.7-linux-x64.zip
+ef5a108c1d10148aa031300da10c78feee797afe4ca2a2839819fd8434529860 *electron-v39.2.7-mas-arm64-dsym-snapshot.zip
+9dd01dc9071b1db9d8fb5e9c81eaa96f551db0a982994881e5750cde2432b0f0 *electron-v39.2.7-mas-arm64-dsym.zip
+2cf34289d79906c81b3dfd043fbe19a9604cecedd9ebda6576fa3c6f27edfe23 *electron-v39.2.7-mas-arm64-symbols.zip
+5658d58eacb99fb2a22df0d52ca0507d79f03c85515a123d5e9bee5e0749b93d *electron-v39.2.7-mas-arm64.zip
+92cd45c3fa64e2889fd1bc6b165c4d12bea40786ce59d6d204cadec6039a8e2a *electron-v39.2.7-mas-x64-dsym-snapshot.zip
+21464abc837aeab1609fbfa33aa82793e9d32a597db28ea4da483a9d6b6c668a *electron-v39.2.7-mas-x64-dsym.zip
+8d6e7ffee482514b62465e418049bdf717d308118461e5d97480f5a0eb0b9e20 *electron-v39.2.7-mas-x64-symbols.zip
+e3b4169ab7bf3bc35cc720ef99032acd3d0eb1521524b5c4667898758dd4e9a3 *electron-v39.2.7-mas-x64.zip
+3f1d549214a2430d57e5ab8d3cc9d89363340b16905014e35417c632a94732f6 *electron-v39.2.7-win32-arm64-pdb.zip
+984e1d7718bc920e75a38b114ff73fa52647349763f76e91b64458e5d0fde65f *electron-v39.2.7-win32-arm64-symbols.zip
+ed66f333ff7b385b2f40845178dc2dc4f25cc887510d766433392733fdd272a3 *electron-v39.2.7-win32-arm64-toolchain-profile.zip
+56c6f8d957239b7e8d5a214255f39007d44abc98f701ab61054afa83ad46e80f *electron-v39.2.7-win32-arm64.zip
+c885a8af3226f28081106fa89106f4668b907a53ab3997f3b101b487a76d2878 *electron-v39.2.7-win32-ia32-pdb.zip
+34edebab8fb5458d97a23461213b39360b5652f8dd6fe8bf7f9c10a17b25a1d2 *electron-v39.2.7-win32-ia32-symbols.zip
+ed66f333ff7b385b2f40845178dc2dc4f25cc887510d766433392733fdd272a3 *electron-v39.2.7-win32-ia32-toolchain-profile.zip
+85acd7db5dbb39e16d6c798a649342969569caa2c71d6b5bb1f0c8ae96bca32e *electron-v39.2.7-win32-ia32.zip
+e6a8e1164106548a1cdf266c615d259feada249e1449df8af1f7e04252575e86 *electron-v39.2.7-win32-x64-pdb.zip
+90e1feeff5968265b68d8343e27b9f329b27882747633dd10555740de67d58cc *electron-v39.2.7-win32-x64-symbols.zip
+ed66f333ff7b385b2f40845178dc2dc4f25cc887510d766433392733fdd272a3 *electron-v39.2.7-win32-x64-toolchain-profile.zip
+3464537fa4be6b7b073f1c9b694ac2eb1f632d6ec36f6eeac9e00d8a279f188c *electron-v39.2.7-win32-x64.zip
+40c772eb189d100087b75da6c2ad1aeb044f1d661c90543592546a654b0b6d5b *electron.d.ts
+5a904c2edd12542ce2b6685938cdafe21cf90cd552f2f654058353d1a3d8ee43 *ffmpeg-v39.2.7-darwin-arm64.zip
+91fc23e9008f43ad3c46f690186d77b291a803451b6d89ac82aadb8ae2dd7995 *ffmpeg-v39.2.7-darwin-x64.zip
+a44607619c6742c1f9d729265a687b467a25ba397081ac12bc2c0d9ab4bea37b *ffmpeg-v39.2.7-linux-arm64.zip
+8128ec9be261e2c1017f9b8213f948426119306e5d3acdb59392f32b2c2f0204 *ffmpeg-v39.2.7-linux-armv7l.zip
+a201a2a64a49ab39def2d38a73e92358ebb57ecae99b0bbc8058353c4be23ea1 *ffmpeg-v39.2.7-linux-x64.zip
+5a904c2edd12542ce2b6685938cdafe21cf90cd552f2f654058353d1a3d8ee43 *ffmpeg-v39.2.7-mas-arm64.zip
+91fc23e9008f43ad3c46f690186d77b291a803451b6d89ac82aadb8ae2dd7995 *ffmpeg-v39.2.7-mas-x64.zip
+6fa4278a41d9c5d733369aa4cce694ba219eb72f7fd181060547c3a4920b5902 *ffmpeg-v39.2.7-win32-arm64.zip
+12b9e02c0fd07e8bc233c7c4ebab5c737eca05c41f1c5178867cad313433561b *ffmpeg-v39.2.7-win32-ia32.zip
+caedeb04aa648af14b5a20c9ca902c97eb531a456c7965639465f8764b5d95e0 *ffmpeg-v39.2.7-win32-x64.zip
+f1320ff95f2cce0f0f7225b45f2b9340aeb38b341b4090f0e58f58dc2da2f3a9 *hunspell_dictionaries.zip
+8f4ffd7534f21e40621c515bacd178b809c2e52d1687867c60dfdb97ed17fecb *libcxx-objects-v39.2.7-linux-arm64.zip
+0497730c82e1e76b6a4c22b1af4ebb7821ff6ccb838b78503c0cc93d8a8f03ee *libcxx-objects-v39.2.7-linux-armv7l.zip
+271e3538eb241f1bc83a103ea7d4c8408ee6bd38322ed50dca781f54d002a590 *libcxx-objects-v39.2.7-linux-x64.zip
+9a243728553395448f783591737fb229a327499d6853b51e201c36e4aaa9796f *libcxx_headers.zip
+db3018609bce502c307c59074b3d5273080a68fb50ac1e7fc580994a2e80cc25 *libcxxabi_headers.zip
+509d0890d1a524efe2c68aae18d2c8fd6537e788b94c9f63fd9f9ca3be98fdb9 *mksnapshot-v39.2.7-darwin-arm64.zip
+f0a98b428a6a1f8dc4a4663e876a3984157ac8757922cde7461f19755942c180 *mksnapshot-v39.2.7-darwin-x64.zip
+22fda3b708ab14325b2bfba8e875fbf48b6eacea347ecf1ef41cf24b09b4af8f *mksnapshot-v39.2.7-linux-arm64-x64.zip
+e7b89dbab3449c0a1862b4d129b3ee384cb5bcd53e149eae05df14744ee55cb5 *mksnapshot-v39.2.7-linux-armv7l-x64.zip
+53b3ed9f3a69444915ef1eef688c8f8168d52c3d5232834b8aa249cf210b41b6 *mksnapshot-v39.2.7-linux-x64.zip
+181d962eaa93d8d997b1daf99ae016b3d9d8a5ae037c96a8475490396a8d655f *mksnapshot-v39.2.7-mas-arm64.zip
+de005b619da1c1afcd8f8b6c70facb1dc388c46a66f8eff3058c8a08323df173 *mksnapshot-v39.2.7-mas-x64.zip
+6eea0bee6097cf2cfe3ae42b35f847304697c4a4eec84f5b60d1cbbe324a8490 *mksnapshot-v39.2.7-win32-arm64-x64.zip
+3e769269aa0b51ef9664a982235bc9299fc58743dcf7bce585d49a9f4a074abd *mksnapshot-v39.2.7-win32-ia32.zip
+51337124892bf76d214f89975d42ec0474199cdfac2f9e08664d86ae8e6ba43e *mksnapshot-v39.2.7-win32-x64.zip
\ No newline at end of file
diff --git a/cgmanifest.json b/cgmanifest.json
index 6ee72b3..9344b4e 100644
index 1148b4e..88150cc 100644
--- a/cgmanifest.json
+++ b/cgmanifest.json
@@ -530,3 +530,3 @@
@@ -531,4 +531,4 @@
"repositoryUrl": "https://github.com/electron/electron",
- "commitHash": "d0594707ded4d564c95badf5322d5893295da4ed"
+ "commitHash": "200a6ff5c6be89cb07221fff7025a2f9201bf25b"
- "commitHash": "14565211f7fd33f3fe2f75ec1254cfa57d5bc848",
- "tag": "39.2.3"
+ "commitHash": "4d18062d0f0ca34c455bc7ec032dd7959a0365b6",
+ "tag": "39.2.7"
}
@@ -535,3 +535,3 @@
"license": "MIT",
- "version": "34.5.1"
+ "version": "34.5.4"
},
diff --git a/package-lock.json b/package-lock.json
index beb023f..31df569 100644
index 2b1154b..cbe427e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -98,3 +98,3 @@
"deemon": "^1.13.4",
- "electron": "34.5.1",
+ "electron": "34.5.4",
"eslint": "^9.11.1",
@@ -6004,5 +6004,5 @@
@@ -100,3 +100,3 @@
"deemon": "^1.13.6",
- "electron": "39.2.3",
+ "electron": "39.2.7",
"eslint": "^9.36.0",
@@ -6188,5 +6188,5 @@
"node_modules/electron": {
- "version": "34.5.1",
- "resolved": "https://registry.npmjs.org/electron/-/electron-34.5.1.tgz",
- "integrity": "sha512-z2Wm7QjhnJ5592fLITynj8UwIk1mBiT402mOakxSYiADrERIci3IOPk7xWHAFOMvt/eoG5RW16PPhgJiedZcGA==",
+ "version": "34.5.4",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-34.5.4.tgz",
+ "integrity": "sha512-WXc3ElYW/1LH50CnpigSeRsK1AfFB/J8hCySFnhXDmz6BBAKhXlJ6bgw1k9ZldR5i+8JqX323773Jn8X3/Wagw==",
- "version": "39.2.3",
- "resolved": "https://registry.npmjs.org/electron/-/electron-39.2.3.tgz",
- "integrity": "sha512-j7k7/bj3cNA29ty54FzEMRUoqirE+RBQPhPFP+XDuM93a1l2WcDPiYumxKWz+iKcXxBJLFdMIAlvtLTB/RfCkg==",
+ "version": "39.2.7",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-39.2.7.tgz",
+ "integrity": "sha512-KU0uFS6LSTh4aOIC3miolcbizOFP7N1M46VTYVfqIgFiuA2ilfNaOHLDS9tCMvwwHRowAsvqBrh9NgMXcTOHCQ==",
"dev": true,
diff --git a/package.json b/package.json
index 4d41ab6..304a0b0 100644
index 9ef8381..f732fa8 100644
--- a/package.json
+++ b/package.json
@@ -157,3 +157,3 @@
"deemon": "^1.13.4",
- "electron": "34.5.1",
+ "electron": "34.5.4",
"eslint": "^9.11.1",
@@ -162,3 +162,3 @@
"deemon": "^1.13.6",
- "electron": "39.2.3",
+ "electron": "39.2.7",
"eslint": "^9.36.0",

View File

@@ -1,18 +1,21 @@
diff --git a/extensions/github-authentication/src/common/env.ts b/extensions/github-authentication/src/common/env.ts
index ebc4749..18fd732 100644
index 5456fb8..18fd732 100644
--- a/extensions/github-authentication/src/common/env.ts
+++ b/extensions/github-authentication/src/common/env.ts
@@ -7,21 +7,4 @@ import { AuthProviderType } from '../github';
@@ -7,24 +7,4 @@ import { AuthProviderType } from '../github';
-const VALID_DESKTOP_CALLBACK_SCHEMES = [
- 'vscode',
- 'vscode-insiders',
- 'vscode-exploration',
- 'vscode-sessions',
- 'vscode-sessions-insiders',
- 'vscode-sessions-exploration',
- // On Windows, some browsers don't seem to redirect back to OSS properly.
- // As a result, you get stuck in the auth flow. We exclude this from the
- // list until we can figure out a way to fix this behavior in browsers.
- // 'code-oss',
- 'vscode-wsl',
- 'vscode-exploration'
-];
-
-export function isSupportedClient(uri: Uri): boolean {
@@ -26,7 +29,7 @@ index ebc4749..18fd732 100644
+export function isSupportedClient(_uri: Uri): boolean {
+ return false;
}
@@ -35,4 +18,4 @@ export function isSupportedTarget(type: AuthProviderType, gheUri?: Uri): boolean
@@ -38,4 +18,4 @@ export function isSupportedTarget(type: AuthProviderType, gheUri?: Uri): boolean
-export function isHostedGitHubEnterprise(uri: Uri): boolean {
- return /\.ghe\.com$/.test(uri.authority);

View File

@@ -1,31 +1,26 @@
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index cd8610d..2d928b1 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -27,4 +27,2 @@ const commit = getVersion(root);
-const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
-
/**
@@ -90,3 +88,3 @@ function prepareDebPackage(arch) {
diff --git a/build/gulpfile.vscode.linux.ts b/build/gulpfile.vscode.linux.ts
index c5d2163..b4768b9 100644
--- a/build/gulpfile.vscode.linux.ts
+++ b/build/gulpfile.vscode.linux.ts
@@ -90,3 +90,3 @@ function prepareDebPackage(arch: string) {
.pipe(replace('@@NAME@@', product.applicationName))
- .pipe(replace('@@VERSION@@', packageJson.version + '-' + linuxPackageRevision))
+ .pipe(replace('@@VERSION@@', packageJson.version))
.pipe(replace('@@ARCHITECTURE@@', debArch))
@@ -204,3 +202,2 @@ function prepareRpmPackage(arch) {
@@ -198,3 +198,2 @@ function prepareRpmPackage(arch: string) {
.pipe(replace('@@VERSION@@', packageJson.version))
- .pipe(replace('@@RELEASE@@', linuxPackageRevision))
- .pipe(replace('@@RELEASE@@', linuxPackageRevision.toString()))
.pipe(replace('@@ARCHITECTURE@@', rpmArch))
@@ -278,3 +275,3 @@ function prepareSnapPackage(arch) {
@@ -263,3 +262,3 @@ function prepareSnapPackage(arch: string) {
.pipe(replace('@@NAME@@', product.applicationName))
- .pipe(replace('@@VERSION@@', commit.substr(0, 8)))
- .pipe(replace('@@VERSION@@', commit!.substr(0, 8)))
+ .pipe(replace('@@VERSION@@', packageJson.version))
// Possible run-on values https://snapcraft.io/docs/architectures
diff --git a/src/vs/workbench/api/common/extHost.api.impl.ts b/src/vs/workbench/api/common/extHost.api.impl.ts
index 0db2369..5cac67b 100644
index 8838f2f..fb120ae 100644
--- a/src/vs/workbench/api/common/extHost.api.impl.ts
+++ b/src/vs/workbench/api/common/extHost.api.impl.ts
@@ -1537,5 +1537,7 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
@@ -1629,5 +1629,7 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
+ const version = initData.version.replace(/^([0-9]+\.[0-9]+\.[0-5]).*$/, '$1');
+

View File

@@ -1,14 +1,14 @@
diff --git a/src/vs/platform/update/common/update.ts b/src/vs/platform/update/common/update.ts
index 199f433..a6cbb10 100644
index bc90a03..f8885b9 100644
--- a/src/vs/platform/update/common/update.ts
+++ b/src/vs/platform/update/common/update.ts
@@ -51,3 +51,4 @@ export const enum UpdateType {
@@ -54,3 +54,4 @@ export const enum UpdateType {
Archive,
- Snap
+ Snap,
+ WindowsInstaller,
}
@@ -110 +111,38 @@ export interface IUpdateService {
@@ -120 +121,38 @@ export interface IUpdateService {
}
+
+export type Architecture =
@@ -49,66 +49,83 @@ index 199f433..a6cbb10 100644
+ | "user";
\ No newline at end of file
diff --git a/src/vs/platform/update/electron-main/abstractUpdateService.ts b/src/vs/platform/update/electron-main/abstractUpdateService.ts
index 48d0d86..840b9d3 100644
index c943bca..1395594 100644
--- a/src/vs/platform/update/electron-main/abstractUpdateService.ts
+++ b/src/vs/platform/update/electron-main/abstractUpdateService.ts
@@ -14,6 +14,10 @@ import { IProductService } from '../../product/common/productService.js';
import { IRequestService } from '../../request/common/request.js';
@@ -17,4 +17,4 @@ import { ILogService } from '../../log/common/log.js';
import { IProductService } from '../../product/common/productService.js';
-import { IRequestService } from '../../request/common/request.js';
-import { AvailableForDownload, DisablementReason, IUpdateService, State, StateType, UpdateType } from '../common/update.js';
+import { IRequestService, NO_FETCH_TELEMETRY } from '../../request/common/request.js';
+import { Architecture, AvailableForDownload, DisablementReason, IUpdateService, Platform, State, StateType, Target, UpdateType } from '../common/update.js';
-export function createUpdateURL(platform: string, quality: string, productService: IProductService): string {
- return `${productService.updateUrl}/api/update/${platform}/${quality}/${productService.commit}`;
@@ -25,12 +25,8 @@ export interface IUpdateURLOptions {
-export function createUpdateURL(baseUpdateUrl: string, platform: string, quality: string, commit: string, options?: IUpdateURLOptions): string {
- const url = new URL(`${baseUpdateUrl}/api/update/${platform}/${quality}/${commit}`);
-
- if (options?.background) {
- url.searchParams.set('bg', 'true');
+export function createUpdateURL(productService: IProductService, quality: string, platform: Platform, architecture: Architecture, target?: Target): string {
+ if (target) {
+ return `${productService.updateUrl}/${quality}/${platform}/${architecture}/${target}/latest.json`;
+ } else {
+ return `${productService.updateUrl}/${quality}/${platform}/${architecture}/latest.json`;
+ }
}
-
- url.searchParams.set('u', options?.internalOrg ?? 'none');
-
- return url.toString();
}
@@ -322,3 +318,3 @@ export abstract class AbstractUpdateService implements IUpdateService {
- if (mode === 'none') {
+ if (mode === 'none' || mode === 'manual') {
return undefined;
@@ -336,3 +332,3 @@ export abstract class AbstractUpdateService implements IUpdateService {
try {
- const context = await this.requestService.request({ url, headers, callSite: 'updateService.isLatestVersion' }, token);
+ const context = await this.requestService.request({ url, headers, callSite: NO_FETCH_TELEMETRY }, token);
const statusCode = context.res.statusCode;
diff --git a/src/vs/platform/update/electron-main/updateService.darwin.ts b/src/vs/platform/update/electron-main/updateService.darwin.ts
index b78ebc5..a4a3b1d 100644
index 40b38a2..323919e 100644
--- a/src/vs/platform/update/electron-main/updateService.darwin.ts
+++ b/src/vs/platform/update/electron-main/updateService.darwin.ts
@@ -15,3 +15,3 @@ import { ILogService } from '../../log/common/log.js';
@@ -16,3 +16,3 @@ import { ILogService } from '../../log/common/log.js';
import { IProductService } from '../../product/common/productService.js';
-import { IRequestService } from '../../request/common/request.js';
+import { IRequestService, asJson } from '../../request/common/request.js';
-import { asJson, IRequestService } from '../../request/common/request.js';
+import { asJson, IRequestService, NO_FETCH_TELEMETRY } from '../../request/common/request.js';
import { ITelemetryService } from '../../telemetry/common/telemetry.js';
@@ -19,2 +19,4 @@ import { IUpdate, State, StateType, UpdateType } from '../common/update.js';
import { AbstractUpdateService, createUpdateURL, UpdateErrorClassification } from './abstractUpdateService.js';
+import { CancellationToken } from '../../../base/common/cancellation.js';
@@ -22,2 +22,3 @@ import { AbstractUpdateService, createUpdateURL, getUpdateRequestHeaders, IUpdat
import { INodeProcess } from '../../../base/common/platform.js';
+import * as semver from 'semver';
@@ -76,17 +78,3 @@ export class DarwinUpdateService extends AbstractUpdateService implements IRelau
protected buildUpdateFeedUrl(quality: string): string | undefined {
- let assetID: string;
- if (!this.productService.darwinUniversalAssetId) {
- assetID = process.arch === 'x64' ? 'darwin' : 'darwin-arm64';
- } else {
- assetID = this.productService.darwinUniversalAssetId;
- }
- const url = createUpdateURL(assetID, quality, this.productService);
@@ -99,15 +100,4 @@ export class DarwinUpdateService extends AbstractUpdateService implements IRelau
- protected buildUpdateFeedUrl(quality: string, commit: string, options?: IUpdateURLOptions): string | undefined {
- const assetID = this.productService.darwinUniversalAssetId ?? (process.arch === 'x64' ? 'darwin' : 'darwin-arm64');
- const url = createUpdateURL(this.productService.updateUrl!, assetID, quality, commit, options);
- const headers = getUpdateRequestHeaders(this.productService.version);
- try {
- electron.autoUpdater.setFeedURL({ url });
- this.logService.trace('update#buildUpdateFeedUrl - setting feed URL for Electron autoUpdater', { url, assetID, quality, commit, headers });
- electron.autoUpdater.setFeedURL({ url, headers });
- } catch (e) {
- // application is very likely not signed
- this.logService.error('Failed to set update feed URL', e);
- return undefined;
- }
- return url;
+ protected buildUpdateFeedUrl(quality: string, _commit: string, _options?: IUpdateURLOptions): string | undefined {
+ return createUpdateURL(this.productService, quality, process.platform, process.arch);
}
@@ -100,5 +88,30 @@ export class DarwinUpdateService extends AbstractUpdateService implements IRelau
- const url = explicit ? this.url : `${this.url}?bg=true`;
- electron.autoUpdater.setFeedURL({ url });
@@ -154,3 +144,30 @@ export class DarwinUpdateService extends AbstractUpdateService implements IRelau
this.logService.trace('update#doCheckForUpdates - using Electron autoUpdater', { url, explicit, background });
- electron.autoUpdater.checkForUpdates();
+ this.requestService.request({ url: this.url }, CancellationToken.None)
+ this.requestService.request({ url, callSite: NO_FETCH_TELEMETRY }, CancellationToken.None)
+ .then<IUpdate | null>(asJson)
+ .then(update => {
+ if (!update || !update.url || !update.version || !update.productVersion) {
+ this.setState(State.Idle(UpdateType.Setup));
+ this.setState(State.Idle(UpdateType.Setup, undefined, explicit || undefined));
+
+ return Promise.resolve(null);
+ }
@@ -117,10 +134,10 @@ index b78ebc5..a4a3b1d 100644
+ const currentVersion = this.productService.version.replace(/(\d+\.\d+\.)0+(\d+)(\-\w+)?/, '$1$2$3')
+
+ if(semver.compareBuild(currentVersion, fetchedVersion) >= 0) {
+ this.setState(State.Idle(UpdateType.Setup));
+ this.setState(State.Idle(UpdateType.Setup, undefined, explicit || undefined));
+ }
+ else {
+ electron.autoUpdater.setFeedURL({ url: this.url! });
+ electron.autoUpdater.setFeedURL({ url });
+ electron.autoUpdater.checkForUpdates();
+ }
+
@@ -133,29 +150,37 @@ index b78ebc5..a4a3b1d 100644
+ this.setState(State.Idle(UpdateType.Setup, message));
+ });
}
@@ -167,3 +184,3 @@ export class DarwinUpdateService extends AbstractUpdateService implements IRelau
try {
- const context = await this.requestService.request({ url, headers, callSite: 'updateService.darwin.checkForUpdates' }, CancellationToken.None);
+ const context = await this.requestService.request({ url, headers, callSite: NO_FETCH_TELEMETRY }, CancellationToken.None);
const statusCode = context.res.statusCode;
diff --git a/src/vs/platform/update/electron-main/updateService.linux.ts b/src/vs/platform/update/electron-main/updateService.linux.ts
index 8550ace..c2fddcb 100644
index 0eb5d74..8ce708e 100644
--- a/src/vs/platform/update/electron-main/updateService.linux.ts
+++ b/src/vs/platform/update/electron-main/updateService.linux.ts
@@ -15,2 +15,3 @@ import { AvailableForDownload, IUpdate, State, UpdateType } from '../common/upda
import { AbstractUpdateService, createUpdateURL } from './abstractUpdateService.js';
@@ -13,5 +13,6 @@ import { INativeHostMainService } from '../../native/electron-main/nativeHostMai
import { IProductService } from '../../product/common/productService.js';
-import { asJson, IRequestService } from '../../request/common/request.js';
+import { asJson, IRequestService, NO_FETCH_TELEMETRY } from '../../request/common/request.js';
import { AvailableForDownload, IUpdate, State, UpdateType } from '../common/update.js';
import { AbstractUpdateService, createUpdateURL, IUpdateURLOptions } from './abstractUpdateService.js';
+import * as semver from 'semver';
@@ -31,3 +32,3 @@ export class LinuxUpdateService extends AbstractUpdateService {
protected buildUpdateFeedUrl(quality: string): string {
- return createUpdateURL(`linux-${process.arch}`, quality, this.productService);
@@ -32,4 +33,4 @@ export class LinuxUpdateService extends AbstractUpdateService {
- protected buildUpdateFeedUrl(quality: string, commit: string, options?: IUpdateURLOptions): string {
- return createUpdateURL(this.productService.updateUrl!, `linux-${process.arch}`, quality, commit, options);
+ protected buildUpdateFeedUrl(quality: string, _commit: string, _options?: IUpdateURLOptions): string {
+ return createUpdateURL(this.productService, quality, process.platform, process.arch);
}
@@ -39,6 +40,5 @@ export class LinuxUpdateService extends AbstractUpdateService {
@@ -46,3 +47,3 @@ export class LinuxUpdateService extends AbstractUpdateService {
- const url = explicit ? this.url : `${this.url}?bg=true`;
this.setState(State.CheckingForUpdates(explicit));
- this.requestService.request({ url }, CancellationToken.None)
+ this.requestService.request({ url: this.url }, CancellationToken.None)
- this.requestService.request({ url, callSite: 'updateService.linux.checkForUpdates' }, CancellationToken.None)
+ this.requestService.request({ url, callSite: NO_FETCH_TELEMETRY }, CancellationToken.None)
.then<IUpdate | null>(asJson)
@@ -47,5 +47,17 @@ export class LinuxUpdateService extends AbstractUpdateService {
this.setState(State.Idle(UpdateType.Archive));
@@ -51,5 +52,17 @@ export class LinuxUpdateService extends AbstractUpdateService {
this.setState(State.Idle(UpdateType.Archive, undefined, explicit || undefined));
- } else {
+
+ return Promise.resolve(null);
@@ -165,7 +190,7 @@ index 8550ace..c2fddcb 100644
+ const currentVersion = this.productService.version.replace(/(\d+\.\d+\.)0+(\d+)(\-\w+)?/, '$1$2$3')
+
+ if(semver.compareBuild(currentVersion, fetchedVersion) >= 0) {
+ this.setState(State.Idle(UpdateType.Archive));
+ this.setState(State.Idle(UpdateType.Archive, undefined, explicit || undefined));
+ }
+ else {
this.setState(State.AvailableForDownload(update));
@@ -174,27 +199,31 @@ index 8550ace..c2fddcb 100644
+ return Promise.resolve(null);
})
diff --git a/src/vs/platform/update/electron-main/updateService.win32.ts b/src/vs/platform/update/electron-main/updateService.win32.ts
index 8f92a3e..020e690 100644
index d02d7c3..4e8c541 100644
--- a/src/vs/platform/update/electron-main/updateService.win32.ts
+++ b/src/vs/platform/update/electron-main/updateService.win32.ts
@@ -11,3 +11,2 @@ import { CancellationToken } from '../../../base/common/cancellation.js';
@@ -14,3 +14,2 @@ import { CancellationToken, CancellationTokenSource } from '../../../base/common
import { memoize } from '../../../base/common/decorators.js';
-import { hash } from '../../../base/common/hash.js';
import * as path from '../../../base/common/path.js';
@@ -25,4 +24,5 @@ import { asJson, IRequestService } from '../../request/common/request.js';
@@ -31,7 +30,8 @@ import { INativeHostMainService } from '../../native/electron-main/nativeHostMai
import { IProductService } from '../../product/common/productService.js';
-import { asJson, IRequestService } from '../../request/common/request.js';
+import { asJson, IRequestService, NO_FETCH_TELEMETRY } from '../../request/common/request.js';
import { ITelemetryService } from '../../telemetry/common/telemetry.js';
-import { AvailableForDownload, DisablementReason, IUpdate, State, StateType, UpdateType } from '../common/update.js';
-import { AbstractUpdateService, createUpdateURL, UpdateErrorClassification } from './abstractUpdateService.js';
-import { AbstractUpdateService, createUpdateURL, getUpdateRequestHeaders, IUpdateURLOptions, UpdateErrorClassification } from './abstractUpdateService.js';
+import { AvailableForDownload, DisablementReason, IUpdate, State, StateType, Target, UpdateType } from '../common/update.js';
+import { AbstractUpdateService, createUpdateURL} from './abstractUpdateService.js';
+import { AbstractUpdateService, createUpdateURL, getUpdateRequestHeaders, IUpdateURLOptions } from './abstractUpdateService.js';
import { INodeProcess } from '../../../base/common/platform.js';
+import * as semver from 'semver';
@@ -42,5 +42,9 @@ function getUpdateType(): UpdateType {
@@ -49,5 +49,9 @@ function getUpdateType(): UpdateType {
if (typeof _updateType === 'undefined') {
- _updateType = fs.existsSync(path.join(path.dirname(process.execPath), 'unins000.exe'))
- _updateType = existsSync(path.join(path.dirname(process.execPath), 'unins000.exe'))
- ? UpdateType.Setup
- : UpdateType.Archive;
+ if (fs.existsSync(path.join(path.dirname(process.execPath), 'unins000.exe'))) {
+ if (existsSync(path.join(path.dirname(process.execPath), 'unins000.exe'))) {
+ _updateType = UpdateType.Setup;
+ } else if (path.basename(path.normalize(path.join(process.execPath, '..', '..'))) === 'Program Files') {
+ _updateType = UpdateType.WindowsInstaller;
@@ -202,18 +231,21 @@ index 8f92a3e..020e690 100644
+ _updateType = UpdateType.Archive;
+ }
}
@@ -63,2 +67,3 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
@IConfigurationService configurationService: IConfigurationService,
+ // @ts-expect-error
@ITelemetryService private readonly telemetryService: ITelemetryService,
@@ -102,11 +107,21 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
protected buildUpdateFeedUrl(quality: string): string | undefined {
@@ -164,3 +168,3 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
} else {
- const fastUpdatesEnabled = this.configurationService.getValue('update.enableWindowsBackgroundUpdates');
+ const fastUpdatesEnabled = getUpdateType() === UpdateType.Setup && this.configurationService.getValue('update.enableWindowsBackgroundUpdates');
// GC for background updates in system setup happens via inno_setup since it requires
@@ -182,12 +186,22 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
- protected buildUpdateFeedUrl(quality: string, commit: string, options?: IUpdateURLOptions): string | undefined {
- let platform = `win32-${process.arch}`;
-
- if (getUpdateType() === UpdateType.Archive) {
- platform += '-archive';
- } else if (this.productService.target === 'user') {
- platform += '-user';
+ protected buildUpdateFeedUrl(quality: string, _commit: string, _options?: IUpdateURLOptions): string | undefined {
+ let target: Target;
+
+ switch (getUpdateType()) {
@@ -232,45 +264,80 @@ index 8f92a3e..020e690 100644
+ }
}
- return createUpdateURL(platform, quality, this.productService);
- return createUpdateURL(this.productService.updateUrl!, platform, quality, commit, options);
+ return createUpdateURL(this.productService, quality, process.platform, process.arch, target);
}
@@ -131,2 +146,10 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
@@ -209,3 +223,3 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
const headers = getUpdateRequestHeaders(this.productService.version);
- this.requestService.request({ url, headers, callSite: 'updateService.win32.checkForUpdates' }, CancellationToken.None)
+ this.requestService.request({ url, headers, callSite: NO_FETCH_TELEMETRY }, CancellationToken.None)
.then<IUpdate | null>(asJson)
@@ -226,2 +240,10 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
+ const fetchedVersion = /\d+\.\d+\.\d+\.\d+/.test(update.productVersion) ? update.productVersion.replace(/(\d+\.\d+\.\d+)\.\d+(\-\w+)?/, '$1$2') : update.productVersion.replace(/(\d+\.\d+\.)0+(\d+)(\-\w+)?/, '$1$2$3')
+ const currentVersion = this.productService.version.replace(/(\d+\.\d+\.)0+(\d+)(\-\w+)?/, '$1$2$3')
+
+ if(semver.compareBuild(currentVersion, fetchedVersion) >= 0) {
+ this.setState(State.Idle(updateType));
+ this.setState(State.Idle(updateType, undefined, explicit || undefined));
+ return Promise.resolve(null);
+ }
+
if (updateType === UpdateType.Archive) {
@@ -157,3 +180,3 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
@@ -258,3 +280,3 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
- const fastUpdatesEnabled = this.configurationService.getValue('update.enableWindowsBackgroundUpdates');
+ const fastUpdatesEnabled = getUpdateType() == UpdateType.Setup && this.configurationService.getValue('update.enableWindowsBackgroundUpdates');
if (fastUpdatesEnabled) {
@@ -169,3 +192,2 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
- return this.requestService.request({ url: update.url, callSite: 'updateService.win32.downloadUpdate' }, CancellationToken.None)
+ return this.requestService.request({ url: update.url, callSite: NO_FETCH_TELEMETRY }, CancellationToken.None)
.then(context => {
@@ -304,3 +326,2 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
.then(undefined, err => {
- this.telemetryService.publicLog2<{ messageHash: string }, UpdateErrorClassification>('update:error', { messageHash: String(hash(String(err))) });
this.logService.error(err);
@@ -253,6 +275,14 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
} else {
- spawn(this.availableUpdate.packagePath, ['/silent', '/log', '/mergetasks=runcode,!desktopicon,!quicklaunchicon'], {
- detached: true,
- stdio: ['ignore', 'ignore', 'ignore']
- });
+ const type = getUpdateType();
+ if (type == UpdateType.WindowsInstaller) {
+ spawn('msiexec.exe', ['/i', this.availableUpdate.packagePath], {
@@ -368,20 +389,31 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
await pfs.Promises.writeFile(this.availableUpdate.updateFilePath, 'flag');
- const child = spawn(this.availableUpdate.packagePath,
- [
- '/verysilent',
- '/log',
- `/update="${this.availableUpdate.updateFilePath}"`,
- `/progress="${progressFilePath}"`,
- `/sessionend="${sessionEndFlagPath}"`,
- `/cancel="${cancelFilePath}"`,
- '/nocloseapplications',
- '/mergetasks=runcode,!desktopicon,!quicklaunchicon'
- ],
- {
+
+ let child: ChildProcess
+
+ const type = getUpdateType();
+ if (type == UpdateType.WindowsInstaller) {
+ child = spawn('msiexec.exe', ['/i', this.availableUpdate.packagePath], {
detached: true,
- stdio: ['ignore', 'ignore', 'ignore'],
- windowsVerbatimArguments: true,
- env: { ...process.env, __COMPAT_LAYER: 'RunAsInvoker' }
- }
- );
+ stdio: ['ignore', 'ignore', 'ignore']
+ });
+ } else {
+ child = spawn(this.availableUpdate.packagePath,
+ [
+ '/verysilent',
+ '/log',
+ `/update="${this.availableUpdate.updateFilePath}"`,
+ `/progress="${progressFilePath}"`,
+ `/sessionend="${sessionEndFlagPath}"`,
+ `/cancel="${cancelFilePath}"`,
+ '/nocloseapplications',
+ '/mergetasks=runcode,!desktopicon,!quicklaunchicon'
+ ],
+ {
+ detached: true,
+ stdio: ['ignore', 'ignore', 'ignore']
+ });
+ } else {
+ spawn(this.availableUpdate.packagePath, ['/silent', '/log', '/mergetasks=runcode,!desktopicon,!quicklaunchicon'], {
+ detached: true,
+ stdio: ['ignore', 'ignore', 'ignore']
+ });
+ }
}
+ stdio: ['ignore', 'ignore', 'ignore'],
+ windowsVerbatimArguments: true,
+ env: { ...process.env, __COMPAT_LAYER: 'RunAsInvoker' }
+ }
+ );
+ }

View File

@@ -1,9 +1,10 @@
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index ed06b6a..f2b4a82 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -406,18 +406,18 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts
index d3ab651..d067b5b 100644
--- a/build/gulpfile.vscode.ts
+++ b/build/gulpfile.vscode.ts
@@ -432,19 +432,2 @@ function packageTask(platform: string, arch: string, sourceFolderName: string, d
.pipe(rename(f => f.dirname = `policies/${f.dirname}`)));
-
- if (quality === 'stable' || quality === 'insider') {
- result = es.merge(result, gulp.src('.build/win32/appx/**', { base: '.build/win32' }));
- const rawVersion = version.replace(/-\w+$/, '').split('.');
@@ -16,41 +17,21 @@ index ed06b6a..f2b4a82 100644
- .pipe(replace('@@ApplicationIdShort@@', product.win32RegValueName))
- .pipe(replace('@@ApplicationExe@@', product.nameShort + '.exe'))
- .pipe(replace('@@FileExplorerContextMenuID@@', quality === 'stable' ? 'OpenWithCode' : 'OpenWithCodeInsiders'))
- .pipe(replace('@@FileExplorerContextMenuCLSID@@', product.win32ContextMenu[arch].clsid))
- .pipe(replace('@@FileExplorerContextMenuCLSID@@', (product as { win32ContextMenu?: Record<string, { clsid: string }> }).win32ContextMenu![arch].clsid))
- .pipe(replace('@@FileExplorerContextMenuDLL@@', `${quality === 'stable' ? 'code' : 'code_insider'}_explorer_command_${arch}.dll`))
- .pipe(rename(f => f.dirname = `appx/manifest`)));
- }
+ // if (quality === 'stable' || quality === 'insider') {
+ // result = es.merge(result, gulp.src('.build/win32/appx/**', { base: '.build/win32' }));
+ // const rawVersion = version.replace(/-\w+$/, '').split('.');
+ // const appxVersion = `${rawVersion[0]}.0.${rawVersion[1]}.${rawVersion[2]}`;
+ // result = es.merge(result, gulp.src('resources/win32/appx/AppxManifest.xml', { base: '.' })
+ // .pipe(replace('@@AppxPackageName@@', product.win32AppUserModelId))
+ // .pipe(replace('@@AppxPackageVersion@@', appxVersion))
+ // .pipe(replace('@@AppxPackageDisplayName@@', product.nameLong))
+ // .pipe(replace('@@AppxPackageDescription@@', product.win32NameVersion))
+ // .pipe(replace('@@ApplicationIdShort@@', product.win32RegValueName))
+ // .pipe(replace('@@ApplicationExe@@', product.nameShort + '.exe'))
+ // .pipe(replace('@@FileExplorerContextMenuID@@', quality === 'stable' ? 'OpenWithCode' : 'OpenWithCodeInsiders'))
+ // .pipe(replace('@@FileExplorerContextMenuCLSID@@', product.win32ContextMenu[arch].clsid))
+ // .pipe(replace('@@FileExplorerContextMenuDLL@@', `${quality === 'stable' ? 'code' : 'code_insider'}_explorer_command_${arch}.dll`))
+ // .pipe(rename(f => f.dirname = `appx/manifest`)));
+ // }
} else if (platform === 'linux') {
diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js
index 9207df5..ff6c116 100644
--- a/build/gulpfile.vscode.win32.js
+++ b/build/gulpfile.vscode.win32.js
@@ -113,7 +113,7 @@ function buildWin32Setup(arch, target) {
diff --git a/build/gulpfile.vscode.win32.ts b/build/gulpfile.vscode.win32.ts
index a7b01f0..43c93b8 100644
--- a/build/gulpfile.vscode.win32.ts
+++ b/build/gulpfile.vscode.win32.ts
@@ -117,8 +117,2 @@ function buildWin32Setup(arch: string, target: string): task.CallbackTask {
- if (quality !== 'exploration') {
- if (quality === 'stable' || quality === 'insider') {
- definitions['AppxPackage'] = `${quality === 'stable' ? 'code' : 'code_insider'}_${arch}.appx`;
- definitions['AppxPackageDll'] = `${quality === 'stable' ? 'code' : 'code_insider'}_explorer_command_${arch}.dll`;
- definitions['AppxPackageName'] = `${product.win32AppUserModelId}`;
- }
+ // if (quality !== 'exploration') {
+ // definitions['AppxPackage'] = `${product.applicationName.replace(/-/g, '_')}_${arch}.appx`;
+ // definitions['AppxPackageDll'] = `${product.applicationName.replace(/-/g, '_')}_explorer_command_${arch}.dll`;
+ // definitions['AppxPackageName'] = `${product.win32AppUserModelId}`;
+ // }
-
packageInnoSetup(issPath, { definitions }, cb as (err?: Error | null) => void);

View File

@@ -1,9 +1,9 @@
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index a39bbf7..26ad204 100644
index 3e0895f..e518ad8 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -84,3 +84,3 @@ impl UpdateService {
@@ -94,3 +94,3 @@ impl UpdateService {
let download_url = format!(
- "{}/{}/{}/{}/latest.json",
+ "{}/{}/{}/{}/user/latest.json",
update_endpoint,
&update_endpoint,

View File

@@ -41,7 +41,7 @@ if [[ "${OS_NAME}" == "osx" ]]; then
echo "+ signing"
export CODESIGN_IDENTITY AGENT_TEMPDIRECTORY
DEBUG="electron-osx-sign*" node vscode/build/darwin/sign.js "$( pwd )"
DEBUG="electron-osx-sign*" node vscode/build/darwin/sign.ts "$( pwd )"
# codesign --display --entitlements :- ""
echo "+ notarize"

View File

@@ -13,6 +13,8 @@ cp -f LICENSE vscode/LICENSE.txt
cd vscode || { echo "'vscode' dir not found"; exit 1; }
{ set +x; } 2>/dev/null
# {{{ product.json
cp product.json{,.bak}
@@ -56,6 +58,10 @@ if [[ "${DISABLE_UPDATE}" != "yes" ]]; then
else
setpath "product" "downloadUrl" "https://github.com/VSCodium/vscodium/releases"
fi
# if [[ "${OS_NAME}" == "windows" ]]; then
# setpath_json "product" "win32VersionedUpdate" "true"
# fi
fi
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
@@ -81,7 +87,7 @@ if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
setpath "product" "win32UserAppId" "{{ED2E5618-3E7E-4888-BF3C-A6CCC84F586F}"
setpath "product" "win32x64UserAppId" "{{20F79D0D-A9AC-4220-9A81-CE675FFB6B41}"
setpath "product" "win32arm64UserAppId" "{{2E362F92-14EA-455A-9ABD-3E656BBBFE71}"
setpath "product" "tunnelApplicationName" "codium-tunnel-insiders"
setpath "product" "tunnelApplicationName" "codium-insiders-tunnel"
setpath "product" "win32TunnelServiceMutex" "vscodiuminsiders-tunnelservice"
setpath "product" "win32TunnelMutex" "vscodiuminsiders-tunnel"
setpath "product" "win32ContextMenu.x64.clsid" "90AAD229-85FD-43A3-B82D-8598A88829CF"
@@ -127,12 +133,13 @@ cat product.json
. ../utils.sh
# {{{ apply patches
{ set +x; } 2>/dev/null
echo "APP_NAME=\"${APP_NAME}\""
echo "APP_NAME_LC=\"${APP_NAME_LC}\""
echo "ASSETS_REPOSITORY=\"${ASSETS_REPOSITORY}\""
echo "BINARY_NAME=\"${BINARY_NAME}\""
echo "GH_REPO_PATH=\"${GH_REPO_PATH}\""
echo "GLOBAL_DIRNAME=\"${GLOBAL_DIRNAME}\""
echo "ORG_NAME=\"${ORG_NAME}\""
echo "TUNNEL_APP_NAME=\"${TUNNEL_APP_NAME}\""
@@ -167,9 +174,9 @@ for file in ../patches/user/*.patch; do
apply_patch "${file}"
fi
done
# }}}
set -x
# }}}
# {{{ install dependencies
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
@@ -191,6 +198,8 @@ else
fi
fi
node build/npm/preinstall.ts
mv .npmrc .npmrc.bak
cp ../npmrc .npmrc
@@ -235,9 +244,7 @@ replace "s|\\[\\/\\* BUILTIN_ANNOUNCEMENTS \\*\\/\\]|$( tr -d '\n' < ../announce
../undo_telemetry.sh
replace 's|Microsoft Corporation|VSCodium|' build/lib/electron.js
replace 's|Microsoft Corporation|VSCodium|' build/lib/electron.ts
replace 's|([0-9]) Microsoft|\1 VSCodium|' build/lib/electron.js
replace 's|([0-9]) Microsoft|\1 VSCodium|' build/lib/electron.ts
if [[ "${OS_NAME}" == "linux" ]]; then
@@ -272,7 +279,7 @@ if [[ "${OS_NAME}" == "linux" ]]; then
sed -i 's|https://code.visualstudio.com|https://vscodium.com|' resources/linux/rpm/code.spec.template
# snapcraft.yaml
sed -i 's|Visual Studio Code|VSCodium|' resources/linux/rpm/code.spec.template
sed -i 's|Visual Studio Code|VSCodium|' resources/linux/rpm/code.spec.template
elif [[ "${OS_NAME}" == "windows" ]]; then
# code.iss
sed -i 's|https://code.visualstudio.com|https://vscodium.com|' build/win32/code.iss

Some files were not shown because too many files have changed in this diff Show More