From f120eef71f144d4e6b0658bb289bca5315a3f055 Mon Sep 17 00:00:00 2001 From: Matthew McEachen Date: Thu, 30 May 2024 13:02:15 -0700 Subject: [PATCH 1/4] Drop prebuilds of Node.js v21 and Electron v25 (#1191) * Drop unsupported versions of node and electron * Drop Node.js v21 prebuilds * Also drop electron v25 --- .github/workflows/build.yml | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 828fd9d0..7b17b89a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,12 +13,14 @@ on: workflow_dispatch: {} env: - # See https://nodejs.org/en/about/previous-releases - # Node.js 16 EOL = 11 Sep 2023 - NODE_BUILD_CMD: npx --no-install prebuild -r node -t 18.0.0 -t 20.0.0 -t 21.0.0 -t 22.0.0 --include-regex 'better_sqlite3.node$' + # See https://github.com/nodejs/release#release-schedule + # Node.js v16 EOL = 2023-09-11. v21 EOL = 2024-06-01. + NODE_BUILD_CMD: npx --no-install prebuild -r node -t 18.0.0 -t 20.0.0 -t 22.0.0 --include-regex 'better_sqlite3.node$' + # Merge with NODE_BUILD_CMD when Node.js v18 is EOL + NO_V18_NODE_BUILD_CMD: npx --no-install prebuild -r node -t 20.0.0 -t 22.0.0 --include-regex 'better_sqlite3.node$' # See https://www.electronjs.org/docs/latest/tutorial/electron-timelines#version-support-policy - # The v25 EOL = 2023-dec-5. v26 EOL = 2024-feb-20. v27 EOL = 2024-apr-16. v28 EOL = 2024-jun-11. v29 EOL = 2024-aug-20. - ELECTRON_BUILD_CMD: npx --no-install prebuild -r electron -t 25.0.0 -t 26.0.0 -t 27.0.0 -t 28.0.0 -t 29.0.0 -t 30.0.0 --include-regex 'better_sqlite3.node$' + # Electron v25 EOL = 2023-12-05. v26 EOL = 2024-02-20. v27 EOL = 2024-04-16. v28 EOL = 2024-06-11. v29 EOL = 2024-08-20. + ELECTRON_BUILD_CMD: npx --no-install prebuild -r electron -t 26.0.0 -t 27.0.0 -t 28.0.0 -t 29.0.0 -t 30.0.0 --include-regex 'better_sqlite3.node$' jobs: test: @@ -32,7 +34,6 @@ jobs: node: - 18 - 20 - - 21 - 22 name: Testing Node ${{ matrix.node }} on ${{ matrix.os }} runs-on: ${{ matrix.os }} @@ -74,6 +75,7 @@ jobs: prebuild: strategy: + fail-fast: false matrix: os: - ubuntu-20.04 @@ -100,11 +102,13 @@ jobs: - if: matrix.os == 'windows-2019' run: | ${{ env.NODE_BUILD_CMD }} --arch ia32 -u ${{ secrets.GITHUB_TOKEN }} - npx --no-install prebuild -r node -t 20.0.0 -t 21.0.0 --include-regex 'better_sqlite3.node$' --arch arm64 -u ${{ secrets.GITHUB_TOKEN }} + ${{ env.NO_V18_NODE_BUILD_CMD }} --arch arm64 -u ${{ secrets.GITHUB_TOKEN }} ${{ env.ELECTRON_BUILD_CMD }} --arch ia32 -u ${{ secrets.GITHUB_TOKEN }} ${{ env.ELECTRON_BUILD_CMD }} --arch arm64 -u ${{ secrets.GITHUB_TOKEN }} prebuild-alpine: + strategy: + fail-fast: false name: Prebuild on alpine runs-on: ubuntu-latest container: node:18-alpine @@ -117,6 +121,7 @@ jobs: prebuild-alpine-arm: strategy: + fail-fast: false matrix: arch: - arm/v7 @@ -136,6 +141,7 @@ jobs: prebuild-linux-arm: strategy: + fail-fast: false matrix: arch: - arm/v7 From afb31e08652e9c31e26b2c4e6977f6668333f259 Mon Sep 17 00:00:00 2001 From: Matthew McEachen Date: Thu, 30 May 2024 13:06:09 -0700 Subject: [PATCH 2/4] Relax allowed timeout (GHA on macOS is slow) (#1193) relax allowed timeout (GHA is slow) --- test/10.database.open.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/10.database.open.js b/test/10.database.open.js index 3f9fb523..dd82395a 100644 --- a/test/10.database.open.js +++ b/test/10.database.open.js @@ -98,7 +98,8 @@ describe('new Database()', function () { const start = Date.now(); expect(() => db.exec('BEGIN EXCLUSIVE')).to.throw(Database.SqliteError).with.property('code', 'SQLITE_BUSY'); const end = Date.now(); - expect(end - start).to.be.within(timeout - 1, timeout * 3 + 100); + // GHA is slow: a 500ms timeout can take 1685ms to fail. + expect(end - start).to.be.within(timeout - 1, timeout * 3 + 250); } finally { db.close(); } From 6c6b3dfef7bf4d5a1aa5c8642b5692b4f8b44f82 Mon Sep 17 00:00:00 2001 From: mceachen Date: Fri, 31 May 2024 01:11:35 +0000 Subject: [PATCH 3/4] 10.1.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index eb8e2b65..60a59107 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "better-sqlite3", - "version": "10.1.0", + "version": "10.1.1", "description": "The fastest and simplest library for SQLite3 in Node.js.", "homepage": "http://github.com/WiseLibs/better-sqlite3", "author": "Joshua Wise ", From 6acc3fcebe469969aa29319714b187a53ada0934 Mon Sep 17 00:00:00 2001 From: mceachen Date: Fri, 31 May 2024 01:12:46 +0000 Subject: [PATCH 4/4] 11.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 60a59107..de3eccdd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "better-sqlite3", - "version": "10.1.1", + "version": "11.0.0", "description": "The fastest and simplest library for SQLite3 in Node.js.", "homepage": "http://github.com/WiseLibs/better-sqlite3", "author": "Joshua Wise ",