duckdb 1.0.1-dev2.0 → 1.0.1-dev22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,293 @@
1
+ name: Electron
2
+ on:
3
+ push:
4
+ pull_request:
5
+ workflow_dispatch:
6
+ repository_dispatch:
7
+
8
+ concurrency:
9
+ group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || '' }}-${{ github.base_ref || '' }}-${{ github.ref != 'refs/heads/main' || github.sha }}
10
+ cancel-in-progress: false
11
+
12
+ env:
13
+ GH_TOKEN: ${{ secrets.GH_TOKEN }}
14
+ AWS_ACCESS_KEY_ID: ${{secrets.S3_DUCKDB_NODE_ID}}
15
+ AWS_SECRET_ACCESS_KEY: ${{secrets.S3_DUCKDB_NODE_KEY}}
16
+ AWS_DEFAULT_REGION: us-east-1
17
+
18
+ jobs:
19
+ set-up-npm:
20
+ if: false
21
+ name: Set up NPM
22
+ runs-on: ubuntu-20.04
23
+ env:
24
+ DUCKDB_NODE_BUILD_CACHE: 0
25
+ steps:
26
+ - uses: actions/checkout@v3
27
+ with:
28
+ fetch-depth: 0
29
+
30
+ - uses: actions/setup-python@v4
31
+ with:
32
+ python-version: '3.11'
33
+
34
+ - name: Setup NPM
35
+ shell: bash
36
+ run: ./scripts/node_version.sh upload
37
+ env:
38
+ DUCKDB_NODE_BUILD_CACHE: 0 # create a standalone package
39
+ NODE_AUTH_TOKEN: ${{secrets.NODE_AUTH_TOKEN}}
40
+
41
+ # From `npm show electron time --json` and https://www.electronjs.org/docs/latest/tutorial/electron-timelines
42
+ set-up-electron-versions:
43
+ name: Set up Electron version
44
+ runs-on: ubuntu-20.04
45
+ outputs:
46
+ matrix: ${{ steps.setup.outputs.matrix }}
47
+ steps:
48
+ - uses: actions/checkout@v3
49
+ with:
50
+ fetch-depth: 0
51
+
52
+ - id: setup
53
+ run: |
54
+ echo "matrix=$(jq -c '[.[] | select(.electron == ("18.3.15", "22.3.27"))]' < scripts/electron-versions.json)" >> $GITHUB_OUTPUT
55
+
56
+ - name: Check
57
+ run: |
58
+ jq . <<< '${{ steps.setup.outputs.matrix }}'
59
+
60
+ linux-electron:
61
+ name: Electron Linux
62
+ runs-on: ubuntu-20.04
63
+ needs: [set-up-npm, set-up-electron-versions]
64
+ env:
65
+ TARGET_ARCH: ${{ matrix.target_arch }}
66
+ DUCKDB_NODE_BUILD_CACHE: 0
67
+ strategy:
68
+ matrix:
69
+ version: ${{ fromJSON(needs.set-up-electron-versions.outputs.matrix) }}
70
+ target_arch: [ x64, arm64 ]
71
+
72
+ steps:
73
+ - uses: actions/checkout@v3
74
+ with:
75
+ fetch-depth: 0
76
+
77
+ # Default Python (3.12) doesn't have support for distutils
78
+ - uses: actions/setup-python@v4
79
+ with:
80
+ python-version: '3.10'
81
+
82
+ - name: Update apt
83
+ shell: bash
84
+ run: |
85
+ sudo apt-get update -y
86
+
87
+ - name: Install requirements
88
+ shell: bash
89
+ run: |
90
+ sudo apt-get install -y git ninja-build make gcc-multilib g++-multilib wget libssl-dev
91
+
92
+ - name: Setup Ccache
93
+ uses: hendrikmuhs/ccache-action@main
94
+ with:
95
+ key: ${{ github.job }}
96
+ save: ${{ ( github.ref == 'refs/heads/main' || github.repository != 'duckdb/duckdb-node' ) && startsWith(matrix.version.node, '19') }}
97
+
98
+ - name: Setup
99
+ shell: bash
100
+ run: ./scripts/node_version.sh
101
+ env:
102
+ DUCKDB_NODE_BUILD_CACHE: 0 # create a standalone package
103
+ NODE_AUTH_TOKEN: ${{secrets.NODE_AUTH_TOKEN}}
104
+
105
+ - name: Validate Docs
106
+ run: npx jsdoc-to-markdown --files lib/*.js >> $GITHUB_STEP_SUMMARY
107
+ env:
108
+ npm_config_yes: true
109
+
110
+ - name: Electron ${{ matrix.version.electron }}
111
+ shell: bash
112
+ run: ./scripts/node_build.sh ${{ matrix.version.node }}
113
+ env:
114
+ ELECTRON_VERSION: ${{ matrix.version.electron }}
115
+
116
+ osx-electron-arm64:
117
+ name: Electron OSX
118
+ runs-on: macos-14
119
+ needs: [set-up-npm, set-up-electron-versions]
120
+ strategy:
121
+ matrix:
122
+ version: ${{ fromJSON(needs.set-up-electron-versions.outputs.matrix) }}
123
+ target_arch: [ arm64 ]
124
+
125
+ env:
126
+ TARGET_ARCH: ${{ matrix.target_arch }}
127
+ DUCKDB_NODE_BUILD_CACHE: 0
128
+ steps:
129
+ - uses: actions/checkout@v3
130
+ with:
131
+ fetch-depth: 0
132
+
133
+ # Default Python (3.12) doesn't have support for distutils
134
+ - uses: actions/setup-python@v4
135
+ with:
136
+ python-version: '3.11'
137
+
138
+ - name: Setup Ccache
139
+ uses: hendrikmuhs/ccache-action@main
140
+ with:
141
+ key: ${{ github.job }}-${{ matrix.target_arch }}
142
+ save: ${{ ( github.ref == 'refs/heads/main' || github.repository != 'duckdb/duckdb-node' ) && startsWith(matrix.version.node, '19') }}
143
+
144
+ - name: Downgrade curl # fixes a bug with the brew curl that lead to failed downloads
145
+ shell: bash
146
+ run: |
147
+ brew uninstall --ignore-dependencies curl
148
+ which curl
149
+
150
+ - name: Setup
151
+ shell: bash
152
+ run: ./scripts/node_version.sh
153
+ env:
154
+ NODE_AUTH_TOKEN: ${{secrets.NODE_AUTH_TOKEN}}
155
+
156
+ - name: Electron ${{ matrix.version.electron }}
157
+ shell: bash
158
+ run: ./scripts/node_build.sh 18
159
+ env:
160
+ ELECTRON_VERSION: ${{ matrix.version.electron }}
161
+
162
+ osx-electron-x64:
163
+ name: Electron OSX
164
+ runs-on: macos-13
165
+ needs: [set-up-npm, set-up-electron-versions]
166
+ strategy:
167
+ matrix:
168
+ version: ${{ fromJSON(needs.set-up-electron-versions.outputs.matrix) }}
169
+ target_arch: [ x64 ]
170
+
171
+ env:
172
+ TARGET_ARCH: ${{ matrix.target_arch }}
173
+ DUCKDB_NODE_BUILD_CACHE: 0
174
+ steps:
175
+ - uses: actions/checkout@v3
176
+ with:
177
+ fetch-depth: 0
178
+
179
+ # Default Python (3.12) doesn't have support for distutils
180
+ - uses: actions/setup-python@v4
181
+ with:
182
+ python-version: '3.11'
183
+
184
+ - name: Setup Ccache
185
+ uses: hendrikmuhs/ccache-action@main
186
+ with:
187
+ key: ${{ github.job }}-${{ matrix.target_arch }}
188
+ save: ${{ ( github.ref == 'refs/heads/main' || github.repository != 'duckdb/duckdb-node' ) && startsWith(matrix.version.node, '19') }}
189
+
190
+ - name: Downgrade curl # fixes a bug with the brew curl that lead to failed downloads
191
+ shell: bash
192
+ run: |
193
+ brew uninstall --ignore-dependencies curl
194
+ which curl
195
+
196
+ - name: Setup
197
+ shell: bash
198
+ run: ./scripts/node_version.sh
199
+ env:
200
+ NODE_AUTH_TOKEN: ${{secrets.NODE_AUTH_TOKEN}}
201
+
202
+ - name: Electron ${{ matrix.version.electron }}
203
+ shell: bash
204
+ run: ./scripts/node_build.sh 18
205
+ env:
206
+ ELECTRON_VERSION: ${{ matrix.version.electron }}
207
+
208
+ win-electron:
209
+ name: Electron Windows
210
+ runs-on: windows-latest
211
+ needs: [set-up-npm, set-up-electron-versions]
212
+ continue-on-error: ${{ !startsWith(matrix.version.node, '18') && !startsWith(matrix.version.node, '20') && !startsWith(matrix.version.node, '21') }}
213
+ env:
214
+ npm_config_msvs_version: 2019
215
+
216
+ strategy:
217
+ matrix:
218
+ version: ${{ fromJSON(needs.set-up-electron-versions.outputs.matrix) }}
219
+
220
+ steps:
221
+ # Default Python (3.12) doesn't have support for distutils
222
+ - uses: actions/setup-python@v4
223
+ with:
224
+ python-version: '3.11'
225
+
226
+ - uses: actions/checkout@v3
227
+ with:
228
+ fetch-depth: 0
229
+
230
+ - name: Setup Node
231
+ uses: actions/setup-node@v3
232
+ with:
233
+ node-version: 18
234
+
235
+ - name: Versions
236
+ shell: bash
237
+ run: |
238
+ systeminfo
239
+ node -v
240
+ npm -v
241
+
242
+ - name: Windows Build Tools
243
+ shell: bash
244
+ run: |
245
+ choco install visualstudio2019-workload-vctools -y
246
+
247
+ - name: Node Version
248
+ shell: bash
249
+ run: ./scripts/node_version.sh
250
+ env:
251
+ NODE_AUTH_TOKEN: ${{secrets.NODE_AUTH_TOKEN}}
252
+
253
+ - name: Setup Ccache
254
+ uses: hendrikmuhs/ccache-action@main
255
+ with:
256
+ key: ${{ github.job }}-${{ matrix.version.node }}
257
+ save: ${{ github.ref == 'refs/heads/main' || github.repository != 'duckdb/duckdb-node' }}
258
+ variant: sccache
259
+
260
+ - name: Electron
261
+ shell: bash
262
+ run: ./scripts/node_build_win.sh
263
+ env:
264
+ ELECTRON_VERSION: ${{ matrix.version.electron }}
265
+
266
+ test_matrix:
267
+ needs:
268
+ - linux-electron
269
+ - osx-electron-arm64
270
+ - osx-electron-x64
271
+ - win-electron
272
+ strategy:
273
+ matrix:
274
+ os: [windows-latest, ubuntu-latest, ubuntu-22.04, ubuntu-20.04, windows-2019, macos-12, macos-13, macos-14]
275
+ version: [20]
276
+ runs-on: ${{ matrix.os }}
277
+ steps:
278
+ - uses: actions/setup-node@v4
279
+ with:
280
+ node-version: ${{ matrix.version }}
281
+
282
+ - uses: actions/checkout@v3
283
+ with:
284
+ sparse-checkout: examples
285
+
286
+ - name: Install duckdb
287
+ run: |
288
+ npm install duckdb@next
289
+
290
+ - name: Run minor test
291
+ shell: bash
292
+ run: |
293
+ node examples/example.js
@@ -1,4 +1,4 @@
1
- name: Create Internal issue when the "High Priority" label is applied
1
+ name: Create Internal issue when the "reproduced" label is applied
2
2
  on:
3
3
  issues:
4
4
  types:
@@ -13,7 +13,7 @@ env:
13
13
 
14
14
  jobs:
15
15
  create_or_label_issue:
16
- if: github.event.label.name == 'High Priority'
16
+ if: github.event.label.name == 'reproduced'
17
17
  runs-on: ubuntu-latest
18
18
  steps:
19
19
  - name: Get mirror issue number
@@ -116,7 +116,7 @@ jobs:
116
116
  run: ./scripts/node_build.sh ${{ matrix.node }}
117
117
 
118
118
  osx-nodejs-arm64:
119
- name: node.js OSX
119
+ name: node.js OSX arm64
120
120
  runs-on: macos-14
121
121
  needs: set-up-npm
122
122
  continue-on-error: ${{ matrix.node != '18' && matrix.node != '20' && matrix.node != '21' }}
@@ -179,7 +179,7 @@ jobs:
179
179
  run: ./scripts/node_build.sh ${{ matrix.node }}
180
180
 
181
181
  osx-nodejs-x64:
182
- name: node.js OSX
182
+ name: node.js OSX x64
183
183
  runs-on: macos-13
184
184
  needs: set-up-npm
185
185
  continue-on-error: ${{ matrix.node != '18' && matrix.node != '20' && matrix.node != '21' }}
@@ -251,7 +251,7 @@ jobs:
251
251
 
252
252
  strategy:
253
253
  matrix:
254
- node: [ '16', '17', '18', '19', '20', '21']
254
+ node: [ '16', '17', '18', '19', '20', '21', '22' ]
255
255
  isRelease:
256
256
  - ${{ startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main' }}
257
257
  exclude:
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "duckdb",
3
3
  "main": "./lib/duckdb.js",
4
4
  "types": "./lib/duckdb.d.ts",
5
- "version": "1.0.1-dev2.0",
5
+ "version": "1.0.1-dev22.0",
6
6
  "description": "DuckDB node.js API",
7
7
  "gypfile": true,
8
8
  "dependencies": {
@@ -0,0 +1,64 @@
1
+ [
2
+ { "electron": "18.3.15", "node": "16.13" },
3
+ { "electron": "19.0.17", "node": "16.14" },
4
+ { "electron": "19.1.9", "node": "16.14" },
5
+ { "electron": "20.0.3", "node": "16.15" },
6
+ { "electron": "20.1.4", "node": "16.15" },
7
+ { "electron": "20.2.0", "node": "16.15" },
8
+ { "electron": "20.3.12", "node": "16.15" },
9
+ { "electron": "21.0.1", "node": "16.16" },
10
+ { "electron": "21.1.1", "node": "16.16" },
11
+ { "electron": "21.2.3", "node": "16.16" },
12
+ { "electron": "21.3.5", "node": "16.16" },
13
+ { "electron": "21.4.4", "node": "16.16" },
14
+ { "electron": "22.0.3", "node": "16.17" },
15
+ { "electron": "22.1.0", "node": "16.17" },
16
+ { "electron": "22.2.1", "node": "16.17" },
17
+ { "electron": "22.3.27", "node": "16.17" },
18
+ { "electron": "23.0.0", "node": "18.12" },
19
+ { "electron": "23.1.4", "node": "18.12" },
20
+ { "electron": "23.2.4", "node": "18.12" },
21
+ { "electron": "23.3.13", "node": "18.12" },
22
+ { "electron": "24.0.0", "node": "18.14" },
23
+ { "electron": "24.1.3", "node": "18.14" },
24
+ { "electron": "24.2.0", "node": "18.14" },
25
+ { "electron": "24.3.1", "node": "18.14" },
26
+ { "electron": "24.4.1", "node": "18.14" },
27
+ { "electron": "24.5.1", "node": "18.14" },
28
+ { "electron": "24.6.5", "node": "18.14" },
29
+ { "electron": "24.7.1", "node": "18.14" },
30
+ { "electron": "24.8.8", "node": "18.14" },
31
+ { "electron": "25.0.1", "node": "18.15" },
32
+ { "electron": "25.1.1", "node": "18.15" },
33
+ { "electron": "25.2.0", "node": "18.15" },
34
+ { "electron": "25.3.2", "node": "18.15" },
35
+ { "electron": "25.4.0", "node": "18.15" },
36
+ { "electron": "25.5.0", "node": "18.15" },
37
+ { "electron": "25.6.0", "node": "18.15" },
38
+ { "electron": "25.7.0", "node": "18.15" },
39
+ { "electron": "25.8.4", "node": "18.15" },
40
+ { "electron": "25.9.8", "node": "18.15" },
41
+ { "electron": "26.0.0", "node": "18.16" },
42
+ { "electron": "26.1.0", "node": "18.16" },
43
+ { "electron": "26.2.4", "node": "18.16" },
44
+ { "electron": "26.3.0", "node": "18.16" },
45
+ { "electron": "26.4.3", "node": "18.16" },
46
+ { "electron": "26.5.0", "node": "18.16" },
47
+ { "electron": "26.6.10", "node": "18.16" },
48
+ { "electron": "27.0.4", "node": "18.17" },
49
+ { "electron": "27.1.3", "node": "18.17" },
50
+ { "electron": "27.2.4", "node": "18.17" },
51
+ { "electron": "27.3.11", "node": "18.17" },
52
+ { "electron": "28.0.0", "node": "18.18" },
53
+ { "electron": "28.1.4", "node": "18.18" },
54
+ { "electron": "28.2.10", "node": "18.18" },
55
+ { "electron": "28.3.3", "node": "18.18" },
56
+ { "electron": "29.0.1", "node": "20.9" },
57
+ { "electron": "29.1.6", "node": "20.9" },
58
+ { "electron": "29.2.0", "node": "20.9" },
59
+ { "electron": "29.3.3", "node": "20.9" },
60
+ { "electron": "29.4.3", "node": "20.9" },
61
+ { "electron": "30.0.9", "node": "20.11" },
62
+ { "electron": "30.1.2", "node": "20.11" },
63
+ { "electron": "31.0.2", "node": "20.14" }
64
+ ]
@@ -16,6 +16,18 @@ if [ "$(expr substr $(uname -s) 1 5)" == "Linux" ] && [[ "$TARGET_ARCH" == "arm6
16
16
  export CXX=aarch64-linux-gnu-g++
17
17
  fi
18
18
 
19
+ if [ -n "$ELECTRON_VERSION" ] ; then
20
+ # Electron's version.
21
+ export npm_config_target="$ELECTRON_VERSION"
22
+ # The architecture of your machine
23
+ export npm_config_arch="$TARGET_ARCH"
24
+ export npm_config_target_arch="$TARGET_ARCH"
25
+ # Download headers for Electron.
26
+ export npm_config_disturl=https://electronjs.org/headers
27
+ # Tell node-pre-gyp that we are building for Electron.
28
+ export npm_config_runtime=electron
29
+ fi
30
+
19
31
  npm install --build-from-source --target_arch="$TARGET_ARCH"
20
32
 
21
33
  ./node_modules/.bin/node-pre-gyp reveal --target_arch="$TARGET_ARCH"
@@ -8,6 +8,20 @@ which node
8
8
 
9
9
  make clean
10
10
 
11
+ if [ -n "$ELECTRON_VERSION" ] ; then
12
+ # Electron's version.
13
+ export npm_config_target="$ELECTRON_VERSION"
14
+ if [ -n "$TARGET_ARCH" ] ; then
15
+ # The architecture of your machine
16
+ export npm_config_arch="$TARGET_ARCH"
17
+ export npm_config_target_arch="$TARGET_ARCH"
18
+ fi
19
+ # Download headers for Electron.
20
+ export npm_config_disturl=https://electronjs.org/headers
21
+ # Tell node-pre-gyp that we are building for Electron.
22
+ export npm_config_runtime=electron
23
+ fi
24
+
11
25
  npm install --build-from-source
12
26
  # no tests on releases
13
27
  if [[ ! "$GITHUB_REF" =~ ^(refs/tags/v.+)$ ]] ; then