瀏覽代碼

Merge branch 'master' into insider

Baptiste Augrain 6 月之前
父節點
當前提交
573a70ede1

+ 25 - 16
.github/workflows/insider-linux.yml

@@ -154,22 +154,31 @@ jobs:
       fail-fast: false
       matrix:
         include:
-        - vscode_arch: x64
+        - slug: X64
+          vscode_arch: x64
           npm_arch: x64
           image: vscodium/vscodium-linux-build-agent:focal-x64
-        - vscode_arch: arm64
+        - slug: ARM64
+          vscode_arch: arm64
           npm_arch: arm64
           image: vscodium/vscodium-linux-build-agent:focal-arm64
-        - vscode_arch: armhf
+        - slug: ARM32
+          vscode_arch: armhf
           npm_arch: arm
           image: vscodium/vscodium-linux-build-agent:focal-armhf
-        - vscode_arch: riscv64
+        - slug: RISCV64
+          vscode_arch: riscv64
           npm_arch: riscv64
           image: vscodium/vscodium-linux-build-agent:focal-riscv64
+        - slug: LOONG64
+          vscode_arch: loong64
+          npm_arch: loong64
+          image: vscodium/vscodium-linux-build-agent:trixie-loong64
     container:
       image: ${{ matrix.image }}
     env:
       BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
+      DISABLED: ${{ vars[format('DISABLE_INSIDER_LINUX_APP_{0}', matrix.slug)] }}
       MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
       MS_TAG: ${{ needs.check.outputs.MS_TAG }}
       RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
@@ -185,17 +194,17 @@ jobs:
       - uses: actions/checkout@v4
         with:
           ref: ${{ env.GITHUB_BRANCH }}
-        if: env.SHOULD_BUILD == 'yes'
+        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
 
       - name: Switch to relevant branch
         env:
           PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
         run: ./get_pr.sh
-        if: env.SHOULD_BUILD == 'yes'
+        if: env.DISABLED != 'yes'
 
       - name: Install GH
         run: ./install_gh.sh
-        if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
+        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
 
       - name: Check existing VSCodium tags/releases
         env:
@@ -203,38 +212,38 @@ jobs:
           DISABLE_APPIMAGE: ${{ vars.DISABLE_INSIDER_APPIMAGE }}
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
         run: ./check_tags.sh
-        if: env.SHOULD_BUILD == 'yes'
+        if: env.DISABLED != 'yes' && 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'
+        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
 
       - name: Download vscode artifact
         uses: actions/download-artifact@v4
         with:
           name: vscode
-        if: env.SHOULD_BUILD == 'yes'
+        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
 
       - name: Build
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
           npm_config_arch: ${{ matrix.npm_arch }}
         run: ./package_linux_bin.sh
-        if: env.SHOULD_BUILD == 'yes'
+        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
 
       - name: Prepare assets
         env:
           SHOULD_BUILD_REH: 'no'
           SHOULD_BUILD_REH_WEB: 'no'
         run: ./prepare_assets.sh
-        if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
+        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
 
       - name: Release
         env:
           GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
           GITHUB_USERNAME: ${{ github.repository_owner }}
         run: ./release.sh
-        if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
+        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
 
       - name: Update versions repo
         env:
@@ -242,7 +251,7 @@ jobs:
           GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
           GITHUB_USERNAME: ${{ github.repository_owner }}
         run: ./update_version.sh
-        if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
+        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
 
       - name: Upload assets
         uses: actions/upload-artifact@v4
@@ -250,7 +259,7 @@ jobs:
           name: bin-${{ matrix.vscode_arch }}
           path: assets/
           retention-days: 3
-        if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
+        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
 
   reh_linux:
     needs:
@@ -267,7 +276,7 @@ jobs:
         - slug: ARM64
           vscode_arch: arm64
           npm_arch: arm64
-        - slug: ARM
+        - slug: ARM32
           vscode_arch: armhf
           npm_arch: arm
         - slug: PPC64

+ 25 - 15
.github/workflows/stable-linux.yml

@@ -153,22 +153,31 @@ jobs:
       fail-fast: false
       matrix:
         include:
-        - vscode_arch: x64
+        - slug: X64
+          vscode_arch: x64
           npm_arch: x64
           image: vscodium/vscodium-linux-build-agent:focal-x64
-        - vscode_arch: arm64
+        - slug: ARM64
+          vscode_arch: arm64
           npm_arch: arm64
           image: vscodium/vscodium-linux-build-agent:focal-arm64
-        - vscode_arch: armhf
+        - slug: ARM32
+          vscode_arch: armhf
           npm_arch: arm
           image: vscodium/vscodium-linux-build-agent:focal-armhf
-        - vscode_arch: riscv64
+        - slug: RISCV64
+          vscode_arch: riscv64
           npm_arch: riscv64
           image: vscodium/vscodium-linux-build-agent:focal-riscv64
+        - slug: LOONG64
+          vscode_arch: loong64
+          npm_arch: loong64
+          image: vscodium/vscodium-linux-build-agent:trixie-loong64
     container:
       image: ${{ matrix.image }}
     env:
       BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
+      DISABLED: ${{ vars[format('DISABLE_STABLE_LINUX_APP_{0}', matrix.slug)] }}
       MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
       MS_TAG: ${{ needs.check.outputs.MS_TAG }}
       RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
@@ -184,16 +193,17 @@ jobs:
       - uses: actions/checkout@v4
         with:
           ref: ${{ env.GITHUB_BRANCH }}
-        if: env.SHOULD_BUILD == 'yes'
+        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
 
       - name: Switch to relevant branch
         env:
           PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
         run: ./get_pr.sh
+        if: env.DISABLED != 'yes'
 
       - name: Install GH
         run: ./install_gh.sh
-        if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
+        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
 
       - name: Check existing VSCodium tags/releases
         env:
@@ -201,38 +211,38 @@ jobs:
           DISABLE_APPIMAGE: ${{ vars.DISABLE_STABLE_APPIMAGE }}
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
         run: ./check_tags.sh
-        if: env.SHOULD_BUILD == 'yes'
+        if: env.DISABLED != 'yes' && 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'
+        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
 
       - name: Download vscode artifact
         uses: actions/download-artifact@v4
         with:
           name: vscode
-        if: env.SHOULD_BUILD == 'yes'
+        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
 
       - name: Build
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
           npm_config_arch: ${{ matrix.npm_arch }}
         run: ./package_linux_bin.sh
-        if: env.SHOULD_BUILD == 'yes'
+        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
 
       - name: Prepare assets
         env:
           SHOULD_BUILD_REH: 'no'
           SHOULD_BUILD_REH_WEB: 'no'
         run: ./prepare_assets.sh
