Skip to content

Commit bc12bc4

Browse files
authored
Merge branch 'master' into fixing_mypy_errors
2 parents 9800225 + f3806fa commit bc12bc4

File tree

134 files changed

+22659
-660
lines changed

Some content is hidden

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

134 files changed

+22659
-660
lines changed

.github/actions/run-tests/action.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ runs:
7373
7474
# Mapping of redis version to stack version
7575
declare -A redis_stack_version_mapping=(
76-
["7.4.2"]="rs-7.4.0-v2"
77-
["7.2.7"]="rs-7.2.0-v14"
76+
["7.4.4"]="rs-7.4.0-v5"
77+
["7.2.9"]="rs-7.2.0-v17"
7878
)
7979
8080
if [[ -v redis_stack_version_mapping[$REDIS_VERSION] ]]; then
@@ -91,8 +91,10 @@ runs:
9191
fi
9292
9393
invoke devenv --endpoints=all-stack
94+
9495
else
9596
echo "Using redis CE for module tests"
97+
export CLIENT_LIBS_TEST_STACK_IMAGE_TAG=$REDIS_VERSION
9698
echo "REDIS_MOD_URL=redis://127.0.0.1:6379" >> $GITHUB_ENV
9799
invoke devenv --endpoints all
98100
fi

.github/wordlist.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
APM
22
ARGV
33
BFCommands
4+
balancer
45
CacheImpl
6+
cancelling
57
CAS
68
CFCommands
79
CMSCommands
@@ -10,19 +12,32 @@ ClusterNodes
1012
ClusterPipeline
1113
ClusterPubSub
1214
ConnectionPool
15+
config
1316
CoreCommands
17+
DatabaseConfig
18+
DNS
19+
EchoHealthCheck
1420
EVAL
1521
EVALSHA
22+
failover
23+
FQDN
1624
Grokzen's
25+
Healthcheck
26+
HealthCheckPolicies
27+
healthcheck
28+
healthchecks
1729
INCR
1830
IOError
1931
Instrumentations
2032
JSONCommands
2133
Jaeger
2234
Ludovico
2335
Magnocavallo
36+
MultiDbConfig
37+
MultiDBClient
2438
McCurdy
2539
NOSCRIPT
40+
NoValidDatabaseException
2641
NUMPAT
2742
NUMPT
2843
NUMSUB
@@ -43,6 +58,7 @@ RedisInstrumentor
4358
RedisJSON
4459
RedisTimeSeries
4560
SHA
61+
SLA
4662
SearchCommands
4763
SentinelCommands
4864
SentinelConnectionPool
@@ -52,6 +68,8 @@ SpanKind
5268
Specfiying
5369
StatusCode
5470
TCP
71+
TemporaryUnavailableException
72+
TLS
5573
TOPKCommands
5674
TimeSeriesCommands
5775
Uptrace
@@ -91,6 +109,7 @@ json
91109
keyslot
92110
keyspace
93111
kwarg
112+
kwargs
94113
linters
95114
localhost
96115
lua

.github/workflows/codeql-analysis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636

3737
steps:
3838
- name: Checkout repository
39-
uses: actions/checkout@v4
39+
uses: actions/checkout@v5
4040

4141
# Initializes the CodeQL tools for scanning.
4242
- name: Initialize CodeQL

.github/workflows/docs.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ jobs:
2525
name: Build docs
2626
runs-on: ubuntu-latest
2727
steps:
28-
- uses: actions/checkout@v4
29-
- uses: actions/setup-python@v5
28+
- uses: actions/checkout@v5
29+
- uses: actions/setup-python@v6
3030
with:
3131
python-version: 3.9
3232
cache: 'pip'

.github/workflows/hiredis-py-integration.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ env:
2323
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
2424
# this speeds up coverage with Python 3.12: https://github.com/nedbat/coveragepy/issues/1665
2525
COVERAGE_CORE: sysmon
26-
CURRENT_CLIENT_LIBS_TEST_STACK_IMAGE_TAG: 'rs-7.4.0-v2'
27-
CURRENT_REDIS_VERSION: '7.4.2'
26+
CURRENT_CLIENT_LIBS_TEST_STACK_IMAGE_TAG: '8.0.2'
27+
CURRENT_REDIS_VERSION: '8.0.2'
2828

