Skip to content

Commit f895cbb

Browse files
authored
Merge branch 'master' into master
2 parents 1ef9121 + 3aec3dd commit f895cbb

File tree

238 files changed

+47174
-2556
lines changed

Some content is hidden

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

238 files changed

+47174
-2556
lines changed

.github/RELEASE_NOTES_TEMPLATE.md

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
# Release Notes Template for go-redis
2+
3+
This template provides a structured format for creating release notes for go-redis releases.
4+
5+
## Format Structure
6+
7+
```markdown
8+
# X.Y.Z (YYYY-MM-DD)
9+
10+
## 🚀 Highlights
11+
12+
### [Category Name]
13+
Brief description of the major feature/change with context and impact.
14+
- Key points
15+
- Performance metrics if applicable
16+
- Links to documentation
17+
18+
### [Another Category]
19+
...
20+
21+
## ✨ New Features
22+
23+
- Feature description ([#XXXX](https://github.com/redis/go-redis/pull/XXXX)) by [@username](https://github.com/username)
24+
- ...
25+
26+
## 🐛 Bug Fixes
27+
28+
- Fix description ([#XXXX](https://github.com/redis/go-redis/pull/XXXX)) by [@username](https://github.com/username)
29+
- ...
30+
31+
## ⚡ Performance
32+
33+
- Performance improvement description ([#XXXX](https://github.com/redis/go-redis/pull/XXXX)) by [@username](https://github.com/username)
34+
- ...
35+
36+
## 🧪 Testing & Infrastructure
37+
38+
- Testing/CI improvement ([#XXXX](https://github.com/redis/go-redis/pull/XXXX)) by [@username](https://github.com/username)
39+
- ...
40+
41+
## 👥 Contributors
42+
43+
We'd like to thank all the contributors who worked on this release!
44+
45+
[@username1](https://github.com/username1), [@username2](https://github.com/username2), ...
46+
47+
---
48+
49+
**Full Changelog**: https://github.com/redis/go-redis/compare/vX.Y-1.Z...vX.Y.Z
50+
```
51+
52+
## Guidelines
53+
54+
### Highlights Section
55+
The Highlights section should contain the **most important** user-facing changes. Common categories include:
56+
57+
- **Typed Errors** - Error handling improvements
58+
- **New Commands** - New Redis commands support (especially for new Redis versions)
59+
- **Search & Vector** - RediSearch and vector-related features
60+
- **Connection Pool** - Pool improvements and performance
61+
- **Metrics & Observability** - Monitoring and instrumentation
62+
- **Breaking Changes** - Any breaking changes (should be prominent)
63+
64+
Each highlight should:
65+
- Have a descriptive title
66+
- Include context about why it matters
67+
- Link to relevant PRs
68+
- Include performance metrics if applicable
69+
70+
### New Features Section
71+
- List all new features with PR links and contributor attribution
72+
- Use descriptive text, not just PR titles
73+
- Group related features together if it makes sense
74+
75+
### Bug Fixes Section
76+
- Only include actual bug fixes
77+
- Be specific about what was broken and how it's fixed
78+
- Include issue links if the PR references an issue
79+
80+
### Performance Section
81+
- Separate from New Features to highlight performance work
82+
- Include metrics when available (e.g., "47-67% faster", "33% less memory")
83+
- Explain the impact on users
84+
85+
### Testing & Infrastructure Section
86+
- Include only important testing/CI changes
87+
- **Exclude** dependency bumps (e.g., dependabot PRs for actions)
88+
- **Exclude** minor CI tweaks unless they're significant
89+
- Include major Redis version updates in CI
90+
91+
### What to Exclude
92+
- Dependency bumps (dependabot PRs)
93+
- Minor documentation typo fixes
94+
- Internal refactoring that doesn't affect users
95+
- Duplicate entries (same PR in multiple sections)
96+
- `dependabot[bot]` from contributors list
97+
98+
### Formatting Rules
99+
1. **PR Links**: Use `([#XXXX](https://github.com/redis/go-redis/pull/XXXX))` format
100+
2. **Contributor Links**: Use `[@username](https://github.com/username)` format
101+
3. **Issue Links**: Use `([#XXXX](https://github.com/redis/go-redis/issues/XXXX))` format
102+
4. **Full Changelog**: Always include at the bottom with correct version comparison
103+
104+
### Getting PR Information
105+
Use GitHub API to fetch PR details:
106+
```bash
107+
# Get recent merged PRs
108+
gh pr list --state merged --limit 50 --json number,title,author,mergedAt,url
109+
```
110+
111+
Or use the GitHub web interface to review merged PRs between releases.
112+
113+
### Example Workflow
114+
1. Gather all merged PRs since last release
115+
2. Categorize PRs by type (feature, bug fix, performance, etc.)
116+
3. Identify the 3-5 most important changes for Highlights
117+
4. Remove duplicates and dependency bumps
118+
5. Add PR and contributor links
119+
6. Review for clarity and completeness
120+
7. Add Full Changelog link with correct version tags
121+
122+
## Example (v9.17.0)
123+
124+
See the v9.17.0 release notes in `RELEASE-NOTES.md` for a complete example following this template.
125+

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

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,20 @@ runs:
1818
- name: Setup Test environment
1919
env:
2020
REDIS_VERSION: ${{ inputs.redis-version }}
21-
CLIENT_LIBS_TEST_IMAGE: "redislabs/client-libs-test:${{ inputs.redis-version }}"
2221
run: |
2322
set -e
2423
redis_version_np=$(echo "$REDIS_VERSION" | grep -oP '^\d+.\d+')
25-
24+
2625
# Mapping of redis version to redis testing containers
2726
declare -A redis_version_mapping=(
28-
["8.0.1"]="8.0.1-pre"
29-
["7.4.2"]="rs-7.4.0-v2"
30-
["7.2.7"]="rs-7.2.0-v14"
27+
["8.4.x"]="8.4.0"
28+
["8.2.x"]="8.2.1-pre"
29+
["8.0.x"]="8.0.2"
3130
)
32-
31+
3332
if [[ -v redis_version_mapping[$REDIS_VERSION] ]]; then
3433
echo "REDIS_VERSION=${redis_version_np}" >> $GITHUB_ENV
35-
echo "REDIS_IMAGE=redis:${{ inputs.redis-version }}" >> $GITHUB_ENV
34+
echo "REDIS_IMAGE=redis:${REDIS_VERSION}" >> $GITHUB_ENV
3635
echo "CLIENT_LIBS_TEST_IMAGE=redislabs/client-libs-test:${redis_version_mapping[$REDIS_VERSION]}" >> $GITHUB_ENV
3736
else
3837
echo "Version not found in the mapping."
@@ -50,4 +49,4 @@ runs:
5049
RE_CLUSTER: "false"
5150
run: |
5251
make test.ci
53-
shell: bash
52+
shell: bash