-        if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
+        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
 
       - name: Release
         env:
           GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
           GITHUB_USERNAME: ${{ github.repository_owner }}
         run: ./release.sh
-        if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
+        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
 
       - name: Update versions repo
         env:
@@ -240,7 +250,7 @@ jobs:
           GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
           GITHUB_USERNAME: ${{ github.repository_owner }}
         run: ./update_version.sh
-        if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
+        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
 
       - name: Upload assets
         uses: actions/upload-artifact@v4
@@ -248,7 +258,7 @@ jobs:
           name: bin-${{ matrix.vscode_arch }}
           path: assets/
           retention-days: 3
-        if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
+        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
 
   reh_linux:
     needs:
@@ -265,7 +275,7 @@ jobs:
         - slug: ARM64
           vscode_arch: arm64
           npm_arch: arm64
-        - slug: ARM
+        - slug: ARM32
           vscode_arch: armhf
           npm_arch: arm
         - slug: PPC64

+ 2 - 0
README.md

@@ -187,6 +187,8 @@ The minimal version is limited by the core component Electron, you may want to c
 - [x] GNU/Linux x64 (`deb`, `rpm`, `AppImage`, `snap`, `tar.gz`)
 - [x] GNU/Linux arm64 (`deb`, `rpm`, `snap`, `tar.gz`)
 - [x] GNU/Linux armhf (`deb`, `rpm`, `tar.gz`)
+- [x] GNU/Linux riscv64 (`tar.gz`)
+- [x] GNU/Linux loong64 (`tar.gz`)
 - [x] Windows 10 / Server 2012 R2 or newer x64
 - [x] Windows 10 / Server 2012 R2 or newer arm64
 

+ 7 - 2
check_tags.sh

@@ -431,7 +431,13 @@ elif [[ "${ASSETS}" != "null" ]]; then
         export SHOULD_BUILD_DEB="no"
         export SHOULD_BUILD_RPM="no"
         export SHOULD_BUILD_APPIMAGE="no"
-        export SHOULD_BUILD_TAR="no"
+
+        if [[ -z $( contains "${APP_NAME}-linux-loong64-${RELEASE_VERSION}.tar.gz" ) ]]; then
+          echo "Building on Linux Loong64 because we have no TAR"
+          export SHOULD_BUILD="yes"
+        else
+          export SHOULD_BUILD_TAR="no"
+        fi
 
         if [[ -z $( contains "${APP_NAME_LC}-reh-linux-loong64-${RELEASE_VERSION}.tar.gz" ) ]]; then
           echo "Building on Linux Loong64 because we have no REH archive"
@@ -599,7 +605,6 @@ else
     elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then
       SHOULD_BUILD_DEB="no"
       SHOULD_BUILD_RPM="no"
-      SHOULD_BUILD_TAR="no"
     fi
     if [[ "${VSCODE_ARCH}" != "x64" || "${DISABLE_APPIMAGE}" == "yes" ]]; then
       export SHOULD_BUILD_APPIMAGE="no"

+ 17 - 18
docs/index.md

