From 4bae19b1c358a09b20aeb3e67e686b3147adc51e Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 17 Jul 2024 20:06:16 +0300 Subject: [PATCH 1/6] electron: Switch 25.9.8 -> 31.2.1 --- package-lock.json | 105 +++++++++++++++++++++------------------------- package.json | 6 +-- 2 files changed, 51 insertions(+), 60 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0c265ca0c..f13155e3d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,7 @@ "dayjs-plugin-utc": "0.1.2", "debounce": "1.2.1", "ejs": "3.1.9", - "electron-debug": "3.2.0", + "electron-debug": "^4.0.0", "electron-dl": "3.5.2", "electron-window-state": "5.0.3", "escape-html": "1.0.3", @@ -56,7 +56,7 @@ "mermaid": "^10.9.1", "mime-types": "2.1.35", "multer": "1.4.5-lts.1", - "node-abi": "3.56.0", + "node-abi": "^3.65.0", "normalize-strings": "1.1.1", "open": "8.4.1", "panzoom": "9.4.3", @@ -116,7 +116,7 @@ "@types/ws": "^8.5.10", "@types/xml2js": "^0.4.14", "cross-env": "7.0.3", - "electron": "25.9.8", + "electron": "^31.2.1", "electron-builder": "24.13.3", "electron-packager": "17.1.2", "electron-rebuild": "3.2.9", @@ -1527,9 +1527,9 @@ } }, "node_modules/@types/node": { - "version": "20.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", - "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", + "version": "20.14.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.11.tgz", + "integrity": "sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==", "dependencies": { "undici-types": "~5.26.4" } @@ -5214,13 +5214,13 @@ } }, "node_modules/electron": { - "version": "25.9.8", - "resolved": "https://registry.npmjs.org/electron/-/electron-25.9.8.tgz", - "integrity": "sha512-PGgp6PH46QVENHuAHc2NT1Su8Q1qov7qIl2jI5tsDpTibwV2zD8539AeWBQySeBU4dhbj9onIl7+1bXQ0wefBg==", + "version": "31.2.1", + "resolved": "https://registry.npmjs.org/electron/-/electron-31.2.1.tgz", + "integrity": "sha512-g3CLKjl4yuXt6VWm/KpgEjYYhFiCl19RgUn8lOC8zV/56ZXAS3+mqV4wWzicE/7vSYXs6GRO7vkYRwrwhX3Gaw==", "hasInstallScript": true, "dependencies": { "@electron/get": "^2.0.0", - "@types/node": "^18.11.18", + "@types/node": "^20.9.0", "extract-zip": "^2.0.1" }, "bin": { @@ -5511,12 +5511,15 @@ } }, "node_modules/electron-debug": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/electron-debug/-/electron-debug-3.2.0.tgz", - "integrity": "sha512-7xZh+LfUvJ52M9rn6N+tPuDw6oRAjxUj9SoxAZfJ0hVCXhZCsdkrSt7TgXOiWiEOBgEV8qwUIO/ScxllsPS7ow==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/electron-debug/-/electron-debug-4.0.0.tgz", + "integrity": "sha512-GuDHlug+EGBcZezEFzwXyal/YI28rxtSzRPNfRfc+BQ3siEkqy2voN5bI1c0cGEloK40mV/LzRMaiI84KCNvqg==", "dependencies": { - "electron-is-dev": "^1.1.0", - "electron-localshortcut": "^3.1.0" + "electron-is-dev": "^3.0.1", + "electron-localshortcut": "^3.2.1" + }, + "engines": { + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5695,9 +5698,15 @@ "integrity": "sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns=" }, "node_modules/electron-is-dev": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.2.0.tgz", - "integrity": "sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-3.0.1.tgz", + "integrity": "sha512-8TjjAh8Ec51hUi3o4TaU0mD3GMTOESi866oRNavj9A3IQJ7pmv+MJVmdZBFGw4GFT36X7bkqnuDNYvkQgvyI8Q==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/electron-localshortcut": { "version": "3.2.1", @@ -5947,14 +5956,6 @@ "node": ">=8.0.0" } }, - "node_modules/electron/node_modules/@types/node": { - "version": "18.19.39", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.39.tgz", - "integrity": "sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, "node_modules/elkjs": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/elkjs/-/elkjs-0.9.2.tgz", @@ -9572,9 +9573,9 @@ "integrity": "sha512-JsUbEOzANskax+WSYiAPETemLWYXmixuPAlmZmhIbIj6FH/WDgEGCGnRwUQBK0GjOnVm8Ui+e5IJ+5VZ4e32eQ==" }, "node_modules/node-abi": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.56.0.tgz", - "integrity": "sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==", + "version": "3.65.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.65.0.tgz", + "integrity": "sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==", "dependencies": { "semver": "^7.3.5" }, @@ -14576,9 +14577,9 @@ } }, "@types/node": { - "version": "20.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", - "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", + "version": "20.14.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.11.tgz", + "integrity": "sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==", "requires": { "undici-types": "~5.26.4" } @@ -17421,23 +17422,13 @@ } }, "electron": { - "version": "25.9.8", - "resolved": "https://registry.npmjs.org/electron/-/electron-25.9.8.tgz", - "integrity": "sha512-PGgp6PH46QVENHuAHc2NT1Su8Q1qov7qIl2jI5tsDpTibwV2zD8539AeWBQySeBU4dhbj9onIl7+1bXQ0wefBg==", + "version": "31.2.1", + "resolved": "https://registry.npmjs.org/electron/-/electron-31.2.1.tgz", + "integrity": "sha512-g3CLKjl4yuXt6VWm/KpgEjYYhFiCl19RgUn8lOC8zV/56ZXAS3+mqV4wWzicE/7vSYXs6GRO7vkYRwrwhX3Gaw==", "requires": { "@electron/get": "^2.0.0", - "@types/node": "^18.11.18", + "@types/node": "^20.9.0", "extract-zip": "^2.0.1" - }, - "dependencies": { - "@types/node": { - "version": "18.19.39", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.39.tgz", - "integrity": "sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==", - "requires": { - "undici-types": "~5.26.4" - } - } } }, "electron-builder": { @@ -17680,12 +17671,12 @@ } }, "electron-debug": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/electron-debug/-/electron-debug-3.2.0.tgz", - "integrity": "sha512-7xZh+LfUvJ52M9rn6N+tPuDw6oRAjxUj9SoxAZfJ0hVCXhZCsdkrSt7TgXOiWiEOBgEV8qwUIO/ScxllsPS7ow==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/electron-debug/-/electron-debug-4.0.0.tgz", + "integrity": "sha512-GuDHlug+EGBcZezEFzwXyal/YI28rxtSzRPNfRfc+BQ3siEkqy2voN5bI1c0cGEloK40mV/LzRMaiI84KCNvqg==", "requires": { - "electron-is-dev": "^1.1.0", - "electron-localshortcut": "^3.1.0" + "electron-is-dev": "^3.0.1", + "electron-localshortcut": "^3.2.1" } }, "electron-dl": { @@ -17819,9 +17810,9 @@ "integrity": "sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns=" }, "electron-is-dev": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.2.0.tgz", - "integrity": "sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-3.0.1.tgz", + "integrity": "sha512-8TjjAh8Ec51hUi3o4TaU0mD3GMTOESi866oRNavj9A3IQJ7pmv+MJVmdZBFGw4GFT36X7bkqnuDNYvkQgvyI8Q==" }, "electron-localshortcut": { "version": "3.2.1", @@ -20660,9 +20651,9 @@ "integrity": "sha512-JsUbEOzANskax+WSYiAPETemLWYXmixuPAlmZmhIbIj6FH/WDgEGCGnRwUQBK0GjOnVm8Ui+e5IJ+5VZ4e32eQ==" }, "node-abi": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.56.0.tgz", - "integrity": "sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==", + "version": "3.65.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.65.0.tgz", + "integrity": "sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==", "requires": { "semver": "^7.3.5" } diff --git a/package.json b/package.json index ed2bd3f93..0e372e75b 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "dayjs-plugin-utc": "0.1.2", "debounce": "1.2.1", "ejs": "3.1.9", - "electron-debug": "3.2.0", + "electron-debug": "^4.0.0", "electron-dl": "3.5.2", "electron-window-state": "5.0.3", "escape-html": "1.0.3", @@ -80,7 +80,7 @@ "mermaid": "^10.9.1", "mime-types": "2.1.35", "multer": "1.4.5-lts.1", - "node-abi": "3.56.0", + "node-abi": "^3.65.0", "normalize-strings": "1.1.1", "open": "8.4.1", "panzoom": "9.4.3", @@ -137,7 +137,7 @@ "@types/ws": "^8.5.10", "@types/xml2js": "^0.4.14", "cross-env": "7.0.3", - "electron": "25.9.8", + "electron": "^31.2.1", "electron-builder": "24.13.3", "electron-packager": "17.1.2", "electron-rebuild": "3.2.9", From 41286d41ee168b8a48f51fd329a212bd3a6b4db9 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 17 Jul 2024 20:22:32 +0300 Subject: [PATCH 2/6] electron: Downgrade electron-debug Avoids an import error because electron-debug became ESM-only in version 4. We will update to it once we upgrade to ESM. --- package-lock.json | 43 +++++++++++++++++-------------------------- package.json | 2 +- 2 files changed, 18 insertions(+), 27 deletions(-) diff --git a/package-lock.json b/package-lock.json index f13155e3d..8c1b52cba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,7 @@ "dayjs-plugin-utc": "0.1.2", "debounce": "1.2.1", "ejs": "3.1.9", - "electron-debug": "^4.0.0", + "electron-debug": "3.2.0", "electron-dl": "3.5.2", "electron-window-state": "5.0.3", "escape-html": "1.0.3", @@ -5511,15 +5511,12 @@ } }, "node_modules/electron-debug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/electron-debug/-/electron-debug-4.0.0.tgz", - "integrity": "sha512-GuDHlug+EGBcZezEFzwXyal/YI28rxtSzRPNfRfc+BQ3siEkqy2voN5bI1c0cGEloK40mV/LzRMaiI84KCNvqg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/electron-debug/-/electron-debug-3.2.0.tgz", + "integrity": "sha512-7xZh+LfUvJ52M9rn6N+tPuDw6oRAjxUj9SoxAZfJ0hVCXhZCsdkrSt7TgXOiWiEOBgEV8qwUIO/ScxllsPS7ow==", "dependencies": { - "electron-is-dev": "^3.0.1", - "electron-localshortcut": "^3.2.1" - }, - "engines": { - "node": ">=18" + "electron-is-dev": "^1.1.0", + "electron-localshortcut": "^3.1.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5698,15 +5695,9 @@ "integrity": "sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns=" }, "node_modules/electron-is-dev": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-3.0.1.tgz", - "integrity": "sha512-8TjjAh8Ec51hUi3o4TaU0mD3GMTOESi866oRNavj9A3IQJ7pmv+MJVmdZBFGw4GFT36X7bkqnuDNYvkQgvyI8Q==", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.2.0.tgz", + "integrity": "sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw==" }, "node_modules/electron-localshortcut": { "version": "3.2.1", @@ -17671,12 +17662,12 @@ } }, "electron-debug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/electron-debug/-/electron-debug-4.0.0.tgz", - "integrity": "sha512-GuDHlug+EGBcZezEFzwXyal/YI28rxtSzRPNfRfc+BQ3siEkqy2voN5bI1c0cGEloK40mV/LzRMaiI84KCNvqg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/electron-debug/-/electron-debug-3.2.0.tgz", + "integrity": "sha512-7xZh+LfUvJ52M9rn6N+tPuDw6oRAjxUj9SoxAZfJ0hVCXhZCsdkrSt7TgXOiWiEOBgEV8qwUIO/ScxllsPS7ow==", "requires": { - "electron-is-dev": "^3.0.1", - "electron-localshortcut": "^3.2.1" + "electron-is-dev": "^1.1.0", + "electron-localshortcut": "^3.1.0" } }, "electron-dl": { @@ -17810,9 +17801,9 @@ "integrity": "sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns=" }, "electron-is-dev": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-3.0.1.tgz", - "integrity": "sha512-8TjjAh8Ec51hUi3o4TaU0mD3GMTOESi866oRNavj9A3IQJ7pmv+MJVmdZBFGw4GFT36X7bkqnuDNYvkQgvyI8Q==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.2.0.tgz", + "integrity": "sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw==" }, "electron-localshortcut": { "version": "3.2.1", diff --git a/package.json b/package.json index 0e372e75b..87e1efbf9 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "dayjs-plugin-utc": "0.1.2", "debounce": "1.2.1", "ejs": "3.1.9", - "electron-debug": "^4.0.0", + "electron-debug": "3.2.0", "electron-dl": "3.5.2", "electron-window-state": "5.0.3", "escape-html": "1.0.3", From 776d2e740218347df630809516d3528dc1d76c19 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 17 Jul 2024 21:14:12 +0300 Subject: [PATCH 3/6] ci: Build main temporarily --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0902fe63b..4f21babb1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -3,6 +3,7 @@ on: push: branches: - 'develop' + - 'feature/update_electron' env: REGISTRY: ghcr.io IMAGE_NAME: ${{ github.repository }} From 9db4e1d7d338c4cbe400964c7cc5b53c634fbaa5 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 17 Jul 2024 21:14:24 +0300 Subject: [PATCH 4/6] build: Fix Node version incompatibility --- bin/copy-trilium.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/copy-trilium.sh b/bin/copy-trilium.sh index 2936a925b..271bc1f1a 100755 --- a/bin/copy-trilium.sh +++ b/bin/copy-trilium.sh @@ -41,6 +41,7 @@ cp "$script_dir/../build/electron.js" "$DIR" # run in subshell (so we return to original dir) (cd $DIR && npm install --only=prod) +(cd $DIR && npm run switch-electron) if [[ -d "$DIR"/node_modules ]]; then # cleanup of useless files in dependencies From c080dab9faa1c337efde8306f5610523de3ff5c3 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 20 Jul 2024 15:24:36 +0300 Subject: [PATCH 5/6] Revert "ci: Build main temporarily" This reverts commit 776d2e740218347df630809516d3528dc1d76c19. --- .github/workflows/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4f21babb1..0902fe63b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -3,7 +3,6 @@ on: push: branches: - 'develop' - - 'feature/update_electron' env: REGISTRY: ghcr.io IMAGE_NAME: ${{ github.repository }} From 338012ec7ee36c79ba96037a3db23e564d3aa9ba Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 20 Jul 2024 16:48:41 +0300 Subject: [PATCH 6/6] build: Bring update script for better-sqlite3 --- bin/better-sqlite3/update.sh | 38 ++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 bin/better-sqlite3/update.sh diff --git a/bin/better-sqlite3/update.sh b/bin/better-sqlite3/update.sh new file mode 100755 index 000000000..74dbeb01b --- /dev/null +++ b/bin/better-sqlite3/update.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +ELECTRON_VERSION="electron-v125" +NODE_VERSION="node-v115" + +if ! command -v jq &> /dev/null; then + echo "Missing command: jq" + exit 1 +fi + +script_dir=$(realpath $(dirname $0)) +cd "$script_dir" +BETTER_SQLITE3_VERSION=$(jq -r '.dependencies.["better-sqlite3"]' ../../package.json | grep -oP "\d+\.\d+\.\d+") + +if [ -z $BETTER_SQLITE3_VERSION ]; then + echo "Unable to determine better-sqlite3 version." + exit 2 +fi + +echo "Version: $BETTER_SQLITE3_VERSION" + +function download() { + version="$1" + platform="$2" + dest_name="$3" + url=https://github.com/WiseLibs/better-sqlite3/releases/download/v${BETTER_SQLITE3_VERSION}/better-sqlite3-v${BETTER_SQLITE3_VERSION}-${version}-${platform}.tar.gz + temp_file="temp.tar.gz" + curl -L "$url" -o "$temp_file" + tar -xzvf "$temp_file" + mv build/Release/better_sqlite3.node "$dest_name-better_sqlite3.node" + rm -rf build + rm -f "$temp_file" +} + +download $NODE_VERSION "linux-x64" "linux-server" +download $ELECTRON_VERSION "linux-x64" "linux-desktop" +download $ELECTRON_VERSION "win32-x64" "win" +download $ELECTRON_VERSION "darwin-x64" "mac-x64" +download $ELECTRON_VERSION "darwin-arm64" "mac-arm64" \ No newline at end of file