.github/release-drafter-config.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ categories:
3636
change-template: '- $TITLE (#$NUMBER)'
3737
exclude-labels:
3838
- 'skip-changelog'
39+
exclude-contributors:
40+
- 'dependabot'
3941
template: |
4042
# Changes
4143

.github/wordlist.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,7 @@ OAuth
7373
Azure
7474
StreamingCredentialsProvider
7575
oauth
76-
entraid
76+
entraid
77+
MiB
78+
KiB
79+
oldstable

.github/workflows/build.yml

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ name: Go
22

33
on:
44
push:
5-
branches: [master, v9, v9.7, v9.8]
5+
branches: [master, v9, 'v9.*']
66
pull_request:
7-
branches: [master, v9, v9.7, v9.8]
7+
branches: [master, v9, v9.7, v9.8, 'ndyakov/*', 'ofekshenawa/*', 'htemelski-redis/*', 'ce/*']
88

99
permissions:
1010
contents: read
@@ -18,20 +18,23 @@ jobs:
1818
fail-fast: false
1919
matrix:
2020
redis-version:
21-
- "8.0.1" # 8.0.1
22-
- "7.4.2" # should use redis stack 7.4
21+
- "8.4.x" # Redis CE 8.4
22+
- "8.2.x" # Redis CE 8.2
23+
- "8.0.x" # Redis CE 8.0
2324
go-version:
25+
- "1.21.x"
2426
- "1.23.x"
25-
- "1.24.x"
27+
- oldstable
28+
- stable
2629

2730
steps:
2831
- name: Set up ${{ matrix.go-version }}
29-
uses: actions/setup-go@v5
32+
uses: actions/setup-go@v6
3033
with:
3134
go-version: ${{ matrix.go-version }}
3235

