Skip to content

Commit 9d85723

Browse files
authored
Timeseries insertion filters for close samples (#3228)
Support timeseries insertion filters for samples that are close to each other in time and value. Use the documented way to disable compression, i.e. `ENCODING UNCOMPRESSED` instead of `UNCOMPRESSED`. Polish the documentation related to timeseries. Align things needed around CI, to make sure all tests are actually executed. BREAKING CHANGES: 1. Remove the `uncompressed` flag from TS.ALTER, since compression of existing timeseries cannot be changed. This should not have been used, so there should be no real impact. 2. For the TS.ADD command (TimeSeriesCommands.add method): the `duplicate_policy` Python parameter that was mapping to `ON DUPLICATE` was now rewired to map to `DUPLICATE POLICY`. A new Python parameter called `on_duplicate` was added, that maps to `ON DUPLICATE`. The expected impact of this change is low.
1 parent 3a0c724 commit 9d85723

File tree

6 files changed

+980
-482
lines changed

6 files changed

+980
-482
lines changed

.github/workflows/integration.yaml

+81-79
Original file line numberDiff line numberDiff line change
@@ -23,89 +23,91 @@ concurrency:
2323
permissions:
2424
contents: read # to fetch code (actions/checkout)
2525

26-
jobs:
26+
env:
27+
REDIS_STACK_IMAGE: redis/redis-stack-server:7.4.0-rc1
2728

28-
dependency-audit:
29-
name: Dependency audit
30-
runs-on: ubuntu-latest
31-
steps:
32-
- uses: actions/checkout@v4
33-
- uses: pypa/[email protected]
34-
with:
35-
inputs: requirements.txt dev_requirements.txt
36-
ignore-vulns: |
37-
GHSA-w596-4wvx-j9j6 # subversion related git pull, dependency for pytest. There is no impact here.
29+
jobs:
30+
dependency-audit:
31+
name: Dependency audit
32+
runs-on: ubuntu-latest
33+
steps:
34+
- uses: actions/checkout@v4
35+
- uses: pypa/[email protected]
36+
with:
37+
inputs: requirements.txt dev_requirements.txt
38+
ignore-vulns: |
39+
GHSA-w596-4wvx-j9j6 # subversion related git pull, dependency for pytest. There is no impact here.
3840
39-
lint:
40-
name: Code linters
41-
runs-on: ubuntu-latest
42-
steps:
43-
- uses: actions/checkout@v4
44-
- uses: actions/setup-python@v5
45-
with:
46-
python-version: 3.9
47-
cache: 'pip'
48-
- name: run code linters
49-
run: |
50-
pip install -r dev_requirements.txt
51-
invoke linters
41+
lint:
42+
name: Code linters
43+
runs-on: ubuntu-latest
44+
steps:
45+
- uses: actions/checkout@v4
46+
- uses: actions/setup-python@v5
47+
with:
48+
python-version: 3.9
49+
cache: 'pip'
50+
- name: run code linters
51+
run: |
52+
pip install -r dev_requirements.txt
53+
invoke linters
5254
53-
run-tests:
54-
runs-on: ubuntu-latest
55-
timeout-minutes: 60
56-
strategy:
57-
max-parallel: 15
58-
fail-fast: false
59-
matrix:
60-
python-version: ['3.8', '3.9', '3.10', '3.11', 'pypy-3.8', 'pypy-3.9']
61-
test-type: ['standalone', 'cluster']
62-
connection-type: ['hiredis', 'plain']
63-
env:
64-
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
65-
name: Python ${{ matrix.python-version }} ${{matrix.test-type}}-${{matrix.connection-type}} tests
66-
steps:
67-
- uses: actions/checkout@v4
68-
- uses: actions/setup-python@v5
69-
with:
70-
python-version: ${{ matrix.python-version }}
71-
cache: 'pip'
72-
- name: run tests
73-
run: |
74-
pip install -U setuptools wheel
75-
pip install -r requirements.txt
76-
pip install -r dev_requirements.txt
77-
if [ "${{matrix.connection-type}}" == "hiredis" ]; then
78-
pip install hiredis
79-
fi
80-
invoke devenv
81-
sleep 10 # time to settle
82-
invoke ${{matrix.test-type}}-tests
55+
run-tests:
56+
runs-on: ubuntu-latest
57+
timeout-minutes: 60
58+
strategy:
59+
max-parallel: 15
60+
fail-fast: false
61+
matrix:
62+
python-version: ['3.8', '3.9', '3.10', '3.11', 'pypy-3.8', 'pypy-3.9']
63+
test-type: ['standalone', 'cluster']
64+
connection-type: ['hiredis', 'plain']
65+
env:
66+
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
67+
name: Python ${{ matrix.python-version }} ${{matrix.test-type}}-${{matrix.connection-type}} tests
68+
steps:
69+
- uses: actions/checkout@v4
70+
- uses: actions/setup-python@v5
71+
with:
72+
python-version: ${{ matrix.python-version }}
73+
cache: 'pip'
74+
- name: run tests
75+
run: |
76+
pip install -U setuptools wheel
77+
pip install -r requirements.txt
78+
pip install -r dev_requirements.txt
79+
if [ "${{matrix.connection-type}}" == "hiredis" ]; then
80+
pip install hiredis
81+
fi
82+
invoke devenv
83+
sleep 10 # time to settle
84+
invoke ${{matrix.test-type}}-tests
8385
84-
- uses: actions/upload-artifact@v4
85-
if: success() || failure()
86-
with:
87-
name: pytest-results-${{matrix.test-type}}-${{matrix.connection-type}}-${{matrix.python-version}}
88-
path: '${{matrix.test-type}}*results.xml'
86+
- uses: actions/upload-artifact@v4
87+
if: success() || failure()
88+
with:
89+
name: pytest-results-${{matrix.test-type}}-${{matrix.connection-type}}-${{matrix.python-version}}
90+
path: '${{matrix.test-type}}*results.xml'
8991

90-
- name: Upload codecov coverage
91-
uses: codecov/codecov-action@v4
92-
with:
93-
fail_ci_if_error: false
92+
- name: Upload codecov coverage
93+
uses: codecov/codecov-action@v4
94+
with:
95+
fail_ci_if_error: false
9496

95-
- name: View Test Results
96-
uses: dorny/test-reporter@v1
97-
if: success() || failure()
98-
continue-on-error: true
99-
with:
100-
name: Test Results ${{matrix.python-version}} ${{matrix.test-type}}-${{matrix.connection-type}}
101-
path: '*.xml'
102-
reporter: java-junit
103-
list-suites: all
104-
list-tests: all
105-
max-annotations: 10
106-
fail-on-error: 'false'
97+
- name: View Test Results
98+
uses: dorny/test-reporter@v1
99+
if: success() || failure()
100+
continue-on-error: true
101+
with:
102+
name: Test Results ${{matrix.python-version}} ${{matrix.test-type}}-${{matrix.connection-type}}
103+
path: '*.xml'
104+
reporter: java-junit
105+
list-suites: all
106+
list-tests: all
107+
max-annotations: 10
108+
fail-on-error: 'false'
107109

108-
resp3_tests:
110+
resp3_tests:
109111
runs-on: ubuntu-latest
110112
strategy:
111113
fail-fast: false
@@ -115,7 +117,7 @@ jobs:
115117
connection-type: ['hiredis', 'plain']
116118
protocol: ['3']
117119
env:
118-
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
120+
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
119121
name: RESP3 [${{ matrix.python-version }} ${{matrix.test-type}}-${{matrix.connection-type}}]
120122
steps:
121123
- uses: actions/checkout@v4
@@ -136,7 +138,7 @@ jobs:
136138
invoke ${{matrix.test-type}}-tests
137139
invoke ${{matrix.test-type}}-tests --uvloop
138140
139-
build_and_test_package:
141+
build_and_test_package:
140142
name: Validate building and installing the package
141143
runs-on: ubuntu-latest
142144
needs: [run-tests]
@@ -153,7 +155,7 @@ jobs:
153155
run: |
154156
bash .github/workflows/install_and_test.sh ${{ matrix.extension }}
155157
156-
install_package_from_commit:
158+
install_package_from_commit:
157159
name: Install package from commit hash
158160
runs-on: ubuntu-latest
159161
strategy:

docker-compose.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ services:
105105
- all
106106

107107
redis-stack:
108-
image: redis/redis-stack-server:edge
108+
image: ${REDIS_STACK_IMAGE:-redis/redis-stack-server:edge}
109109
container_name: redis-stack
110110
ports:
111111
- 6479:6379

0 commit comments

Comments
 (0)