@@ -6,8 +6,9 @@
   - [Replacements to Microsoft Online Services](#replacement-online-services)
 - [Extensions + Marketplace](#extensions-marketplace)
   - [How to use the OpenVSX Marketplace](#howto-openvsx-marketplace)
-  - [How to use the VS Code Marketplace](#howto-vscode-marketplace)
+  - [How to use a different extension gallery](#howto-switch-marketplace)
   - [How to self host your own VS Code Marketplace](#howto-selfhost-marketplace)
+  - [Visual Studio Marketplace](#visual-studio-marketplace)
   - [Proprietary Debugging Tools](#proprietary-debugging-tools)
   - [Proprietary Extensions](#proprietary-extensions)
 - [Extensions compatibility](https://github.com/VSCodium/vscodium/blob/master/docs/extensions-compatibility.md)
@@ -66,29 +67,26 @@ See [this article](https://www.gitpod.io/blog/open-vsx/) for more information on
 ### <a id="howto-switch-marketplace"></a>How to use a different extension gallery
 
 You can switch from the pre-set Open VSX Registry by configuring the endpoints using the following solutions.
-These examples use the URLs for Microsoft's VS Code Marketplace, see [below](#howto-vscode-marketplace) for more information on that.
 
-With the following environment variables:
-- `VSCODE_GALLERY_SERVICE_URL='https://marketplace.visualstudio.com/_apis/public/gallery'`
-- `VSCODE_GALLERY_ITEM_URL='https://marketplace.visualstudio.com/items'`
-- `VSCODE_GALLERY_CACHE_URL='https://vscode.blob.core.windows.net/gallery/index'`
-- `VSCODE_GALLERY_CONTROL_URL=''`
+You can either use the following environment variables:
+- `VSCODE_GALLERY_SERVICE_URL`
+- `VSCODE_GALLERY_ITEM_URL`
+- `VSCODE_GALLERY_CACHE_URL`
+- `VSCODE_GALLERY_CONTROL_URL`
 
 Or by creating a custom `product.json` at the following location (replace `VSCodium` by `VSCodium - Insiders` if you use that):
 - Windows: `%APPDATA%\VSCodium` or `%USERPROFILE%\AppData\Roaming\VSCodium`
 - macOS: `~/Library/Application Support/VSCodium`
 - Linux: `$XDG_CONFIG_HOME/VSCodium` or `~/.config/VSCodium`
 
-with the content:
-
-- Note: set `cacheUrl` to empty string for every other extension gallery
+with the content like:
 
 ```jsonc
 {
   "extensionsGallery": {
-    "serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
-    "itemUrl": "https://marketplace.visualstudio.com/items",
-    "cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
+    "serviceUrl": "",
+    "itemUrl": "",
+    "cacheUrl": "",
     "controlUrl": ""
   }
 }
@@ -96,7 +94,7 @@ with the content:
 
 ### <a id="howto-selfhost-marketplace"></a>How to self-host your own extension gallery
 
-Individual developers and enterprise companies in regulated or security-conscious industries can self-host their own extension gallery. In all of these cases, you'd enter its endpoint URLs as noted above, replacing `marketplace.visualstudio.com` with `your-self-hosted-marketplace-address.example.com` (or IP address), setting `cacheUrl` / `VSCODE_GALLERY_CACHE_URL` to an empty string.
+Individual developers and enterprise companies in regulated or security-conscious industries can self-host their own extension gallery.
 
 There are likely other options, but the following were reported to work:
 
@@ -109,13 +107,14 @@ There are likely other options, but the following were reported to work:
 
     > `code-marketplace` is a self-contained go binary that does not have a frontend or any mechanisms for extension authors to add or update extensions in the marketplace. It simply reads extensions from file storage and provides an API for VSCode compatible editors to consume.
 
-### <a id="howto-vscode-marketplace"></a>How to use the VS Code Marketplace
+### <a id="visual-studio-marketplace"></a>Visual Studio Marketplace
 
-As with any online service, ensure you've understood [its terms of use](https://aka.ms/vsmarketplace-ToU).
-Also note that this extension gallery hosts multiple extensions that are non-free and have license-agreements that explicitly forbid using them in non-Microsoft products, along with using telemetry.
+As with any online service, ensure you've understood [its terms of use](https://aka.ms/vsmarketplace-ToU) which include:
+> Marketplace Offerings are intended for use only with Visual Studio Products and Services and you may only install and use Marketplace Offerings with Visual Studio Products and Services.
 
-The endpoint URLs are given in the [example above](#howto-switch-marketplace).
+So, we can't provide any help if you intend to infringe their terms of use.
 
+Also note that this extension gallery hosts multiple extensions that are non-free and have license-agreements that explicitly forbid using them in non-Microsoft products, along with using telemetry.
 
 ### <a id="proprietary-debugging-tools"></a>Proprietary Debugging Tools
 

+ 6 - 0
electron_linux_loong64.sh

@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+
+set -ex
+
+export ELECTRON_VERSION="32.2.5"
+export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}"

+ 1 - 0
electron_linux_loong64.sha256sums

@@ -0,0 +1 @@
+8d8b540e36a62b778b0fb5e3798a2d47c2c0475925b78ff4a101aa864dfb28a9 *electron-v32.2.5-linux-loong64.zip

+ 1 - 3
electron_linux_riscv64.sh

@@ -2,7 +2,5 @@
 
 set -ex
 
-export ELECTRON_VERSION="32.2.1"
+export ELECTRON_VERSION="32.2.5"
 export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}.riscv1"
-
-echo "03b1b478ab7b9d40da5c47edef0bbeeb528a8bed5335018ff38e513b7df43c7f *electron-v${ELECTRON_VERSION}-linux-riscv64.zip" >> build/checksums/electron.txt

+ 11 - 0
electron_linux_riscv64.sha256sums

@@ -0,0 +1,11 @@
+903fc8a4d1649d491a80e8a1b417f9604352188aa64acb0ec2bfbe7035667cbd *chromedriver-v32.2.5-linux-riscv64.zip
+78277b6fe477fb9dedb2557ce235d8b33e57fa1226eea4484284ae8bc021053d *electron-v32.2.5-linux-riscv64-debug.tar.zst
+e6d9b849fec2df41f9ee858e20da25d4c4bf2033c068e21ee5600f35e4aa0271 *electron-v32.2.5-linux-riscv64-symbols.tar.zst
+af42d570c50fd5e0294a4f9721bf056dd0d8274ba72dd28f08244ff518416ecd *electron-v32.2.5-linux-riscv64.zip
+996273aa6758258d1d5c5d6d7f45d9f0b24e443de27e4c09ec9d2cd23e003711 *ffmpeg-v32.2.5-linux-riscv64.zip
+6b51c02c6714dd1278932c20e05b54b2890aa880070f24b7e7a5fbe09b598ea6 *hunspell-dictionaries.zip
+facc5d45c53672b84a97e28c6415ad2ab8c35474d447ddb6dbb95d43794d5644 *libcxx-headers.zip
+055bc4b6f2fb6feaf2d3802243a0a763536c5e94cbd4fdd1ebbc2f9979f5bfae *libcxx-objects-v32.2.5-linux-riscv64.zip
+984fa5b7d0a5752c17d3f02f7341c691b5aa2f3badb0965c318290562fe35471 *libcxxabi-headers.zip
+b63b3cbcbbc5c019ee284724c95d2f391b123d516f1320137d3fbcb06b2f7271 *mksnapshot-v32.2.5-linux-riscv64.zip
+ecc04b500a094da5ed21d22b20047698fa03e632e0f034651e14e25a07be4036 *node-v32.2.5-headers.tar.gz

+ 17 - 0
package_linux_bin.sh

@@ -13,6 +13,7 @@ chown -R root:root vscode
 
 cd vscode || { echo "'vscode' dir not found"; exit 1; }
 
+export VSCODE_PLATFORM='linux'
 export VSCODE_SKIP_NODE_VERSION_CHECK=1
 export VSCODE_SYSROOT_PREFIX='-glibc-2.17'
 
@@ -29,9 +30,21 @@ elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
   export ELECTRON_SKIP_BINARY_DOWNLOAD=1
   export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
   export VSCODE_SKIP_SETUPENV=1
+elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then
+  export VSCODE_ELECTRON_REPOSITORY='darkyzhou/electron-loong64'
+  export ELECTRON_SKIP_BINARY_DOWNLOAD=1
+  export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
+  export VSCODE_SKIP_SETUPENV=1
 fi
 
 if [[ -f "../electron_linux_${VSCODE_ARCH}.sh" ]]; then
+  # add newline at the end of the file
+  echo "" >> build/checksums/electron.txt
+
+  if [[ -f "../electron_linux_${VSCODE_ARCH}.sha256sums" ]]; then
+    cat "../electron_linux_${VSCODE_ARCH}.sha256sums" >> build/checksums/electron.txt
+  fi
+
   # shellcheck disable=SC1090
   source "../electron_linux_${VSCODE_ARCH}.sh"
 
@@ -107,6 +120,10 @@ node build/azure-pipelines/distro/mixin-npm
 
 yarn gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
 
+if [[ -f "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" ]]; then
+  bash "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" "../VSCode-linux-${VSCODE_ARCH}/resources/app/node_modules"
+fi
+
 find "../VSCode-linux-${VSCODE_ARCH}" -print0 | xargs -0 touch -c
 
 cd ..

+ 2 - 2
package_linux_reh.sh

@@ -174,7 +174,7 @@ if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
   pushd "../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
 
   if [[ -f "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" ]]; then
-    bash "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh"
+    bash "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" "node_modules"
   fi
 
   echo "Archiving REH"
@@ -193,7 +193,7 @@ if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
   pushd "../vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
 
   if [[ -f "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" ]]; then
-    bash "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh"
+    bash "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" "node_modules"
   fi
 
   echo "Archiving REH-web"

+ 11 - 0
patches/osx/fix-emulated-urls.patch

@@ -0,0 +1,11 @@
+diff --git a/src/vs/workbench/electron-sandbox/window.ts b/src/vs/workbench/electron-sandbox/window.ts
+index 90c9654..3ef5d32 100644
+--- a/src/vs/workbench/electron-sandbox/window.ts
++++ b/src/vs/workbench/electron-sandbox/window.ts
+@@ -257,4 +257,4 @@ export class NativeWindow extends BaseWindow {
+ 						const quality = this.productService.quality;
+-						const stableURL = 'https://code.visualstudio.com/docs/?dv=osx';
+-						const insidersURL = 'https://code.visualstudio.com/docs/?dv=osx&build=insiders';
++						const stableURL = 'https://github.com/VSCodium/vscodium/releases/latest';
++						const insidersURL = 'https://github.com/VSCodium/vscodium-insiders/releases/latest';
+ 						this.openerService.open(quality === 'stable' ? stableURL : insidersURL);

+ 192 - 0
patches/update-electron.patch

@@ -0,0 +1,192 @@
+diff --git a/.npmrc b/.npmrc
+index e3a35cc..9b4bf04 100644
+--- a/.npmrc
++++ b/.npmrc
+@@ -1,3 +1,3 @@
+ disturl="https://electronjs.org/headers"
+-target="32.2.1"
++target="32.2.5"
+ ms_build_id="10427718"
+diff --git a/build/checksums/electron.txt b/build/checksums/electron.txt
+index 4d7f8de..fce1ffb 100644
+--- a/build/checksums/electron.txt
++++ b/build/checksums/electron.txt
+@@ -1,75 +1,75 @@
+-29acb63bb116a08e97797042505d48eecfa396f5d84a12114573aa70acaa48ec *chromedriver-v32.2.1-darwin-arm64.zip
+-a1fd00f8634c6b4d9e28ce8ac69684ea24f5274c9f17c0e39bd149b34568b84b *chromedriver-v32.2.1-darwin-x64.zip
+-6b311318f5a537e21d2d832609ce8306b4806e4c62aaa132ee87e063d45f5b00 *chromedriver-v32.2.1-linux-arm64.zip
+-ac1529a8f6e4c77fdae3bc92bc5bfcb40c3b19def0772de9d1874da7223517b7 *chromedriver-v32.2.1-linux-armv7l.zip
+-2329d1307729c714bef71d9f8250ed510b5a1ae07beefddee2371af70f712297 *chromedriver-v32.2.1-linux-x64.zip
+-84566e08029ea9b3d939f2329332b6b6d0c4a886f2aa2f2f53818b90af16a717 *chromedriver-v32.2.1-mas-arm64.zip
+-71c6e443617b6dd9b9962ff566ac7b8856db0a2e81b8b6ee7f985ffc96bb409a *chromedriver-v32.2.1-mas-x64.zip
+-0340ecc564b68a1632ea76f7e77fc06a4f150ea2fbb3c599c0dc8d78499c39e3 *chromedriver-v32.2.1-win32-arm64.zip
+-9d6d1a0b4863a4de2587e746b1a25da698076eda9268ef70ca24d43b39514859 *chromedriver-v32.2.1-win32-ia32.zip
+-1dc504383f63b2f178b902de41ba0efa28650bde54c3b2ebeee827c87a2768f3 *chromedriver-v32.2.1-win32-x64.zip
+-ba8e9ac663cc2edea61e7ddf12af835bf6ebb02b8d4ae6362c1f39c2390e7d22 *electron-api.json
+-a3544e9894f1ca544b0c8231f7c34f90a29f0ce3fd7853d592d51eb4ad4b31c5 *electron-v32.2.1-darwin-arm64-dsym-snapshot.zip
+-89377cde729f99707cb822e88999cfc312c4b82495600f38d13593c3de1b47f4 *electron-v32.2.1-darwin-arm64-dsym.zip
+-4e13b04efd03c237c3421b551180bc2b8dc6c35d49acd475e42c11aaa6b199aa *electron-v32.2.1-darwin-arm64-symbols.zip
+-906fbf9e7a5ee6d49ea107fdfd0e98bc80884fbf1f6ff38d824453f58c6ec259 *electron-v32.2.1-darwin-arm64.zip
+-fb3e5eb15915b4328820ebaf2c4a056f4ac374eb8e24479bdfd6f0cf8e1da1be *electron-v32.2.1-darwin-x64-dsym-snapshot.zip
+-0a95df2a44e0a42b9076e58d7e539e91ba7e583de77a8e94695d9c6dd03f201a *electron-v32.2.1-darwin-x64-dsym.zip
+-4864122e38f423f6ff9a8625696f323e908e613ebdab8ed7d40b374d6f9dec13 *electron-v32.2.1-darwin-x64-symbols.zip
+-56e2e4252b4d4e92075345f0b9dbefc8db49bdc6a4c45a87000f3cc705057907 *electron-v32.2.1-darwin-x64.zip
+-692aaf464bdb7bd7538e6392885571ef4d5f4d02319f84b99ada1827fbdfabf9 *electron-v32.2.1-linux-arm64-debug.zip
+-86161e2f6b1ca5cd6eb998863798186d9be270535d6912075001588e3e35e90d *electron-v32.2.1-linux-arm64-symbols.zip
+-6500fdbff988e0cda909643ba8439660a207c9a2d393fa63f680a0337e530342 *electron-v32.2.1-linux-arm64.zip
+-692aaf464bdb7bd7538e6392885571ef4d5f4d02319f84b99ada1827fbdfabf9 *electron-v32.2.1-linux-armv7l-debug.zip
+-cfe4cfb7a6818902b5cc1b493ec2f7a9e4dc8fcb63346ddf75bec3496658a363 *electron-v32.2.1-linux-armv7l-symbols.zip
+-7ffcce19ebdb30a9db78671c7f222edde66181a37c895834682d224e459200fc *electron-v32.2.1-linux-armv7l.zip
+-1e0318a7d125ebe015a5d4f214d186cd10e36021cc8555d376d8fda15a28a5ac *electron-v32.2.1-linux-x64-debug.zip
+-9d857cd5bdc81abb965e2e1bb73af8de31ef74cd182de52160b7afe805837574 *electron-v32.2.1-linux-x64-symbols.zip
+-4fc58e6e79e5b5793ec9b5d35c8926fcad5352b6a1b21b3edf42343487c90185 *electron-v32.2.1-linux-x64.zip
+-5fba9ea6c0d49ecd8bbbc87a9da6f860b901892e7ea487013e353bc2e951fbde *electron-v32.2.1-mas-arm64-dsym-snapshot.zip
+-71c2cdc23e61b7f13bda837fb9dfb5fdb9c6ca4fa755f2596f70874caaeeacea *electron-v32.2.1-mas-arm64-dsym.zip
+-448df71d1e62ca570b3f8b7d35b21eaa2870ce4877f12465cf6e54e90a16ac12 *electron-v32.2.1-mas-arm64-symbols.zip
+-4c53ef19385ab5a0040e6eda3a8f88f42b5f53de0e9a6118333613a1388fc39f *electron-v32.2.1-mas-arm64.zip
+-cbc5b08014cda37d6943f8a388ba1386f5ee1af3ca7a5ed28c12bf5fbd00f633 *electron-v32.2.1-mas-x64-dsym-snapshot.zip
+-a6bfe31ea9cef19794418d169872d5b68130b49989d7e2ee3d83a2853d4e706c *electron-v32.2.1-mas-x64-dsym.zip
+-a9ce94d21c61d3cf9f8319ae394c779058bc2377916e0330f0447e8c79b5b0e1 *electron-v32.2.1-mas-x64-symbols.zip
+-8b57ced11b88fa80f9a986662658cf4cb40a1138811ad6129fc826988b31f9ab *electron-v32.2.1-mas-x64.zip
+-5fcb399829066859399e8e3e7c5574b2e8885f632661fc2830da02be3d5803d2 *electron-v32.2.1-win32-arm64-pdb.zip
+-eb16ad799a8db120b1e4b13533f9f52e844b6252308ea9e182f290c7657a5361 *electron-v32.2.1-win32-arm64-symbols.zip
+-48b81d28fdceb4ab3ca27650d79bab910a1a19dbda72271882bfdc877c71975f *electron-v32.2.1-win32-arm64-toolchain-profile.zip
+-3ac484f124c2012c0bff7640e82bed268876de1e3c6776716b5883d2de043a4f *electron-v32.2.1-win32-arm64.zip
+-75b6117bd0462641d93de9e0a7aac9c6a1a052c688f59426a66aafe34c7bb914 *electron-v32.2.1-win32-ia32-pdb.zip
+-10d4b64e7d2abeef1c93f2ec58d55715462229d20f61edf50bf5ceb4fce5719b *electron-v32.2.1-win32-ia32-symbols.zip
+-48b81d28fdceb4ab3ca27650d79bab910a1a19dbda72271882bfdc877c71975f *electron-v32.2.1-win32-ia32-toolchain-profile.zip
+-e5d4e2b10e5215b8a7133cc3fa39875ea18e8d4ea41f9ba9a9ae9f13a4090f53 *electron-v32.2.1-win32-ia32.zip
+-83055f775e93c0be5c17a4312a552d3d0abb86a36b354f30973917a44d7a5656 *electron-v32.2.1-win32-x64-pdb.zip
+-38158fd465eb41674767707bfbd87ec67874aac9bd42c550aad6901035884697 *electron-v32.2.1-win32-x64-symbols.zip
+-48b81d28fdceb4ab3ca27650d79bab910a1a19dbda72271882bfdc877c71975f *electron-v32.2.1-win32-x64-toolchain-profile.zip
+-494282c481eca93e1ee1d3e0df65ba0da5cec09b0c15bcc81521eee108839190 *electron-v32.2.1-win32-x64.zip
+-27050115afac161a368be0b92e842f65d5c7021b5b508b71ad972ce252bbbb3f *electron.d.ts
+-d8c054da57903f4e3297edd4de69177e9556feca9f2fc71b833608a486a7cae2 *ffmpeg-v32.2.1-darwin-arm64.zip
+-ac22a993719b804b560ed73ff1ad339df3eb126eeb9f5d496174a293ba952d78 *ffmpeg-v32.2.1-darwin-x64.zip
+-3f1eafaf4cd90ab43ba0267429189be182435849a166a2cbe1faefc0d07217c4 *ffmpeg-v32.2.1-linux-arm64.zip
+-3db919bc57e1a5bf7c1bae1d7aeacf4a331990ea82750391c0b24a046d9a2812 *ffmpeg-v32.2.1-linux-armv7l.zip
+-fe7d779dddbfb5da5999a7607fc5e3c7a6ab7c65e8da9fee1384918865231612 *ffmpeg-v32.2.1-linux-x64.zip
+-de4b05b040207d6807444f4289c0adc7f4947de0e32a0441073085cd76676648 *ffmpeg-v32.2.1-mas-arm64.zip
+-b007a2c582cd55727453fdf51ca3521d76f3ebeda8bfb3c2eeb56d56ec17a6a7 *ffmpeg-v32.2.1-mas-x64.zip
+-c72c467834669575ca1a5e34a624db71da3cbe63223f63d8f92bc4d2551a4164 *ffmpeg-v32.2.1-win32-arm64.zip
+-a9d26ba87262631ba279f6eae4164bcb289abe99c5a10e56c2e28e1e05b530bf *ffmpeg-v32.2.1-win32-ia32.zip
+-98c917caa3cd7ad10f2c48669c377a028d42673515034c05c3cac461213d5535 *ffmpeg-v32.2.1-win32-x64.zip
+-8b685975c9aeae9e5d8df85ad797492419e6414aa68a87d14f6fbb923d0f7dad *hunspell_dictionaries.zip
+-ee3871c7b533fc1c24baab89d25b60fc3e5f339b4c3e7767c768d833b0a828f4 *libcxx-objects-v32.2.1-linux-arm64.zip
+-3a01ecfc2f4e91bdc20280d8d3954347c0abd1bd53256e79a053d05f6a3ec664 *libcxx-objects-v32.2.1-linux-armv7l.zip
+-ab43146f8ca665a7064da6a82af2c7e3c3adce0788fb55862991f3a491bc692d *libcxx-objects-v32.2.1-linux-x64.zip
+-bb9dc46ad47b265fa353c42fc54ba584c2c890521069ea9de4c12cddb96297ea *libcxx_headers.zip
+-6846d928164a74dcad442da06cd79ecc788aa52815b8334e3a8a187f1650ce4f *libcxxabi_headers.zip
+-8f4cb6c9358c1bf9a0c81dcf94dd1f3683c42f3407441ed1ce074851bca0cbed *mksnapshot-v32.2.1-darwin-arm64.zip
+-ca0919eaa60722e8e864eeae331a571e10ecf02bb1bcd9028849436a15db4416 *mksnapshot-v32.2.1-darwin-x64.zip
+-1858861baadfd453eac7e78de2b1837253d4e44084aff22d8b6813602e0a3f4e *mksnapshot-v32.2.1-linux-arm64-x64.zip
+-15a713a85f2a3082c6b8943315bb7b9ab850f34a73544a619414f586e69b9b08 *mksnapshot-v32.2.1-linux-armv7l-x64.zip
+-5b82fba9a2ee305ef4f0818c406c726cfebc090b84fdaf39e76954f360740445 *mksnapshot-v32.2.1-linux-x64.zip
+-eef68fa0ea8ab11be45447e7e89fcac8dce3261d207807cd0d8366785964d7fc *mksnapshot-v32.2.1-mas-arm64.zip
+-26fcd020007a857611adad7ce7ba0b83b008edb130d87c93183c053b73f61a76 *mksnapshot-v32.2.1-mas-x64.zip
+-fbe7b665451fc4c48c4b09fe949374aedf95563b7d0b7f1927974b347205a8f9 *mksnapshot-v32.2.1-win32-arm64-x64.zip
+-3e0cc1d1cfa749a6364e2124b63583d7543c95c744c10400a6834726337468d0 *mksnapshot-v32.2.1-win32-ia32.zip
+-ef506867e5bb87c7e4380f9d9e93902d180a7425e1528acdd8283779e902f51e *mksnapshot-v32.2.1-win32-x64.zip
++fed2c175e3b63682e7b939b704b524e5af7e664f6b020cfec4895b6258190f7c *chromedriver-v32.2.5-darwin-arm64.zip
++fa40996a7d0c5b830d101a0b6511300ff4477995b5af86b1e8be5e21341caa8e *chromedriver-v32.2.5-darwin-x64.zip
++9881960752aa2dee6577ab4c312d0a5e69f596c209cab32e2c5bd3b32222c79a *chromedriver-v32.2.5-linux-arm64.zip
++864754d188b9e7a15abd97a3b41d7d53db300ef3401b76fa81633c298e3b09f0 *chromedriver-v32.2.5-linux-armv7l.zip
++75e0d1f19e61caaa2b0f50966623f2948fffc864138f6ee8fe38791b733fd182 *chromedriver-v32.2.5-linux-x64.zip
++360695b3ac1f1faa9caf0c670d81ed065e230822d77343d7dd6aa2988b2ecf99 *chromedriver-v32.2.5-mas-arm64.zip
++03778e3fda6d50a9f122a3e5e4a5723953918f7b67ef5a41578ae1c41a3c2579 *chromedriver-v32.2.5-mas-x64.zip
++807a45c2c40a3da025a7fd394d2ef34ed78b0719f2af924694200818cca1c0ca *chromedriver-v32.2.5-win32-arm64.zip
++37da8dd36a36dbafa3b20101c5a3066ca03a36db45e478872b1c88231007f35e *chromedriver-v32.2.5-win32-ia32.zip
++8f624e3969185ea47840c3f65d6ff2e12a2d7d8b6251b15c8b51ff690bd0a517 *chromedriver-v32.2.5-win32-x64.zip
++2424f6f47c8c2e59546fad9d93324772ea1b6d290ce4672b6689ffc45c96a950 *electron-api.json
++e4b455bf2339bf3945c7eb3c9faa52f1122eb9d4b97cedeced5887c01125c33d *electron-v32.2.5-darwin-arm64-dsym-snapshot.zip
++016c1ec183649162c436c599bdc6f9a02a635fec4b30b99f97cc25829d70f07c *electron-v32.2.5-darwin-arm64-dsym.zip
++0cc937ba248fde2098e9affdd6aa0ea2f0091ab700d8ac9b46cba4a11a0adaff *electron-v32.2.5-darwin-arm64-symbols.zip
++add26413ae4b6055a37335be8a551007b8f47759ee3bed19d3ab0463c6b3422a *electron-v32.2.5-darwin-arm64.zip
++3f8802fba7a8274308b98d4ac50a730f3e75ed447cca70ae63395d6ebd1d2bc9 *electron-v32.2.5-darwin-x64-dsym-snapshot.zip
++f7a427b0b884be02f89b7a5b9a8dc9a6d573cf0c3a342e18483b4719a1c9a5b0 *electron-v32.2.5-darwin-x64-dsym.zip
++85b68c3869332a33d5ad3d90639b5d8e1777e67df9ae23ac85d1fa412d1ae98c *electron-v32.2.5-darwin-x64-symbols.zip
++67bb4e9e02f244516f10b78b380aa19a7026e025d568878d15035debe758eef4 *electron-v32.2.5-darwin-x64.zip
++8a3f519c6a31d40c9849e6641668a152e73ec210e3477d1bf2ed957ac9955b2d *electron-v32.2.5-linux-arm64-debug.zip
++9c64b56211d4013643cec784b030456b6b06f01cbdb96d4acc90dd5c91b74242 *electron-v32.2.5-linux-arm64-symbols.zip
++0215737ef1e8bb7ca2def455ec4abcfd5743a9fa7af0b7cfa608295a54f5aae3 *electron-v32.2.5-linux-arm64.zip
++8a3f519c6a31d40c9849e6641668a152e73ec210e3477d1bf2ed957ac9955b2d *electron-v32.2.5-linux-armv7l-debug.zip
++0f84c7b3be36ab416a14353ec92f439d1acd9f30be7308ad3b3b514425d7ee9c *electron-v32.2.5-linux-armv7l-symbols.zip
++e692c6d20cdea3f0e26519ac660b762e8119962f6b6e0032fe2a7fb73f4d205c *electron-v32.2.5-linux-armv7l.zip
++1e39d6c04ab451072539aba551df6900dd6f423678f491c3437643d3f18cf657 *electron-v32.2.5-linux-x64-debug.zip
++ab3c4a7beb1e5f18259142a70eecaa5c06eb72a23a692aecee87598dc413ea58 *electron-v32.2.5-linux-x64-symbols.zip
++6d92ff595786c3a8926684c6983fdcb09b20dc34b37a1affb4c4dbfb659fee1e *electron-v32.2.5-linux-x64.zip
++0fac69cb73abbd8a3fefdc80008053d68f0cefa3d5a79f1a849ae6dc374d2778 *electron-v32.2.5-mas-arm64-dsym-snapshot.zip
++cbced9a83753637506b3c0f1c57b42b19dffb4494746e0a2b73c8bce45f4b5ae *electron-v32.2.5-mas-arm64-dsym.zip
++d5b2f03a476a96d8e87670c2e07a84b872881bc49f327145a80b3f063490e0e2 *electron-v32.2.5-mas-arm64-symbols.zip
++b95e7232b208568e8d7f278eb341cdf88b8c5106403f5abedc495305e3b6744f *electron-v32.2.5-mas-arm64.zip
++5031bafcb557ad61a75f925147917b575428671a252ebbf6b77f53410ae3e434 *electron-v32.2.5-mas-x64-dsym-snapshot.zip
++206e023d61e299289869f96ad218863a14a5e71f05b48f16de1cc48e53ba028f *electron-v32.2.5-mas-x64-dsym.zip
++7bdb96b90ffa22ef1156c508f957c66ad1033b3be1cb1a3b9dd7bb98c9088696 *electron-v32.2.5-mas-x64-symbols.zip
++2f46aa2c8a9a7f28a1bd148a41d170389396c457634a896bef38e472b5e66d9c *electron-v32.2.5-mas-x64.zip
++f614582a35d4e4d68ea6861d35d49062908a202e208cf09354ef66982c540f7f *electron-v32.2.5-win32-arm64-pdb.zip
++c8f8375ab562970ca02ba83755c69fa104a2621ad481d25f93cec797b64bf6bc *electron-v32.2.5-win32-arm64-symbols.zip
++48b81d28fdceb4ab3ca27650d79bab910a1a19dbda72271882bfdc877c71975f *electron-v32.2.5-win32-arm64-toolchain-profile.zip
++b3d6ed4c2ccc567bcd4f405ed20b33e4ba9dd0bcfb54cb99017a0ed2eb8ec1ef *electron-v32.2.5-win32-arm64.zip
++2d5ca8fc59b5cbb8799dd1ee2916725ed7f12d2b6264062e19b1378aca7b326a *electron-v32.2.5-win32-ia32-pdb.zip
++fd8de6c8ccf7094bf83d5ce86866d9e73b082dc4f28250bc939431d79a46a2d9 *electron-v32.2.5-win32-ia32-symbols.zip
++48b81d28fdceb4ab3ca27650d79bab910a1a19dbda72271882bfdc877c71975f *electron-v32.2.5-win32-ia32-toolchain-profile.zip
++b426125e315e2819c60b39b2e443d8a76e5b1fc320595b5b560b00e931c6a0d1 *electron-v32.2.5-win32-ia32.zip
++8bb5edd099cc5ef155179928fba6bc3d78b7111eed8e6b9727bc068c787ec235 *electron-v32.2.5-win32-x64-pdb.zip
++329eb0d32cb6c03c617dc5b5378c97a6f359b63492c00207a73ec0dd427d70a4 *electron-v32.2.5-win32-x64-symbols.zip
++48b81d28fdceb4ab3ca27650d79bab910a1a19dbda72271882bfdc877c71975f *electron-v32.2.5-win32-x64-toolchain-profile.zip
++0ae7add4862e34675384e7119902e6d2384d2712a5ebe98d8994b45dfa6ead12 *electron-v32.2.5-win32-x64.zip
++146a192ac5e05bbd8172e3107cd4a1cae2b4882c98272ec735a2628889803104 *electron.d.ts
++3f1f2db3beade0ef71ba4e8c1549368133f9aad1f377db91aba3dbac773dc770 *ffmpeg-v32.2.5-darwin-arm64.zip
++441b3459f3e684f1444a7a88b56d88efc7ed0f466efc71b4daa32b467442231a *ffmpeg-v32.2.5-darwin-x64.zip
++3f1eafaf4cd90ab43ba0267429189be182435849a166a2cbe1faefc0d07217c4 *ffmpeg-v32.2.5-linux-arm64.zip
++3db919bc57e1a5bf7c1bae1d7aeacf4a331990ea82750391c0b24a046d9a2812 *ffmpeg-v32.2.5-linux-armv7l.zip
++fe7d779dddbfb5da5999a7607fc5e3c7a6ab7c65e8da9fee1384918865231612 *ffmpeg-v32.2.5-linux-x64.zip
++20f83028f1e263287bc83ec817d548a3e9c160aeadeb97bea0b40b6c256e6b2f *ffmpeg-v32.2.5-mas-arm64.zip
++921551e865c81047259b77325c5d1bfc1cd29463c2eab7d9b37bb2bb507e9e25 *ffmpeg-v32.2.5-mas-x64.zip
++713563936304f814324874686f19bcdc6b7d6472e8d4f4ab459970a059123d7a *ffmpeg-v32.2.5-win32-arm64.zip
++616b736527e7a2b07fd62d8cff7c62d3a2f41725c4d45a6075c9354b5d758085 *ffmpeg-v32.2.5-win32-ia32.zip
++517786aabef79bb55fd932676ad3ccacd776fac47b230067f3b939207ad7f204 *ffmpeg-v32.2.5-win32-x64.zip
++d66731d99d7a4f586a86f3eea4b5807e7601da8d7b697a6ae0edff296b6a2206 *hunspell_dictionaries.zip
++f5a90b865c32194e2e593c790ad05fb11f2011208796a0ad5438ac03792a3da0 *libcxx-objects-v32.2.5-linux-arm64.zip
++dfcbae6c5b65397ec7ecf56fe9675ac2ca8a6507cdfe3abee10acd36c55536ad *libcxx-objects-v32.2.5-linux-armv7l.zip
++a358503519eb66da7ae35d5ac0cf47482c045e2c03a6a0dd70e77e94f44d95c9 *libcxx-objects-v32.2.5-linux-x64.zip
++7c1d5dff2dc9e9a450ec29da808ef1720bf129b71e7418b8815e8525da65f899 *libcxx_headers.zip
++875d1697b3cde375ed63cb56104b1c53157bdd611fb3938f086be9579177bce2 *libcxxabi_headers.zip
++1639adba066f123dbbf9d632a3ea786e7bc8e9027ff103972207e818e08946fb *mksnapshot-v32.2.5-darwin-arm64.zip
++de90ae0b520d8ff3a175e632f627ccc413260d4e19e40c09cd9b1b75b4482611 *mksnapshot-v32.2.5-darwin-x64.zip
++62029765e6b48ceee36a6b6c9e3252b386271c22839bafd21dabd2f3f1f19901 *mksnapshot-v32.2.5-linux-arm64-x64.zip
++be21fd7442a9d599d70de8fb8776fe778b979fe85a47bfb92e57ac3158d2abcc *mksnapshot-v32.2.5-linux-armv7l-x64.zip
++9a4f258c13b69846f405344e400a9dd149c943c39c04cf1799b6dc19cc223449 *mksnapshot-v32.2.5-linux-x64.zip
++b53b42662802239c6f49e5c9805ed05463197ddbd8ca35436389adb4420e4ebb *mksnapshot-v32.2.5-mas-arm64.zip
++f32544d647db6cdea6e538d29f05e65b01b7d8d98b8904ed7961e5ed7204cc4b *mksnapshot-v32.2.5-mas-x64.zip
++8fc8daed10eea093d185a4bda35dc95789e8f99932193b6b9ff1ff5411f39c38 *mksnapshot-v32.2.5-win32-arm64-x64.zip
++ce5d40a5e795be00faefa0383e32a96b8d41d3c1c050d2b86944084cb03de9db *mksnapshot-v32.2.5-win32-ia32.zip
++7e9451ad4308f9d7a3dcd8e3ce55d029f82128a6b1370adb086e8f854d58d4e9 *mksnapshot-v32.2.5-win32-x64.zip
+\ No newline at end of file
+diff --git a/package-lock.json b/package-lock.json
+index a8ced2d..07d99f8 100644
+--- a/package-lock.json
++++ b/package-lock.json
+@@ -96,3 +96,3 @@
+         "deemon": "^1.8.0",
+-        "electron": "32.2.1",
++        "electron": "32.2.5",
+         "eslint": "^9.11.1",
+@@ -5789,5 +5789,5 @@
+     "node_modules/electron": {
+-      "version": "32.2.1",
+-      "resolved": "https://registry.npmjs.org/electron/-/electron-32.2.1.tgz",
+-      "integrity": "sha512-GCPI/5hU34pPcNltNpz+uylhhuTm9BM0N8RmrbVgaWBodLSmmcCkvpgN0BseKhO6IwQOPzWaovrcZ/nPIpfGaQ==",
++      "version": "32.2.5",
++      "resolved": "https://registry.npmjs.org/electron/-/electron-32.2.5.tgz",
++      "integrity": "sha512-8t5IGOvms/JTcLNnlOH7rFCAJIZJAazwYrF7kQsKQSLzDHh4z8mGFrU11NN3W4bIT6Yg5DJNniSWz3O5wJLmCw==",
+       "dev": true,
+diff --git a/package.json b/package.json
+index 78bebe0..c8b05df 100644
+--- a/package.json
++++ b/package.json
+@@ -154,3 +154,3 @@
+     "deemon": "^1.8.0",
+-    "electron": "32.2.1",
++    "electron": "32.2.5",
+     "eslint": "^9.11.1",

+ 8 - 3
release.sh

@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 # shellcheck disable=SC1091
 
-set -e
+set -ex
 
 if [[ -z "${GH_TOKEN}" ]] && [[ -z "${GITHUB_TOKEN}" ]] && [[ -z "${GH_ENTERPRISE_TOKEN}" ]] && [[ -z "${GITHUB_ENTERPRISE_TOKEN}" ]]; then
   echo "Will not release because no GITHUB_TOKEN defined"
@@ -21,13 +21,18 @@ if [[ $( gh release view --repo "${ASSETS_REPOSITORY}" "${RELEASE_VERSION}" 2>&1
 
     gh release create "${RELEASE_VERSION}" --repo "${ASSETS_REPOSITORY}" --title "${RELEASE_VERSION}" --notes "${NOTES}"
   else
+    gh release create "${RELEASE_VERSION}" --repo "${ASSETS_REPOSITORY}" --title "${RELEASE_VERSION}" --generate-notes
+
     . ./utils.sh
 
+    RELEASE_NOTES=$( gh release view "${RELEASE_VERSION}" --json "body" --jq ".body" )
+
     replace "s|MS_TAG_SHORT|$( echo "${MS_TAG//./_}" | cut -d'_' -f 1,2 )|" release_notes.txt
     replace "s|MS_TAG|${MS_TAG}|" release_notes.txt
-    replace "s|RELEASE_VERSION|${RELEASE_VERSION}|" release_notes.txt
+    replace "s|RELEASE_VERSION|${RELEASE_VERSION}|g" release_notes.txt
+    replace "s|RELEASE_NOTES|${RELEASE_NOTES//$'\n'/\\n}|" release_notes.txt
 
-    gh release create "${RELEASE_VERSION}" --repo "${ASSETS_REPOSITORY}" --title "${RELEASE_VERSION}" --generate-notes --notes-start-tag RELEASE_NOTES --notes-file release_notes.txt
+    gh release edit "${RELEASE_VERSION}" --notes-file release_notes.txt
   fi
 fi
 

+ 5 - 1
release_notes.txt

@@ -225,7 +225,11 @@ RELEASE_NOTES
 
 <table>
   <tr>
-    <td rowspan="2">Linux</td>
+    <td rowspan="3">Linux</td>
+    <td>.tar.gz</td>
+    <td><a href="https://github.com/VSCodium/vscodium/releases/download/RELEASE_VERSION/VSCodium-linux-loong64-RELEASE_VERSION.tar.gz">VSCodium-linux-loong64-RELEASE_VERSION.tar.gz</a></td>
+  </tr>
+  <tr>
     <td>Remote Host</td>
     <td><a href="https://github.com/VSCodium/vscodium/releases/download/RELEASE_VERSION/vscodium-reh-linux-loong64-RELEASE_VERSION.tar.gz">vscodium-reh-linux-loong64-RELEASE_VERSION.tar.gz</a></td>
   </tr>

+ 8 - 1
ripgrep_linux_loong64.sh

@@ -1,7 +1,14 @@
+#!/usr/bin/env bash
+
 # When installing @vscode/ripgrep, it will try to download prebuilt ripgrep binary from https://github.com/microsoft/ripgrep-prebuilt,
 # however, loong64 is not a supported architecture and x86 will be picked as fallback, so we need to replace it with a native one.
 
-RG_PATH="node_modules/@vscode/ripgrep/bin/rg"
+if [ "$#" -ne 1 ]; then
+    echo "Usage: $0 <path_to_node_modules>"
+    exit 1
+fi
+
+RG_PATH="$1/@vscode/ripgrep/bin/rg"
 RG_VERSION="14.1.1"
 
 echo "Replacing ripgrep binary with loong64 one"

+ 18 - 0
ripgrep_linux_riscv64.sh

@@ -0,0 +1,18 @@
+#!/usr/bin/env bash
+
+# microsoft/ripgrep-prebuilt doesn't support riscv64.
+# Tracking PR: https://github.com/microsoft/ripgrep-prebuilt/pull/41
+
+if [ "$#" -ne 1 ]; then
+    echo "Usage: $0 <path_to_node_modules>"
+    exit 1
+fi
+
+RG_PATH="$1/@vscode/ripgrep/bin/rg"
+RG_VERSION="14.1.1-3"
+
+echo "Replacing ripgrep binary with riscv64 one"
+
+rm "${RG_PATH}"
+curl --silent --fail -L https://github.com/riscv-forks/ripgrep-riscv64-prebuilt/releases/download/${RG_VERSION}/rg -o "${RG_PATH}"
+chmod +x "${RG_PATH}"

+ 2 - 2
stable.json

@@ -1,4 +1,4 @@
 {
-  "tag": "1.95.2",
-  "commit": "e8653663e8840adaf45af01eab5c627a5af81807"
+  "tag": "1.95.3",
+  "commit": "f1a4fb101478ce6ec82fe9627c43efbf9e98c813"
 }