Skip to content

Commit

Permalink
feat(NODE-6593): add support for zstd@2.x (#4346)
Browse files Browse the repository at this point in the history
  • Loading branch information
baileympearson authored Dec 6, 2024
1 parent ed83f36 commit ea8a33f
Show file tree
Hide file tree
Showing 8 changed files with 161 additions and 66 deletions.
1 change: 1 addition & 0 deletions .evergreen/config.in.yml
Original file line number Diff line number Diff line change
Expand Up @@ -321,6 +321,7 @@ functions:
params:
working_dir: src
script: |
source ${DRIVERS_TOOLS}/.evergreen/init-node-and-npm-env.sh
npm install --force ${PACKAGE}
"run lint checks":
Expand Down
55 changes: 48 additions & 7 deletions .evergreen/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,7 @@ functions:
params:
working_dir: src
script: |
source ${DRIVERS_TOOLS}/.evergreen/init-node-and-npm-env.sh
npm install --force ${PACKAGE}
run lint checks:
- command: subprocess.exec
Expand Down Expand Up @@ -2105,7 +2106,23 @@ tasks:
- func: install dependencies
- func: bootstrap mongo-orchestration
- func: run socks5 tests
- name: test-zstd-compression
- name: test-snappy-compression
tags:
- latest
- snappy
commands:
- command: expansions.update
type: setup
params:
updates:
- {key: VERSION, value: latest}
- {key: TOPOLOGY, value: replica_set}
- {key: AUTH, value: auth}
- {key: COMPRESSOR, value: snappy}
- func: install dependencies
- func: bootstrap mongo-orchestration
- func: run-compression-tests
- name: test-zstd-1.x-compression
tags:
- latest
- zstd
Expand All @@ -2120,11 +2137,14 @@ tasks:
- {key: COMPRESSOR, value: zstd}
- func: install dependencies
- func: bootstrap mongo-orchestration
- func: install package
vars:
PACKAGE: '@mongodb-js/zstd@1.x'
- func: run-compression-tests
- name: test-snappy-compression
- name: test-zstd-2.x-compression
tags:
- latest
- snappy
- zstd
commands:
- command: expansions.update
type: setup
Expand All @@ -2133,7 +2153,7 @@ tasks:
- {key: VERSION, value: latest}
- {key: TOPOLOGY, value: replica_set}
- {key: AUTH, value: auth}
- {key: COMPRESSOR, value: snappy}
- {key: COMPRESSOR, value: zstd}
- func: install dependencies
- func: bootstrap mongo-orchestration
- func: run-compression-tests
Expand Down Expand Up @@ -4785,6 +4805,9 @@ buildvariants:
- test-socks5
- test-socks5-csfle
- test-socks5-tls
- test-snappy-compression
- test-zstd-1.x-compression
- test-zstd-2.x-compression
- test-tls-support-latest
- test-tls-support-8.0
- test-tls-support-7.0
Expand Down Expand Up @@ -4841,6 +4864,9 @@ buildvariants:
- test-socks5
- test-socks5-csfle
- test-socks5-tls
- test-snappy-compression
- test-zstd-1.x-compression
- test-zstd-2.x-compression
- test-tls-support-latest
- test-tls-support-8.0
- test-tls-support-7.0
Expand Down Expand Up @@ -4897,6 +4923,9 @@ buildvariants:
- test-socks5
- test-socks5-csfle
- test-socks5-tls
- test-snappy-compression
- test-zstd-1.x-compression
- test-zstd-2.x-compression
- test-tls-support-latest
- test-tls-support-8.0
- test-tls-support-7.0
Expand Down Expand Up @@ -4953,8 +4982,9 @@ buildvariants:
- test-socks5
- test-socks5-csfle
- test-socks5-tls
- test-zstd-compression
- test-snappy-compression
- test-zstd-1.x-compression
- test-zstd-2.x-compression
- test-tls-support-latest
- test-tls-support-8.0
- test-tls-support-7.0
Expand Down Expand Up @@ -5009,8 +5039,9 @@ buildvariants:
- test-auth-ldap
- test-socks5-csfle
- test-socks5-tls
- test-zstd-compression
- test-snappy-compression
- test-zstd-1.x-compression
- test-zstd-2.x-compression
- test-tls-support-latest
- test-tls-support-8.0
- test-tls-support-7.0
Expand Down Expand Up @@ -5055,6 +5086,9 @@ buildvariants:
- test-latest-server-v1-api
- test-socks5
- test-socks5-tls
- test-snappy-compression
- test-zstd-1.x-compression
- test-zstd-2.x-compression
- test-tls-support-latest
- test-tls-support-8.0
- test-tls-support-7.0
Expand Down Expand Up @@ -5099,6 +5133,9 @@ buildvariants:
- test-latest-server-v1-api
- test-socks5
- test-socks5-tls
- test-snappy-compression
- test-zstd-1.x-compression
- test-zstd-2.x-compression
- test-tls-support-latest
- test-tls-support-8.0
- test-tls-support-7.0
Expand Down Expand Up @@ -5143,6 +5180,9 @@ buildvariants:
- test-latest-server-v1-api
- test-socks5
- test-socks5-tls
- test-snappy-compression
- test-zstd-1.x-compression
- test-zstd-2.x-compression
- test-tls-support-latest
- test-tls-support-8.0
- test-tls-support-7.0
Expand Down Expand Up @@ -5187,8 +5227,9 @@ buildvariants:
- test-latest-server-v1-api
- test-socks5
- test-socks5-tls
- test-zstd-compression
- test-snappy-compression
- test-zstd-1.x-compression
- test-zstd-2.x-compression
- test-tls-support-latest
- test-tls-support-8.0
- test-tls-support-7.0
Expand Down
80 changes: 54 additions & 26 deletions .evergreen/generate_evergreen_tasks.js
Original file line number Diff line number Diff line change
Expand Up @@ -211,23 +211,60 @@ TASKS.push(
]
);