2929
jobs:
3030
redis_version:
@@ -53,7 +53,7 @@ jobs:
5353
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
5454
name: Redis ${{ matrix.redis-version }}; Python ${{ matrix.python-version }}; RESP Parser:${{matrix.parser-backend}} (${{ matrix.hiredis-version }}); EL:${{matrix.event-loop}}
5555
steps:
56-
- uses: actions/checkout@v4
56+
- uses: actions/checkout@v5
5757
with:
5858
ref: ${{ inputs.redis-py-branch }}
5959
- name: Run tests

.github/workflows/install_and_test.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,12 @@ cd ${TESTDIR}
4040
# install, run tests
4141
pip install ${PKG}
4242
# Redis tests
43-
pytest -m 'not onlycluster'
43+
pytest -m 'not onlycluster' --ignore=tests/test_scenario --ignore=tests/test_asyncio/test_scenario
4444
# RedisCluster tests
4545
CLUSTER_URL="redis://localhost:16379/0"
4646
CLUSTER_SSL_URL="rediss://localhost:27379/0"
4747
pytest -m 'not onlynoncluster and not redismod and not ssl' \
48-
--redis-url="${CLUSTER_URL}" --redis-ssl-url="${CLUSTER_SSL_URL}"
48+
--ignore=tests/test_scenario \
49+
--ignore=tests/test_asyncio/test_scenario \
50+
--redis-url="${CLUSTER_URL}" \
51+
--redis-ssl-url="${CLUSTER_SSL_URL}"

.github/workflows/integration.yaml

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,17 @@ env:
2727
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
2828
# this speeds up coverage with Python 3.12: https://github.com/nedbat/coveragepy/issues/1665
2929
COVERAGE_CORE: sysmon
30-
CURRENT_CLIENT_LIBS_TEST_STACK_IMAGE_TAG: 'rs-7.4.0-v2'
31-
CURRENT_REDIS_VERSION: '7.4.2'
30+
# patch releases get included in the base version image when they are published
31+
# for example after 8.2.1 is published, 8.2 image contains 8.2.1 content
32+
CURRENT_CLIENT_LIBS_TEST_STACK_IMAGE_TAG: '8.2'
33+
CURRENT_REDIS_VERSION: '8.2'
3234

3335
jobs:
3436
dependency-audit:
3537
name: Dependency audit
3638
runs-on: ubuntu-latest
3739
steps:
38-
- uses: actions/checkout@v4
40+
- uses: actions/checkout@v5
3941
- uses: pypa/gh-action-pip-audit@v1.0.8
4042
with:
4143
inputs: dev_requirements.txt
@@ -46,8 +48,8 @@ jobs:
4648
name: Code linters
4749
runs-on: ubuntu-latest
4850
steps:
49-
- uses: actions/checkout@v4
50-
- uses: actions/setup-python@v5
51+
- uses: actions/checkout@v5
52+
- uses: actions/setup-python@v6
5153
with:
5254
python-version: 3.9
5355
cache: 'pip'
@@ -74,15 +76,15 @@ jobs:
7476
max-parallel: 15
7577
fail-fast: false
7678
matrix:
77-
redis-version: ['8.0.1-pre', '${{ needs.redis_version.outputs.CURRENT }}', '7.2.7']
79+
redis-version: ['8.4-M01-pre', '${{ needs.redis_version.outputs.CURRENT }}', '8.0.2' ,'7.4.4', '7.2.9']
7880
python-version: ['3.9', '3.13']
7981
parser-backend: ['plain']
8082
event-loop: ['asyncio']
8183
env:
8284
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
8385
name: Redis ${{ matrix.redis-version }}; Python ${{ matrix.python-version }}; RESP Parser:${{matrix.parser-backend}}; EL:${{matrix.event-loop}}
8486
steps:
85-
- uses: actions/checkout@v4
87+
- uses: actions/checkout@v5
8688
- name: Run tests
8789
uses: ./.github/actions/run-tests
8890
with:
@@ -99,14 +101,14 @@ jobs:
99101
fail-fast: false
100102
matrix:
101103
redis-version: [ '${{ needs.redis_version.outputs.CURRENT }}' ]
102-
python-version: ['3.9', '3.10', '3.11', '3.12', 'pypy-3.9', 'pypy-3.10']
104+
python-version: ['3.10', '3.11', '3.12', 'pypy-3.9', 'pypy-3.10']
103105
parser-backend: [ 'plain' ]
104106
event-loop: [ 'asyncio' ]
105107
env:
106108
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
107109
name: Redis ${{ matrix.redis-version }}; Python ${{ matrix.python-version }}; RESP Parser:${{matrix.parser-backend}}; EL:${{matrix.event-loop}}
108110
steps:
109-
- uses: actions/checkout@v4
111+
- uses: actions/checkout@v5
110112
- name: Run tests
111113
uses: ./.github/actions/run-tests
112114
with:
@@ -131,7 +133,7 @@ jobs:
131133
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
132134
name: Redis ${{ matrix.redis-version }}; Python ${{ matrix.python-version }}; RESP Parser:${{matrix.parser-backend}} (${{ matrix.hiredis-version }}); EL:${{matrix.event-loop}}
133135
steps:
134-
- uses: actions/checkout@v4
136+
- uses: actions/checkout@v5
135137
- name: Run tests
136138
uses: ./.github/actions/run-tests
137139
with:
@@ -156,7 +158,7 @@ jobs:
156158
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
157159
name: Redis ${{ matrix.redis-version }}; Python ${{ matrix.python-version }}; RESP Parser:${{matrix.parser-backend}}; EL:${{matrix.event-loop}}
158160
steps:
159-
- uses: actions/checkout@v4
161+
- uses: actions/checkout@v5
160162
- name: Run tests
161163
uses: ./.github/actions/run-tests
162164
with:
@@ -174,8 +176,8 @@ jobs:
174176
matrix:
175177
extension: ['tar.gz', 'whl']
176178
steps:
177-
- uses: actions/checkout@v4
178-
- uses: actions/setup-python@v5
179+
- uses: actions/checkout@v5
180+
- uses: actions/setup-python@v6
179181
with:
180182
python-version: 3.9
181183
- name: Run installed unit tests
@@ -193,8 +195,8 @@ jobs:
193195
matrix:
194196
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', 'pypy-3.9', 'pypy-3.10']
195197
steps:
196-
- uses: actions/checkout@v4
197-
- uses: actions/setup-python@v5
198+
- uses: actions/checkout@v5
199+
- uses: actions/setup-python@v6
198200
with:
199201
python-version: ${{ matrix.python-version }}
200202
cache: 'pip'

