Skip to content

Commit 412eba8

Browse files
committed
Merge remote-tracking branch 'origin/main' into feat/provide-password
* origin/main: chore(release): 5.8.2 [skip ci] fix: move CLIENT SETINFO commands to connection handshake (redis#2033) ci(test): add redis matrix and update docker compose file (redis#2034) docs(example): add example for setting TTL to "HSET Field" (redis#2027) fix: default IP family selection to 0 (redis#2028) chore(release): 5.8.1 [skip ci] test: add scenario tests v5 (redis#2020) fix(ssubscribe): re-subscribe sharded pubsub channels individually (redis#2021) chore(release): 5.8.0 [skip ci] feat: support client setinfo (redis#2011) feat(stream): Add XDELEX command (redis#2003) Add stale issue management workflow (redis#2018) feat: implement proper hpexpire command signatures and tests (redis#2006) feat: add more xtrim method overloads and tests (redis#2010) test(cluster): fix and add cluster tests in CI (redis#2017) Force slots refresh on MOVED error when using ssubscribe (redis#2013) fix(ssubscribe): re-subscribe sharded pubsub channels individually on ready (redis#2012) chore(release): 5.7.0 [skip ci] fix: xread example for TypeScript (redis#1872) feat: Implement hexpire for redis#1898 (redis#1918)
2 parents a13ecb9 + d5f5b40 commit 412eba8

Some content is hidden

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

47 files changed

+3568
-1224
lines changed

.github/workflows/stale-issues.yml

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
name: "Stale Issue Management"
2+
on:
3+
schedule:
4+
# Run daily at midnight UTC
5+
- cron: "0 0 * * *"
6+
workflow_dispatch: # Allow manual triggering
7+
8+
env:
9+
# Default stale policy timeframes
10+
DAYS_BEFORE_STALE: 365
11+
DAYS_BEFORE_CLOSE: 30
12+
13+
# Accelerated timeline for needs-information issues
14+
NEEDS_INFO_DAYS_BEFORE_STALE: 30
15+
NEEDS_INFO_DAYS_BEFORE_CLOSE: 7
16+
17+
jobs:
18+
stale:
19+
runs-on: ubuntu-latest
20+
steps:
21+
# First step: Handle regular issues (excluding needs-information)
22+
- name: Mark regular issues as stale
23+
uses: actions/stale@v9
24+
with:
25+
repo-token: ${{ secrets.GITHUB_TOKEN }}
26+
27+
# Default stale policy
28+
days-before-stale: ${{ env.DAYS_BEFORE_STALE }}
29+
days-before-close: ${{ env.DAYS_BEFORE_CLOSE }}
30+
31+
# Explicit stale label configuration
32+
stale-issue-label: "stale"
33+
stale-pr-label: "stale"
34+
35+
stale-issue-message: |
36+
This issue has been automatically marked as stale due to inactivity.
37+
It will be closed in 30 days if no further activity occurs.
38+
If you believe this issue is still relevant, please add a comment to keep it open.
39+
40+
close-issue-message: |
41+
This issue has been automatically closed due to inactivity.
42+
If you believe this issue is still relevant, please reopen it or create a new issue with updated information.
43+
44+
# Exclude needs-information issues from this step
45+
exempt-issue-labels: 'no-stale,needs-information'
46+
47+
# Remove stale label when issue/PR becomes active again
48+
remove-stale-when-updated: true
49+
50+
# Apply to pull requests with same timeline
51+
days-before-pr-stale: ${{ env.DAYS_BEFORE_STALE }}
52+
days-before-pr-close: ${{ env.DAYS_BEFORE_CLOSE }}
53+
54+
stale-pr-message: |
55+
This pull request has been automatically marked as stale due to inactivity.
56+
It will be closed in 30 days if no further activity occurs.
57+
58+
close-pr-message: |
59+
This pull request has been automatically closed due to inactivity.
60+
If you would like to continue this work, please reopen the PR or create a new one.
61+
62+
# Only exclude no-stale PRs (needs-information PRs follow standard timeline)
63+
exempt-pr-labels: 'no-stale'
64+
65+
# Second step: Handle needs-information issues with accelerated timeline
66+
- name: Mark needs-information issues as stale
67+
uses: actions/stale@v9
68+
with:
69+
repo-token: ${{ secrets.GITHUB_TOKEN }}
70+
71+
# Accelerated timeline for needs-information
72+
days-before-stale: ${{ env.NEEDS_INFO_DAYS_BEFORE_STALE }}
73+
days-before-close: ${{ env.NEEDS_INFO_DAYS_BEFORE_CLOSE }}
74+
75+
# Explicit stale label configuration
76+
stale-issue-label: "stale"
77+
78+
# Only target ISSUES with needs-information label (not PRs)
79+
only-issue-labels: 'needs-information'
80+
81+
stale-issue-message: |
82+
This issue has been marked as stale because it requires additional information
83+
that has not been provided for 30 days. It will be closed in 7 days if the
84+
requested information is not provided.
85+
86+
close-issue-message: |
87+
This issue has been closed because the requested information was not provided within the specified timeframe.
88+
If you can provide the missing information, please reopen this issue or create a new one.
89+
90+
# Disable PR processing for this step
91+
days-before-pr-stale: -1
92+
days-before-pr-close: -1
93+
94+
# Remove stale label when issue becomes active again
95+
remove-stale-when-updated: true

.github/workflows/test.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,11 @@ jobs:
2828
with:
2929
redis-version: latest
3030

31+
- run: npm run cluster:setup
32+
3133
- run: npm install
3234
- run: npm run lint
3335
- run: npm run build
3436
- run: npm run test:tsd
3537
- run: npm run test:cov || npm run test:cov || npm run test:cov
38+
- run: npm run test:cluster

.github/workflows/test_with_cov.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ jobs:
77
strategy:
88
fail-fast: false
99
matrix:
10-
node: [12.x, 14.x, 16.x, 18.x, 20.x]
10+
node: [20.x, 22.x, 24.x]
11+
redis: ["rs-7.4.0-v1", "8.0.2", "8.2"]
1112
steps:
1213
- name: Git checkout
1314
uses: actions/checkout@v2
@@ -17,18 +18,18 @@ jobs:
1718
with:
1819
node-version: ${{ matrix.node }}
1920

20-
- name: Start Redis
21-
uses: supercharge/[email protected]
22-
with:
23-
redis-version: latest
21+
- run: npm run docker:setup
22+
env:
23+
REDIS_VERSION: ${{ matrix.redis }}
2424

2525
- run: npm install
2626
- run: npm run lint
2727
- run: npm run build
2828
- run: npm run test:tsd
2929
- run: npm run test:cov || npm run test:cov || npm run test:cov
30+
- run: npm run test:cluster
3031
- name: Coveralls
31-
if: matrix.node == '18.x'
32+
if: matrix.node == '24.x'
3233
uses: coverallsapp/github-action@master
3334
with:
3435
github-token: ${{ secrets.GITHUB_TOKEN }}

CHANGELOG.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,45 @@
1+
## [5.8.2](https://github.com/luin/ioredis/compare/v5.8.1...v5.8.2) (2025-10-21)
2+
3+
4+
### Bug Fixes
5+
6+
* default IP family selection to 0 ([#2028](https://github.com/luin/ioredis/issues/2028)) ([fb082d6](https://github.com/luin/ioredis/commit/fb082d6a8ece4b0921379ac449215c7ec7435023)), closes [#2026](https://github.com/luin/ioredis/issues/2026)
7+
* move CLIENT SETINFO commands to connection handshake ([#2033](https://github.com/luin/ioredis/issues/2033)) ([fcbbbe8](https://github.com/luin/ioredis/commit/fcbbbe898fc2540f5c14ad1f5d301f89bc2e4c22))
8+
9+
## [5.8.1](https://github.com/luin/ioredis/compare/v5.8.0...v5.8.1) (2025-10-06)
10+
11+
12+
### Bug Fixes
13+
14+
* **ssubscribe:** re-subscribe sharded pubsub channels individually ([#2021](https://github.com/luin/ioredis/issues/2021)) ([f161367](https://github.com/luin/ioredis/commit/f161367e4f2965b1ffe076f7e87e750772f56234))
15+
16+
# [5.8.0](https://github.com/luin/ioredis/compare/v5.7.0...v5.8.0) (2025-09-23)
17+
18+
19+
### Bug Fixes
20+
21+
* **ssubscribe:** re-subscribe sharded pubsub channels individually on ready ([#2012](https://github.com/luin/ioredis/issues/2012)) ([55a410f](https://github.com/luin/ioredis/commit/55a410fb1d7201d5de90ebb7a18a1c3cbf359b12))
22+
23+
24+
### Features
25+
26+
* add more xtrim method overloads and tests ([#2010](https://github.com/luin/ioredis/issues/2010)) ([8a3e052](https://github.com/luin/ioredis/commit/8a3e05205009325c1de417217c3f6156994b7079))
27+
* implement proper hpexpire command signatures and tests ([#2006](https://github.com/luin/ioredis/issues/2006)) ([95e80af](https://github.com/luin/ioredis/commit/95e80afa3f104a8911610bfeebdfb6c5cfc7a4cc))
28+
* **stream:** Add XDELEX command ([#2003](https://github.com/luin/ioredis/issues/2003)) ([7be3c8d](https://github.com/luin/ioredis/commit/7be3c8dc23403e247a32472998deff613fd8c9ad))
29+
* support client setinfo ([#2011](https://github.com/luin/ioredis/issues/2011)) ([a5d808b](https://github.com/luin/ioredis/commit/a5d808bc0bad8beab72ca0e044632a7178db5661))
30+
31+
# [5.7.0](https://github.com/luin/ioredis/compare/v5.6.1...v5.7.0) (2025-07-31)
32+
33+
34+
### Bug Fixes
35+
36+
* xread example for TypeScript ([#1872](https://github.com/luin/ioredis/issues/1872)) ([265ea59](https://github.com/luin/ioredis/commit/265ea5975a0447be12d7dd5e209256ecb42fc797))
37+
38+
39+
### Features
40+
41+
* Implement hexpire for [#1898](https://github.com/luin/ioredis/issues/1898) ([#1918](https://github.com/luin/ioredis/issues/1918)) ([121202c](https://github.com/luin/ioredis/commit/121202ca1a461c627680d2332e60dd8b33feaff8))
42+
143
## [5.6.1](https://github.com/luin/ioredis/compare/v5.6.0...v5.6.1) (2025-04-11)
244

345

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ async function listenForMessage(lastId = "$") {
262262
// `results` is an array, each element of which corresponds to a key.
263263
// Because we only listen to one key (mystream) here, `results` only contains
264264
// a single element. See more: https://redis.io/commands/xread#return-value
265-
const results = await redis.xread("block", 0, "STREAMS", "mystream", lastId);
265+
const results = await redis.xread("BLOCK", 0, "STREAMS", "mystream", lastId);
266266
const [key, messages] = results[0]; // `key` equals to "mystream"
267267

268268
messages.forEach(processMessage);

bin/returnTypes.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,8 @@ module.exports = {
142142
hdel: "number",
143143
hello: "unknown[]",
144144
hexists: "number",
145+
hexpire: "number[]",
146+
hpexpire: "number[]",
145147
hget: "string | null",
146148
hgetall: "[field: string, value: string][]",
147149
hincrby: "number",

docs/assets/search.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/classes/Cluster.html

Lines changed: 383 additions & 362 deletions
Large diffs are not rendered by default.

docs/classes/Redis.html

Lines changed: 386 additions & 364 deletions
Large diffs are not rendered by default.

docs/index.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)