Skip to content

Commit 4ad6a4a

Browse files
florian-schunkrummatee
authored andcommitted
Merge remote-tracking branch 'upstream/master' into addCommandTimeout
2 parents 5862b39 + a006ccf commit 4ad6a4a

File tree

594 files changed

+11432
-5215
lines changed

Some content is hidden

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

594 files changed

+11432
-5215
lines changed

.github/workflows/release.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Release
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
version:
7+
description: 'Version to release ("major", "minor", "patch", or "pre*" version; or specify version like "5.3.3")'
8+
required: true
9+
type: string
10+
args:
11+
description: 'Additional arguments to pass to release-it (e.g. "--dry-run"). See docs: https://github.com/release-it/release-it/blob/main/docs/git.md#configuration-options'
12+
required: false
13+
type: string
14+
15+
jobs:
16+
release:
17+
runs-on: ubuntu-latest
18+
permissions:
19+
contents: write
20+
packages: write
21+
steps:
22+
- name: Checkout code
23+
uses: actions/checkout@v4
24+
with:
25+
fetch-depth: 0
26+
27+
- name: Setup Node.js
28+
uses: actions/setup-node@v4
29+
with:
30+
node-version: '22'
31+
registry-url: 'https://registry.npmjs.org'
32+
33+
- name: Install dependencies
34+
run: npm ci
35+
36+
- name: Configure Git
37+
run: |
38+
git config --local user.email "[email protected]"
39+
git config --local user.name "GitHub Action"
40+
41+
# Build all packages
42+
- name: Build packages
43+
run: npm run build
44+
45+
# Release using the monorepo approach
46+
- name: Release packages
47+
run: npm run release -- --ci -i ${{ github.event.inputs.version }} ${{ github.event.inputs.args }}
48+
env:
49+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
50+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/tests.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,22 @@ on:
77
- v4.0
88
- v5
99
paths-ignore:
10-
- '**/*.md'
10+
- "**/*.md"
1111
pull_request:
1212
branches:
1313
- master
1414
- v4.0
1515
- v5
1616
paths-ignore:
17-
- '**/*.md'
17+
- "**/*.md"
1818
jobs:
1919
tests:
2020
runs-on: ubuntu-latest
2121
strategy:
2222
fail-fast: false
2323
matrix:
24-
node-version: [ '18', '20', '22' ]
25-
redis-version: [ 'rs-7.2.0-v13', 'rs-7.4.0-v1', '8.0-M05-pre' ]
24+
node-version: ["18", "20", "22"]
25+
redis-version: ["rs-7.2.0-v13", "rs-7.4.0-v1", "8.0.2"]
2626
steps:
2727
- uses: actions/checkout@v4
2828
with:

CHANGELOG.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
- Fix `NOAUTH` error when using authentication & database (#1681)
2323
- Allow to `.quit()` in PubSub mode (#1766)
24-
- Add an option to configurate `name` on a client (#1758)
24+
- Add an option to configure `name` on a client (#1758)
2525
- Lowercase commands (`client.hset`) in `legacyMode`
2626
- Fix PubSub resubscribe (#1764)
2727
- Fix `RedisSocketOptions` type (#1741)
@@ -466,7 +466,7 @@ Features
466466
Bugfixes
467467

468468
- Fixed a javascript parser regression introduced in 2.0 that could result in timeouts on high load. ([@BridgeAR](https://github.com/BridgeAR))
469-
- I was not able to write a regression test for this, since the error seems to only occur under heavy load with special conditions. So please have a look for timeouts with the js parser, if you use it and report all issues and switch to the hiredis parser in the meanwhile. If you're able to come up with a reproducable test case, this would be even better :)
469+
- I was not able to write a regression test for this, since the error seems to only occur under heavy load with special conditions. So please have a look for timeouts with the js parser, if you use it and report all issues and switch to the hiredis parser in the meanwhile. If you're able to come up with a reproducible test case, this would be even better :)
470470
- Fixed should_buffer boolean for .exec, .select and .auth commands not being returned and fix a couple special conditions ([@BridgeAR](https://github.com/BridgeAR))
471471

472472
If you do not rely on transactions but want to reduce the RTT you can use .batch from now on. It'll behave just the same as .multi but it does not have any transaction and therefor won't roll back any failed commands.<br>
@@ -518,7 +518,7 @@ Bugfixes:
518518

519519
- Fix argument mutation while using the array notation with the multi constructor (@BridgeAR)
520520
- Fix multi.hmset key not being type converted if used with an object and key not being a string (@BridgeAR)
521-
- Fix parser errors not being catched properly (@BridgeAR)
521+
- Fix parser errors not being caught properly (@BridgeAR)
522522
- Fix a crash that could occur if a redis server does not return the info command as usual #541 (@BridgeAR)
523523
- Explicitly passing undefined as a callback statement will work again. E.g. client.publish('channel', 'message', undefined); (@BridgeAR)
524524

@@ -560,13 +560,13 @@ This is the biggest release that node_redis had since it was released in 2010. A
560560
- Increased coverage by 10% and add a lot of tests to make sure everything works as it should. We now reached 97% :-) (@BridgeAR)
561561
- Remove dead code, clean up and refactor very old chunks (@BridgeAR)
562562
- Don't flush the offline queue if reconnecting (@BridgeAR)
563-
- Emit all errors insteaf of throwing sometimes and sometimes emitting them (@BridgeAR)
563+
- Emit all errors instead of throwing sometimes and sometimes emitting them (@BridgeAR)
564564
- _auth_pass_ passwords are now checked to be a valid password (@jcppman & @BridgeAR)
565565

566566
## Bug fixes:
567567

568568
- Don't kill the app anymore by randomly throwing errors sync instead of emitting them (@BridgeAR)
569-
- Don't catch user errors anymore occuring in callbacks (no try callback anymore & more fixes for the parser) (@BridgeAR)
569+
- Don't catch user errors anymore occurring in callbacks (no try callback anymore & more fixes for the parser) (@BridgeAR)
570570
- Early garbage collection of queued items (@dohse)
571571
- Fix js parser returning errors as strings (@BridgeAR)
572572
- Do not wrap errors into other errors (@BridgeAR)
@@ -588,19 +588,19 @@ This is the biggest release that node_redis had since it was released in 2010. A
588588
## Breaking changes:
589589

590590
1. redis.send_command commands have to be lower case from now on. This does only apply if you use `.send_command` directly instead of the convenient methods like `redis.command`.
591-
2. Error messages have changed quite a bit. If you depend on a specific wording please check your application carfully.
591+
2. Error messages have changed quite a bit. If you depend on a specific wording please check your application carefully.
592592
3. Errors are from now on always either returned if a callback is present or emitted. They won't be thrown (neither sync, nor async).
593593
4. The Multi error handling has changed a lot!
594594

595595
- All errors are from now on errors instead of strings (this only applied to the js parser).
596596
- If an error occurs while queueing the commands an EXECABORT error will be returned including the failed commands as `.errors` property instead of an array with errors.
597597
- If an error occurs while executing the commands and that command has a callback it'll return the error as first parameter (`err, undefined` instead of `null, undefined`).
598-
- All the errors occuring while executing the commands will stay in the result value as error instance (if you used the js parser before they would have been strings). Be aware that the transaction won't be aborted if those error occurr!
598+
- All the errors occurring while executing the commands will stay in the result value as error instance (if you used the js parser before they would have been strings). Be aware that the transaction won't be aborted if those error occur!
599599
- If `multi.exec` does not have a callback and an EXECABORT error occurrs, it'll emit that error instead.
600600

601601
5. If redis can't connect to your redis server it'll give up after a certain point of failures (either max connection attempts or connection timeout exceeded). If that is the case it'll emit an CONNECTION_BROKEN error. You'll have to initiate a new client to try again afterwards.
602602
6. The offline queue is not flushed anymore on a reconnect. It'll stay until node_redis gives up trying to reach the server or until you close the connection.
603-
7. Before this release node_redis catched user errors and threw them async back. This is not the case anymore! No user behavior of what so ever will be tracked or catched.
603+
7. Before this release node_redis caught user errors and threw them async back. This is not the case anymore! No user behavior of what so ever will be tracked or caught.
604604
8. The keyspace of `redis.server_info` (db0...) is from now on an object instead of an string.
605605

606606
NodeRedis also thanks @qdb, @tobek, @cvibhagool, @frewsxcv, @davidbanham, @serv, @vitaliylag, @chrishamant, @GamingCoder and all other contributors that I may have missed for their contributions!

0 commit comments

Comments
 (0)