Skip to content

Commit 914afcc

Browse files
v2.4.0 (#68)
* CRoaring 4.1.2 * support node 22 (#65) (#66) * Fix memory leak in (x)orMany (#62) * support new esnext set methods (#64) * update node-gyp * add new esnext "Set" methods support, add isSuperset
1 parent d7139a3 commit 914afcc

21 files changed

+4262
-2464
lines changed

.github/workflows/ci.yml

+19-11
Original file line numberDiff line numberDiff line change
@@ -12,29 +12,37 @@ jobs:
1212
name: test
1313
runs-on: ubuntu-latest
1414
steps:
15-
- uses: actions/setup-node@v3
15+
- uses: actions/setup-node@v4
1616
with:
1717
node-version: "20.x"
18-
- uses: actions/checkout@v3
19-
- run: npm ci --ignore-scripts --no-audit --no-save
18+
- uses: actions/checkout@v4
19+
- run: npm install --exact --no-audit --no-save
20+
env:
21+
ROARING_NODE_PRE_GYP: "false"
2022
- run: npx eslint --no-error-on-unmatched-pattern --max-warnings=0
2123
- run: npx prettier --loglevel=warn --check .
22-
- run: node ./node-pre-gyp.js --custom-rebuild
24+
- run: node ./node-pre-gyp.js
25+
env:
26+
ROARING_NODE_PRE_GYP: "custom-rebuild"
2327
- run: node ./scripts/test.js
2428
- run: node --expose-gc ./scripts/test-memory-leaks.js
2529

2630
ci:
2731
needs: test
2832
strategy:
2933
matrix:
30-
node-version: ["16.14.0", "18.1.0", "20.9.0", "21.1.0"]
31-
os: [ubuntu-latest, macos-latest, windows-2019]
34+
node-version: ["16.14.0", "18.1.0", "20.9.0", "21.1.0", "22.8.0"]
35+
os: [ubuntu-latest, macos-13, macos-latest, windows-2019]
3236
runs-on: ${{ matrix.os }}
3337
steps:
34-
- uses: actions/setup-node@v3
38+
- uses: actions/setup-node@v4
3539
with:
3640
node-version: ${{ matrix.node-version }}
37-
- uses: actions/checkout@v3
38-
- run: npm install --ignore-scripts --no-audit --no-save
39-
- run: node ./node-pre-gyp.js --custom-rebuild
40-
- run: node ./scripts/test.js --notypecheck
41+
- uses: actions/checkout@v4
42+
- run: npm install --exact --no-audit --no-save
43+
env:
44+
ROARING_NODE_PRE_GYP: "false"
45+
- run: node ./node-pre-gyp.js
46+
env:
47+
ROARING_NODE_PRE_GYP: "custom-rebuild"
48+
- run: node ./scripts/test.js

.github/workflows/npm-publish.yml

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Publish to NPM
2+
3+
# Only allows manual triggering
4+
on:
5+
workflow_dispatch:
6+
inputs:
7+
confirmation:
8+
description: "Are you sure you want to publish to NPM?"
9+
required: true
10+
default: "no"
11+
type: choice
12+
options:
13+
- yes
14+
- no
15+
16+
jobs:
17+
npm-publish:
18+
name: npm-publish
19+
if: github.event.inputs.confirmation == 'yes'
20+
runs-on: ubuntu-latest
21+
permissions:
22+
contents: read
23+
id-token: write
24+
steps:
25+
- uses: actions/checkout@v4
26+
with:
27+
ref: publish
28+
- uses: actions/setup-node@v4
29+
with:
30+
node-version: "22.x"
31+
registry-url: "https://registry.npmjs.org"
32+
- run: npm install --exact --no-audit --no-save
33+
- run: node ./scripts/test.js
34+
- run: node --expose-gc ./scripts/test-memory-leaks.js
35+
- run: npm publish --provenance --access public
36+
env:
37+
NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}

.github/workflows/publish.yml

+28-18
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,38 @@ jobs:
1111
name: test
1212
runs-on: ubuntu-latest
1313
steps:
14-
- uses: actions/setup-node@v3
14+
- uses: actions/setup-node@v4
1515
with:
1616
node-version: "20.x"
17-
- uses: actions/checkout@v3
18-
- run: npm ci --ignore-scripts --no-audit --no-save
19-
- run: node ./node-pre-gyp.js --custom-rebuild
17+
- uses: actions/checkout@v4
18+
- run: npm install --exact --no-audit --no-save
19+
env:
20+
ROARING_NODE_PRE_GYP: "false"
21+
- run: node ./node-pre-gyp.js
22+
env:
23+
ROARING_NODE_PRE_GYP: "custom-rebuild"
2024
- run: node ./scripts/test.js
2125
- run: node --expose-gc ./scripts/test-memory-leaks.js
2226

2327
prebuild:
2428
needs: test
2529
strategy:
2630
matrix:
27-
node-version: ["16.14.0", "18.1.0", "20.9.0", "21.1.0"]
28-
os: [ubuntu-20.04, windows-2019, macos-latest]
31+
node-version: ["16.14.0", "18.1.0", "20.9.0", "21.1.0", "22.8.0"]
32+
os: [ubuntu-20.04, windows-2019, macos-13, macos-latest]
2933
runs-on: ${{ matrix.os }}
3034
steps:
31-
- uses: actions/setup-node@v3
35+
- uses: actions/setup-node@v4
3236
with:
3337
node-version: ${{ matrix.node-version }}
34-
- uses: actions/checkout@v3
35-
- run: npm install --ignore-scripts --no-audit --no-save
36-
- run: node ./node-pre-gyp.js --custom-rebuild
37-
- run: node ./scripts/test.js --notypecheck
38+
- uses: actions/checkout@v4
39+
- run: npm install --exact --no-audit --no-save
40+
env:
41+
ROARING_NODE_PRE_GYP: "false"
42+
- run: node ./node-pre-gyp.js
43+
env:
44+
ROARING_NODE_PRE_GYP: "custom-rebuild"
45+
- run: node ./scripts/test.js
3846
- name: Prebuild
3947
env:
4048
NODE_PRE_GYP_GITHUB_TOKEN: ${{ secrets.PREBUILD_GITHUB_TOKEN }}
@@ -44,27 +52,29 @@ jobs:
4452
needs: [test, prebuild]
4553
strategy:
4654
matrix:
47-
os: [ubuntu-latest, windows-2019, macos-latest]
55+
os: [ubuntu-20.04, windows-2019, macos-13, macos-latest]
4856
runs-on: ${{ matrix.os }}
4957
steps:
50-
- uses: actions/setup-node@v3
58+
- uses: actions/setup-node@v4
5159
with:
5260
node-version: "18.16.0"
53-
- uses: actions/checkout@v3
61+
- uses: actions/checkout@v4
5462
- run: npm install
55-
- run: node ./scripts/test.js --notypecheck
63+
- run: node ./scripts/test.js
5664

5765
docs:
5866
needs: [test, prebuild, post-test]
5967
runs-on: ubuntu-latest
6068
steps:
6169
- uses: actions/checkout@v2
62-
- uses: actions/setup-node@v3
70+
- uses: actions/setup-node@v4
6371
with:
6472
node-version: 18.x
6573

66-
- name: npm ci
67-
run: npm ci --ignore-scripts
74+
- name: npm install
75+
run: npm install --exact --no-audit --no-save
76+
env:
77+
ROARING_NODE_PRE_GYP: "false"
6878

6979
- name: npm run doc
7080
run: npm run doc

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ If you want to contribute and submit a pull request, use the master branch.
1818

1919
## Supported node versions
2020

21-
Node 16.14+, 18+, 20+, 21 are currently supported.
21+
Node 16.14+, 18+, 20+, 21, and 22 are currently supported.
2222

2323
Node 8 and 10 support was dropped in release 2.0
2424

0 commit comments

Comments
 (0)