for (const compressor of ['zstd', 'snappy']) {
TASKS.push({
name: `test-${compressor}-compression`,
tags: ['latest', compressor],
commands: [
updateExpansions({
VERSION: 'latest',
TOPOLOGY: 'replica_set',
AUTH: 'auth',
COMPRESSOR: compressor
}),
{ func: 'install dependencies' },
{ func: 'bootstrap mongo-orchestration' },
{ func: 'run-compression-tests' }
]
});
}
TASKS.push({
name: `test-snappy-compression`,
tags: ['latest', 'snappy'],
commands: [
updateExpansions({
VERSION: 'latest',
TOPOLOGY: 'replica_set',
AUTH: 'auth',
COMPRESSOR: 'snappy'
}),
{ func: 'install dependencies' },
{ func: 'bootstrap mongo-orchestration' },
{ func: 'run-compression-tests' }
]
});

TASKS.push({
name: `test-zstd-1.x-compression`,
tags: ['latest', 'zstd'],
commands: [
updateExpansions({
VERSION: 'latest',
TOPOLOGY: 'replica_set',
AUTH: 'auth',
COMPRESSOR: 'zstd'
}),
{ func: 'install dependencies' },
{ func: 'bootstrap mongo-orchestration' },
{
func: 'install package',
vars: {
PACKAGE: '@mongodb-js/zstd@1.x'
}
},
{ func: 'run-compression-tests' }
]
});

TASKS.push({
name: `test-zstd-2.x-compression`,
tags: ['latest', 'zstd'],
commands: [
updateExpansions({
VERSION: 'latest',
TOPOLOGY: 'replica_set',
AUTH: 'auth',
COMPRESSOR: 'zstd'
}),
{ func: 'install dependencies' },
{ func: 'bootstrap mongo-orchestration' },
// no need to manually install zstd - we specify 2.x as a dev dependency in package.json
{ func: 'run-compression-tests' }
]
});

const AWS_LAMBDA_HANDLER_TASKS = [];
// Add task for testing lambda example without aws auth.
Expand Down Expand Up @@ -766,15 +803,6 @@ BUILD_VARIANTS.push({
tasks: ['.resource-management']
});

// TODO(NODE-4575): unskip zstd and snappy on node 16
for (const variant of BUILD_VARIANTS.filter(
variant => variant.expansions && [16, 18, 20].includes(variant.expansions.NODE_LTS_VERSION)
)) {
variant.tasks = variant.tasks.filter(
name => !['test-zstd-compression', 'test-snappy-compression'].includes(name)
);
}

// TODO(NODE-4897): Debug socks5 tests on node latest
for (const variant of BUILD_VARIANTS.filter(
variant => variant.expansions && ['latest'].includes(variant.expansions.NODE_LTS_VERSION)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ For exhaustive server and runtime version compatibility matrices, please refer t

The following table describes add-on component version compatibility for the Node.js driver. Only packages with versions in these supported ranges are stable when used in combination.

| Component | `mongodb@3.x` | `mongodb@4.x` | `mongodb@5.x` | `mongodb@<6.11` | `mongodb@>=6.11`|
| Component | `mongodb@3.x` | `mongodb@4.x` | `mongodb@5.x` | `mongodb@<6.12` | `mongodb@>=6.12`|
| ------------------------------------------------------------------------------------ | ------------------ | ------------------ | ------------------ | --------------- | --------------- |
| [bson](https://www.npmjs.com/package/bson) | ^1.0.0 | ^4.0.0 | ^5.0.0 | ^6.0.0 | ^6.0.0 |
| [bson-ext](https://www.npmjs.com/package/bson-ext) | ^1.0.0 \|\| ^2.0.0 | ^4.0.0 | N/A | N/A | N/A |
Expand Down
Loading

0 comments on commit ea8a33f

Please sign in to comment.