Skip to content

Commit 4e6d018

Browse files
leibaleNovaAtWarrensimonprickettguyroyse
authored
V4 (#1624)
* init v4 * add .gitignore to benchmark * spawn redis-servers for tests, add some tests, fix client auth on connect * add tests coverage report * add tests workflow, replace nyc text reporter with text-summary * run tests with node 16.x & redis 6.x only (for now) * add socket events on client, stop reconnectiong when manually calling disconnect, remove abort signal listener when a command is written on the socket * add isOpen boolean getter on client, add maxLength option to command queue, add test for client.multi * move to use CommonJS * add MULTI and EXEC commands to when executing multi command, make client.multi return type innerit the module commands, clean some tests, exclute spec files from coverage report * missing file from commit 61edd4f * exclude spec files from coverage report * add support for options in a command function (.get, .set, ...), add support for the SELECT command, implement a couple of commands, fix client socket reconnection strategy, add support for using replicas (RO) in cluster, and more.. * fix client.blPop test * use which to find redis-server path * change command options to work with Symbol rather then WeakSet * implement more commands * Add support for lua scripts in client & muilti, fix client socket initiator, implement simple cluster nodes discovery strategy * replace `callbackify` with `legacyMode` * add the SCAN command and client.scanIterator * rename scanIterator * init benchmark workflow * fix benchmark workflow * fix benchmark workflow * fix benchmark workflow * push coverage report to Coveralls * fix Coveralls * generator lcov (for Coveralls) * fix .nycrc.json * PubSub * add support for all set commands (including sScanIterator) * support pipeline * fix KEEPTTL in SET * remove console.log * add HyperLogLog commands * update README.md (thanks to @guyroyse) * add support for most of the "keys commands" * fix EXPIREAT.spec.ts * add support for date in both EXPIREAT & EXPIRE * add tests * better cluster nodes discorvery strategy after MOVED error, add PubSub test * fix PubSub UNSUBSCRIBE/PUNSUBSCRIBE without channel and/or listener * fix PubSub * add release-it to dev dependencies * Release 4.0.0-next.0 * fix .npmignore * Release 4.0.0-next.1 * fix links in README.md * fix .npmignore * Release 4.0.0-next.2 * add support for all sorted set commands * add support for most stream commands * add missing file from commit 53de279 * lots of todo commends * make PubSub test more stable * clean ZPOPMAX * add support for lua scripts and modules in cluster, spawn cluster for tests, add some cluster tests, fix pubsub listener arguments * GET.spec.ts * add support for List commands, fix some Sorted Set commands, add some cluster commands, spawn cluster for testing, add support for command options in cluster, and more * add missing file from commit faab94f * clean ZRANK and ZREVRANK * add XREAD and XREADGROUP commands * remove unused files * implement a couple of more commands, make cluster random iterator be per node (instead of per slot) * Release 4.0.0-next.3 * app spec files to npmignore * fix some code analyzers (LGTM, deepsource, codeclimate) issues * fix CLUSTER_NODES, add some tests * add HSCAN, clean some commands, add tests for generic transformers * add missing files from 0feb35a * update README.md (thanks to @guyroyse) * handle ASK errors, add some commands and tests * Release 4.0.0-next.4 * replace "modern" with "v4" * remove unused imports * add all ACL subcommands, all MODULE subcommands, and some other commands * remove 2 unused imports * fix BITFIELD command * fix XTRIM spec file * clean code * fix package.json types field * better modules support, fix some bugs in legacy mode, add some tests * remove unused function * add test for hScanIterator * change node mimimum version to 12 (latest LTS) * update tsconfig.json to support node 12, run tests on Redis 5 & 6 and on all node live versions * remove future node releases :P * remove "lib" from ts compiler options * Update tsconfig.json * fix build * run some tests only on supported redis versions, use coveralls parallel mode * fix tests * Do not use "timers/promises", fix "isRedisVersionGreaterThan" * skip AbortController tests when not available * use 'fs'.promises instead of 'fs/promises' * add some missing commands * run GETDEL tests only if the redis version is greater than 6.2 * implement some GEO commands, improve scan generic transformer, expose RPUSHX * fix GEOSEARCH & GEOSEARCHSTORE * use socket.setNoDelay and queueMicrotask to improve latency * commands-queue.ts: String length / byte length counting issue (#1630) * Update commands-queue.ts Hopefully fixing #1628 * Reverted 2fa5ea6, and implemented test for byte length check * Changed back to Buffer.byteLength, due to issue author input. Updated test to look for 4 bytes. * Fixed. There were two places that length was calculated. * Removed redundant string assignment * add 2 bytes test as well Co-authored-by: Leibale Eidelman <[email protected]> * fix scripts in multi * do not hide bugs in redis * fix for e7bf096 * remove unused import * implement WATCH command, fix ZRANGESTORE & GEOSEARCHSTORE tests * update README.md Co-authored-by: @guyroyse * use typedoc to auto generate documentation * run "npm install" before "npm run documentation" * clean documentation workflow * fix WATCH spec file * increase "CLUSTER_NODE_TIMEOUT" to 5000ms to avoid "CLUSTERDOWN" errors in tests * pull cluster state every 100 ms * await meetPromises before pulling the cluster state * enhance the way commanders (client/multi/cluster) get extended with modules and scripts * add test for socket retry strategy * implement more commands * set GETEX minimum version to 6.2 * remove unused imports * add support for multi in cluster * upgrade dependencies * Release 4.0.0-next.5 * remove unused imports * improve benchmarking * use the same Multi with duplicated clients * exclude some files from the documentation, add some exports, clean code * fix #1636 - handle null in multi.exec * remove unused import * add supoprt for tuples in HSET * add FIRST_KEY_INDEX to HSET * add a bunch of missing commands, fix MSET and HELLO, add some tests * add FIRST_KEY_INDEX to MSET and MSETNX * upgrade actions * fix coverallsapp/github-action version * Update documentation.yml * Update documentation.yml * clean code * remove unused imports * use "npm ci" instead of "npm install" * fix `self` binding on client modules, use connection pool for `duplicateConnection` * add client.executeIsolated, rename "duplicateConnection" to "isolated", update README.md (thanks to @guyroyse and @simonprickett) * update README (thanks to @guyroyse), add some tests * try to fix "cluster is down" errors in tests * try to fix "cluster is down" errors in tests * upgrade dependencies * update package-lock * Release 4.0.0-next.6 * fix #1636 - fix WatchError * fix for f1bf0be - remove .only from multi tests * Release 4.0.0-next.7 * update README and other markdown files Co-authored-by: @guyroyse & @simonprickett * Doc updates. (#1640) * update docs, upgrade dependencies * fix README * Release 4.0.0-rc.0 * Update README.md * update docs, add `connectTimeout` options, fix tls Co-authored-by: Guy Royse <[email protected]> * npm update, "fix" some tests, clean code * fix AssertionError import * fix #1642 - fix XREAD, XREADGROUP and XTRIM * fix #1644 - add the QUIT command * add socket.noDelay and socket.keepAlive configurations * Update README.md (#1645) * Update README.md Fixed issue with how connection string was specified. Now you can have user@host without having to specify a password, which just makes more sense * Update client-configuration.md as well Co-authored-by: Leibale Eidelman <[email protected]> * update socket.reconnectStrategy description * fix borken link in v3-to-v4.md * increase test coverage, fix bug in cluster redirection strategy, implement CLIENT_ID, remove unused EXEC command Co-authored-by: Nova <[email protected]> Co-authored-by: Simon Prickett <[email protected]> Co-authored-by: Guy Royse <[email protected]>
1 parent 4f85030 commit 4e6d018

File tree

661 files changed

+28837
-14549
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

661 files changed

+28837
-14549
lines changed

.deepsource.toml

Lines changed: 0 additions & 9 deletions
This file was deleted.

.eslintignore

Lines changed: 0 additions & 4 deletions
This file was deleted.

.eslintrc

Lines changed: 0 additions & 109 deletions
This file was deleted.

.github/FUNDING.yml

Lines changed: 0 additions & 1 deletion
This file was deleted.

.github/ISSUE_TEMPLATE.md

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,30 +5,17 @@ labels: needs-triage
55

66
### Issue
77

8-
<!--
9-
Thanks for wanting to report an issue you've found in node_redis. Please delete
10-
this text and fill in the template below. Please note that the issue tracker is only
11-
for bug reports or feature requests.
12-
13-
If you have a question, please ask it on Stack Overflow using the `node-redis` tag.
14-
15-
Note that it will be much easier to fix the issue if a test case that reproduces
16-
the problem is provided. It is of course not always possible to reduce your code
17-
with a small test case, but it's highly appreciated to have as much data as possible.
18-
-->
19-
208
> Describe your issue here
219
22-
2310
---
2411

2512
### Environment
2613

2714
<!-- e.g. "node --version" -->
2815
- **Node.js Version**: `VERSION_HERE`
29-
16+
3017
<!-- e.g. "redis-server --version" -->
31-
- **Redis Version**: `VERSION_HERE`
32-
18+
- **Redis Server Version**: `VERSION_HERE`
19+
3320
<!-- e.g. Windows 10, Mac OSX 10.15.2 -->
3421
- **Platform**: `PLATFORM_HERE`

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
1-
<!-- please ensure you have read the `./CONTRIBUTING.md` guide -->
2-
31
### Description
42

53
<!-- Please provide a description of the change below, e.g What was the purpose? -->
6-
<!-- Why does it matter to you? What problem are you trying to solve? -->
4+
<!-- Why does it matter to you? What problem are you trying to solve? -->
75
<!-- Tag in any linked issues. -->
86

9-
> Description your pull request here
10-
7+
> Describe your pull request here
118
129
---
1310

.github/workflows/benchmark.yml

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
name: Benchmarking
1+
name: Benchmark
22

3-
on: [pull_request]
3+
on:
4+
push:
5+
branches:
6+
- v4
47

58
jobs:
69
benchmark:
@@ -9,30 +12,34 @@ jobs:
912
strategy:
1013
fail-fast: false
1114
matrix:
12-
node-version: [10.x, 12.x, 14.x, 15.x]
13-
redis-version: [5.x, 6.x]
15+
node-version: [16.x]
16+
redis-version: [6.x]
1417

1518
steps:
1619
- uses: actions/[email protected]
1720
with:
1821
fetch-depth: 1
1922

2023
- name: Use Node.js ${{ matrix.node-version }}
21-
uses: actions/setup-node@v2.1.5
24+
uses: actions/setup-node@v2.3.0
2225
with:
2326
node-version: ${{ matrix.node-version }}
2427

2528
- name: Setup Redis
26-
uses: shogo82148/actions-setup-redis@v1.9.7
29+
uses: shogo82148/actions-setup-redis@v1.12.0
2730
with:
2831
redis-version: ${{ matrix.redis-version }}
29-
auto-start: "true"
3032

31-
- run: npm i --no-audit --prefer-offline
32-
- name: Run Benchmark
33-
run: npm run benchmark > benchmark-output.txt && cat benchmark-output.txt
34-
- name: Upload Benchmark Result
35-
uses: actions/[email protected]
36-
with:
37-
name: benchmark-output.txt
38-
path: benchmark-output.txt
33+
- name: Install Packages
34+
run: npm ci
35+
36+
- name: Build
37+
run: npm run build
38+
39+
- name: Install Benchmark Packages
40+
run: npm ci
41+
working-directory: ./benchmark
42+
43+
- name: Benchmark
44+
run: npm run start
45+
working-directory: ./benchmark

.github/workflows/codeql-analysis.yml

Lines changed: 0 additions & 67 deletions
This file was deleted.

.github/workflows/documentation.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Documentation
2+
3+
on:
4+
push:
5+
branches:
6+
- v4
7+
8+
jobs:
9+
documentation:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- uses: actions/[email protected]
14+
with:
15+
fetch-depth: 1
16+
17+
- name: Use Node.js
18+
uses: actions/[email protected]
19+
20+
- name: Install Packages
21+
run: npm ci
22+
23+
- name: Generate Documentation
24+
run: npm run documentation
25+
26+
- name: Upload Documentation to Wiki
27+
uses: SwiftDocOrg/github-wiki-publish-action@v1
28+
with:
29+
path: documentation
30+
env:
31+
GH_PERSONAL_ACCESS_TOKEN: ${{ secrets.BOT_PERSONAL_ACCESS_TOKEN }}

.github/workflows/linting.yml

Lines changed: 0 additions & 31 deletions
This file was deleted.

0 commit comments

Comments
 (0)