3336
- name: Checkout code
34-
uses: actions/checkout@v4
37+
uses: actions/checkout@v6
3538

3639
- name: Setup Test environment
3740
env:
@@ -43,8 +46,9 @@ jobs:
4346
4447
# Mapping of redis version to redis testing containers
4548
declare -A redis_version_mapping=(
46-
["8.0.1"]="8.0.1-pre"
47-
["7.4.2"]="rs-7.4.0-v2"
49+
["8.4.x"]="8.4.0"
50+
["8.2.x"]="8.2.1-pre"
51+
["8.0.x"]="8.0.2"
4852
)
4953
if [[ -v redis_version_mapping[$REDIS_VERSION] ]]; then
5054
echo "REDIS_VERSION=${redis_version_np}" >> $GITHUB_ENV
@@ -72,16 +76,18 @@ jobs:
7276
fail-fast: false
7377
matrix:
7478
redis-version:
75-
- "8.0.1" # 8.0.1
76-
- "7.4.2" # should use redis stack 7.4
77-
- "7.2.7" # should redis stack 7.2
79+
- "8.4.x" # Redis CE 8.4
80+
- "8.2.x" # Redis CE 8.2
81+
- "8.0.x" # Redis CE 8.0
7882
go-version:
83+
- "1.21.x"
7984
- "1.23.x"
80-
- "1.24.x"
85+
- oldstable
86+
- stable
8187

8288
steps:
8389
- name: Checkout code
84-
uses: actions/checkout@v4
90+
uses: actions/checkout@v6
8591

8692
- name: Run tests
8793
uses: ./.github/actions/run-tests

.github/workflows/codeql-analysis.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,11 @@ jobs:
3535

3636
steps:
3737
- name: Checkout repository
38-
uses: actions/checkout@v4
38+
uses: actions/checkout@v6
3939

4040
# Initializes the CodeQL tools for scanning.
4141
- name: Initialize CodeQL
42-
uses: github/codeql-action/init@v3
42+
uses: github/codeql-action/init@v4
4343
with:
4444
languages: ${{ matrix.language }}
4545
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -50,7 +50,7 @@ jobs:
5050
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
5151
# If this step fails, then you should remove it and run the build manually (see below)
5252
- name: Autobuild
53-
uses: github/codeql-action/autobuild@v3
53+
uses: github/codeql-action/autobuild@v4
5454

5555
# ℹ️ Command-line programs to run using the OS shell.
5656
# 📚 https://git.io/JvXDl
@@ -64,4 +64,4 @@ jobs:
6464
# make release
6565

6666
- name: Perform CodeQL Analysis
67-
uses: github/codeql-action/analyze@v3
67+
uses: github/codeql-action/analyze@v4

.github/workflows/doctests.yaml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@ jobs:
1616

1717
services:
1818
redis-stack:
19-
image: redis/redis-stack-server:latest
20-
options: >-
21-
--health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
19+
image: redislabs/client-libs-test:8.4.0
20+
env:
21+
TLS_ENABLED: no
22+
REDIS_CLUSTER: no
23+
PORT: 6379
2224
ports:
2325
- 6379:6379
2426

@@ -29,13 +31,13 @@ jobs:
2931

3032
steps:
3133
- name: Set up ${{ matrix.go-version }}
32-
uses: actions/setup-go@v5
34+
uses: actions/setup-go@v6
3335
with:
3436
go-version: ${{ matrix.go-version }}
3537

3638
- name: Checkout code
37-
uses: actions/checkout@v4
39+
uses: actions/checkout@v6
3840

3941
- name: Test doc examples
4042
working-directory: ./doctests
41-
run: go test -v
43+
run: make test

.github/workflows/golangci-lint.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ jobs:
2020
name: lint
2121
runs-on: ubuntu-latest
2222
steps:
23-
- uses: actions/checkout@v4
23+
- uses: actions/checkout@v6
2424
- name: golangci-lint
25-
uses: golangci/golangci-lint-action@v8.0.0
25+
uses: golangci/golangci-lint-action@v9.1.0
2626
with:
2727
verify: true
2828

.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@v6
1010
- name: Check Spelling
11-
uses: rojopolis/spellcheck-github-actions@0.49.0
11+
uses: rojopolis/spellcheck-github-actions@0.55.0
1212
with:
1313
config_path: .github/spellcheck-settings.yml
1414
task_name: Markdown

0 commit comments

Comments
 (0)