code-server: 4.12.0 -> 4.13.0

I replaced the commit with the actual commit instead of "none" and fixed
the other replacement (`$commit` did not exist).

There was at least one postinstall script in `extensions` that was not
being ran so I modified the `find` command to account for lock files in
that directory in addition to `node_modules`.

Lastly, inject the version into the package.json otherwise it uses the
placeholder version 0.0.0.
This commit is contained in:
Asher 2023-06-15 09:05:20 -08:00
parent e6272819a1
commit b7d596c140
No known key found for this signature in database
GPG key ID: D63C1EF81242354A
2 changed files with 28 additions and 20 deletions

View file

@ -1,14 +1,8 @@
--- ./ci/build/build-vscode.sh
+++ ./ci/build/build-vscode.sh
@@ -45,14 +45,12 @@
# Set the commit Code will embed into the product.json. We need to do this
# since Code tries to get the commit from the `.git` directory which will fail
# as it is a submodule.
- export VSCODE_DISTRO_COMMIT
- VSCODE_DISTRO_COMMIT=$(git rev-parse HEAD)
+ export VSCODE_DISTRO_COMMIT=none
# Add the date, our name, links, and enable telemetry (this just makes
diff --git a/ci/build/build-vscode.sh b/ci/build/build-vscode.sh
index a72549fb..3aed1ad5 100755
--- a/ci/build/build-vscode.sh
+++ b/ci/build/build-vscode.sh
@@ -58,7 +58,6 @@ main() {
# telemetry available; telemetry can still be disabled by flag or setting).
# This needs to be done before building as Code will read this file and embed
# it into the client-side code.
@ -16,7 +10,7 @@
cp product.json product.original.json # Since jq has no inline edit.
jq --slurp '.[0] * .[1]' product.original.json <(
cat << EOF
@@ -99,7 +97,6 @@
@@ -105,7 +104,6 @@ EOF
# Reset so if you develop after building you will not be stuck with the wrong
# commit (the dev client will use `oss-dev` but the dev server will still use
# product.json which will have `stable-$commit`).

View file

@ -54,17 +54,19 @@ let
sed -i 's/${version}/${esbuild'.version}/g' ${path}/node_modules/esbuild/lib/main.js
ln -s -f ${esbuild'}/bin/esbuild ${path}/node_modules/esbuild/bin/esbuild
'';
commit = "2798322b03e7f446f59c5142215c11711ed7a427";
in
stdenv.mkDerivation (finalAttrs: {
pname = "code-server";
version = "4.12.0";
version = "4.13.0";
src = fetchFromGitHub {
owner = "coder";
repo = "code-server";
rev = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-PQp5dji2Ynp+LJRWBka41umwe1/IR76C+at/wyOWGcI=";
hash = "sha256-4hkKGQU9G3CllD+teWXnYoHaY3YdDz25fwaMUS5OlfM=";
};
yarnCache = stdenv.mkDerivation {
@ -92,7 +94,7 @@ stdenv.mkDerivation (finalAttrs: {
outputHashMode = "recursive";
outputHashAlgo = "sha256";
outputHash = "sha256-4Vr9u3+W/IhbbTc39jyDyDNQODlmdF+M/N8oJn0Z4+w=";
outputHash = "sha256-xLcrOVhKC0cOPcS5XwIMyv1KiEE0azZ1z+wS9PPKjAQ=";
};
nativeBuildInputs = [
@ -120,7 +122,8 @@ stdenv.mkDerivation (finalAttrs: {
];
patches = [
# remove git calls from vscode build script
# Remove all git calls from the VS Code build script except `git rev-parse
# HEAD` which is replaced in postPatch with the commit.
./build-vscode-nogit.patch
];
@ -130,8 +133,10 @@ stdenv.mkDerivation (finalAttrs: {
patchShebangs ./ci
# inject git commit
substituteInPlace ci/build/build-release.sh \
--replace '$(git rev-parse HEAD)' "$commit"
substituteInPlace ./ci/build/build-vscode.sh \
--replace '$(git rev-parse HEAD)' "${commit}"
substituteInPlace ./ci/build/build-release.sh \
--replace '$(git rev-parse HEAD)' "${commit}"
'';
configurePhase = ''
@ -232,8 +237,8 @@ stdenv.mkDerivation (finalAttrs: {
-execdir ln -s ${ripgrep}/bin/rg {}/bin/rg \;
# run postinstall scripts after patching
find ./lib/vscode -path "*node_modules" -prune -o \
-path "./*/*/*/*/*" -name "yarn.lock" -printf "%h\n" | \
find ./lib/vscode \( -path "*/node_modules/*" -or -path "*/extensions/*" \) \
-and -type f -name "yarn.lock" -printf "%h\n" | \
xargs -I {} sh -c 'jq -e ".scripts.postinstall" {}/package.json >/dev/null && yarn --cwd {} postinstall --frozen-lockfile --offline || true'
# build code-server
@ -242,6 +247,15 @@ stdenv.mkDerivation (finalAttrs: {
# build vscode
VERSION=${finalAttrs.version} yarn build:vscode
# inject version into package.json
jq --slurp '.[0] * .[1]' ./package.json <(
cat << EOF
{
"version": "${finalAttrs.version}"
}
EOF
) | sponge ./package.json
# create release
yarn release