.github/workflows/pypi-publish.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ jobs:
1313
build_and_package:
1414
runs-on: ubuntu-latest
1515
steps:
16-
- uses: actions/checkout@v4
16+
- uses: actions/checkout@v5
1717
- name: install python
18-
uses: actions/setup-python@v5
18+
uses: actions/setup-python@v6
1919
with:
2020
python-version: 3.9
2121
- run: pip install build twine

.github/workflows/spellcheck.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ jobs:
66
runs-on: ubuntu-latest
77
steps:
88
- name: Checkout
9-
uses: actions/checkout@v4
9+
uses: actions/checkout@v5
1010
- name: Check Spelling
11-
uses: rojopolis/spellcheck-github-actions@0.49.0
11+
uses: rojopolis/spellcheck-github-actions@0.52.0
1212
with:
1313
config_path: .github/spellcheck-settings.yml
1414
task_name: Markdown

.github/workflows/stale-issues.yml

Lines changed: 88 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,95 @@
1-
name: "Close stale issues"
1+
name: "Stale Issue Management"
22
on:
33
schedule:
4-
- cron: "0 0 * * *"
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
516

6-
permissions: {}
717
jobs:
818
stale:
9-
permissions:
10-
issues: write # to close stale issues (actions/stale)
11-
pull-requests: write # to close stale PRs (actions/stale)
12-
1319
runs-on: ubuntu-latest
1420
steps:
15-
- uses: actions/stale@v9
16-
with:
17-
repo-token: ${{ secrets.GITHUB_TOKEN }}
18-
stale-issue-message: 'This issue is marked stale. It will be closed in 30 days if it is not updated.'
19-
stale-pr-message: 'This pull request is marked stale. It will be closed in 30 days if it is not updated.'
20-
days-before-stale: 365
21-
days-before-close: 30
22-
stale-issue-label: "Stale"
23-
stale-pr-label: "Stale"
24-
operations-per-run: 20
25-
remove-stale-when-updated: true
21+
# First step: Handle regular issues (excluding needs-information)
22+
- name: Mark regular issues as stale
23+
uses: actions/stale@v10
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@v10
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

0 commit comments

Comments
 (0)