Skip to content

Commit 2e44f78

Browse files
authored
Add python 3.13, remove python 3.8 support (#441)
## Problem Want to support python 3.13, drop support for python 3.8 ## Solution Dependency changes: - Remove httpx, explored in testing but not needed for the release - Move pytest-asyncio from dependencies into dev dependencies - Adjust grpcio and pandas (dev dependency) for 3.13 compatibility ## Type of Change - [x] Bug fix (non-breaking change which fixes an issue)
1 parent c95c4b0 commit 2e44f78

File tree

16 files changed

+582
-455
lines changed

16 files changed

+582
-455
lines changed

.github/actions/test-data-plane/action.yaml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,6 @@
11
name: 'Test Data Plane'
22
description: 'Runs tests on the Pinecone data plane'
33

4-
# - pod vs serverless
5-
# - grpc vs rest
6-
# - metric -> vector vs sparse vector
7-
# - namespace: default vs custom
8-
# - environment: free vs paid
9-
# - with metadata vs without metadata
10-
114
inputs:
125
metric:
136
description: 'The metric of the index'
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: 'Test aiohttp dependencies'
2+
description: 'Runs asyncio sanity test with specific aiohttp dependencies'
3+
4+
inputs:
5+
PINECONE_API_KEY:
6+
description: 'The Pinecone API key'
7+
required: true
8+
index_name:
9+
description: 'The name of the index'
10+
required: true
11+
python_version:
12+
description: 'The version of Python to use'
13+
required: false
14+
default: '3.9'
15+
aiohttp_version:
16+
description: 'The version of aiohttp to install'
17+
required: true
18+
19+
runs:
20+
using: 'composite'
21+
steps:
22+
- name: Set up Python
23+
uses: actions/setup-python@v5
24+
with:
25+
python-version: ${{ inputs.python_version }}
26+
27+
- name: Setup Poetry
28+
uses: ./.github/actions/setup-poetry
29+
with:
30+
include_grpc: false
31+
include_types: false
32+
33+
- name: 'Install aiohttp ${{ matrix.aiohttp-version }}'
34+
run: 'poetry add aiohttp==${{ matrix.aiohttp-version }}'
35+
shell: bash
36+
37+
- uses: nick-fields/retry@v3
38+
with:
39+
timeout_minutes: 5
40+
max_attempts: 3
41+
retry_on: error
42+
command: poetry run pytest tests/dependency/asyncio-rest -s -v
43+
env:
44+
PINECONE_API_KEY: '${{ inputs.PINECONE_API_KEY }}'
45+
INDEX_NAME: '${{ inputs.index_name }}'

.github/workflows/lint.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
name: "Lint"
2-
on: [pull_request]
2+
on:
3+
workflow_call: {}
34

45
jobs:
56
lint:

.github/workflows/migration-paths.yaml

Lines changed: 0 additions & 47 deletions
This file was deleted.

.github/workflows/pr.yaml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,29 @@ on:
88
workflow_dispatch: {}
99

1010
jobs:
11+
linting:
12+
uses: './.github/workflows/lint.yaml'
13+
1114
unit-tests:
1215
uses: './.github/workflows/testing-unit.yaml'
1316
secrets: inherit
17+
1418
integration-tests:
1519
uses: './.github/workflows/testing-integration.yaml'
1620
secrets: inherit
21+
needs: unit-tests
22+
1723
dependency-tests:
1824
uses: './.github/workflows/testing-dependency.yaml'
1925
secrets: inherit
26+
needs: unit-tests
27+
2028
package:
2129
name: Check packaging
2230
runs-on: ubuntu-latest
2331
strategy:
2432
matrix:
25-
python-version: [3.9, 3.12]
33+
python-version: [3.9, 3.13]
2634
steps:
2735
- uses: actions/checkout@v4
2836
- name: Set up Python ${{ matrix.python-version }}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Dependency Testing (Asyncio)
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
index_name:
7+
required: true
8+
type: string
9+
10+
jobs:
11+
dependency-matrix-asyncio-rest:
12+
name: Deps (Asyncio REST)
13+
runs-on: ubuntu-latest
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
python_version:
18+
- 3.9
19+
- 3.13
20+
aiohttp_version:
21+
- 3.9.0
22+
- 3.11.5
23+
steps:
24+
- uses: actions/checkout@v4
25+
- uses: ./.github/actions/test-dependency-asyncio-rest
26+
with:
27+
python_version: '${{ matrix.python_version }}'
28+
index_name: '${{ inputs.index_name }}'
29+
PINECONE_API_KEY: '${{ secrets.PINECONE_API_KEY }}'
30+
aiohttp_version: '${{ matrix.aiohttp_version }}'
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
name: Dependency Testing (GRPC)
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
index_name:
7+
required: true
8+
type: string
9+
10+
jobs:
11+
dependency-matrix-grpc:
12+
name: GRPC py3.9/py3.10
13+
runs-on: ubuntu-latest
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
python_version:
18+
- 3.9
19+
- "3.10"
20+
grpcio_version:
21+
- 1.44.0
22+
# - 1.46.5
23+
# - 1.47.5
24+
# - 1.48.2
25+
# - 1.49.1
26+
- 1.50.0
27+
# - 1.51.3
28+
# - 1.53.2
29+
# - 1.54.3
30+
# - 1.55.3
31+
# - 1.56.2
32+
# - 1.57.0
33+
# - 1.58.0
34+
# - 1.59.3
35+
- 1.60.0
36+
lz4_version:
37+
- 3.1.3
38+
# - 3.1.10
39+
# - 4.0.0
40+
# - 4.0.1
41+
# - 4.1.0
42+
- 4.3.3
43+
protobuf_version:
44+
- 5.29.1
45+
protoc-gen-openapiv2:
46+
- 0.0.1
47+
googleapis_common_protos_version:
48+
- 1.66.0
49+
steps:
50+
- uses: actions/checkout@v4
51+
- uses: ./.github/actions/test-dependency-grpc
52+
with:
53+
python_version: '${{ matrix.python_version }}'
54+
index_name: '${{ inputs.index_name }}'
55+
PINECONE_API_KEY: '${{ secrets.PINECONE_API_KEY }}'
56+
grpcio_version: '${{ matrix.grpcio_version }}'
57+
lz4_version: '${{ matrix.lz4_version }}'
58+
protobuf_version: '${{ matrix.protobuf_version }}'
59+
googleapis_common_protos_version: '${{ matrix.googleapis_common_protos_version }}'
60+
61+
dependency-matrix-grpc-312:
62+
name: GRPC py3.11/py3.12
63+
runs-on: ubuntu-latest
64+
strategy:
65+
fail-fast: false
66+
matrix:
67+
python_version:
68+
- 3.11
69+
- 3.12
70+
grpcio_version:
71+
- 1.59.3
72+
- 1.60.0
73+
lz4_version:
74+
# - 3.1.3
75+
- 4.3.3
76+
protobuf_version:
77+
- 5.29.1
78+
protoc-gen-openapiv2:
79+
- 0.0.1
80+
googleapis_common_protos_version:
81+
- 1.66.0
82+
steps:
83+
- uses: actions/checkout@v4
84+
- uses: ./.github/actions/test-dependency-grpc
85+
with:
86+
python_version: '${{ matrix.python_version }}'
87+
index_name: '${{ inputs.index_name }}'
88+
PINECONE_API_KEY: '${{ secrets.PINECONE_API_KEY }}'
89+
grpcio_version: '${{ matrix.grpcio_version }}'
90+
lz4_version: '${{ matrix.lz4_version }}'
91+
protobuf_version: '${{ matrix.protobuf_version }}'
92+
googleapis_common_protos_version: '${{ matrix.googleapis_common_protos_version }}'
93+
94+
95+
dependency-matrix-grpc-313:
96+
name: GRPC py3.13
97+
runs-on: ubuntu-latest
98+
strategy:
99+
fail-fast: false
100+
matrix:
101+
python_version:
102+
- 3.13
103+
grpcio_version:
104+
- 1.68.0
105+
lz4_version:
106+
# - 3.1.3
107+
- 4.3.3
108+
protobuf_version:
109+
- 5.29.1
110+
protoc-gen-openapiv2:
111+
- 0.0.1
112+
googleapis_common_protos_version:
113+
- 1.66.0
114+
steps:
115+
- uses: actions/checkout@v4
116+
- uses: ./.github/actions/test-dependency-grpc
117+
with:
118+
python_version: '${{ matrix.python_version }}'
119+
index_name: '${{ inputs.index_name }}'
120+
PINECONE_API_KEY: '${{ secrets.PINECONE_API_KEY }}'
121+
grpcio_version: '${{ matrix.grpcio_version }}'
122+
lz4_version: '${{ matrix.lz4_version }}'
123+
protobuf_version: '${{ matrix.protobuf_version }}'
124+
googleapis_common_protos_version: '${{ matrix.googleapis_common_protos_version }}'
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
2+
name: Dependency Testing (REST)
3+
4+
on:
5+
workflow_call:
6+
inputs:
7+
index_name:
8+
required: true
9+
type: string
10+
11+
jobs:
12+
dependency-matrix-rest:
13+
name: Deps (REST)
14+
runs-on: ubuntu-latest
15+
strategy:
16+
fail-fast: false
17+
matrix:
18+
python_version:
19+
- 3.9
20+
- 3.11
21+
urllib3_version:
22+
- 1.26.0
23+
# - 1.26.18
24+
# - 2.0.2
25+
- 2.2.1
26+
steps:
27+
- uses: actions/checkout@v4
28+
- uses: ./.github/actions/test-dependency-rest
29+
with:
30+
python_version: '${{ matrix.python_version }}'
31+
index_name: '${{ inputs.index_name }}'
32+
PINECONE_API_KEY: '${{ secrets.PINECONE_API_KEY }}'
33+
urllib3_version: '${{ matrix.urllib3_version }}'
34+
35+
36+
dependency-matrix-rest-312:
37+
name: Deps (REST)
38+
runs-on: ubuntu-latest
39+
strategy:
40+
fail-fast: false
41+
matrix:
42+
python_version:
43+
- 3.12
44+
urllib3_version:
45+
- 1.26.5
46+
# - 1.26.18
47+
# - 2.0.2
48+
- 2.2.1
49+
steps:
50+
- uses: actions/checkout@v4
51+
- uses: ./.github/actions/test-dependency-rest
52+
with:
53+
python_version: '${{ matrix.python_version }}'
54+
index_name: '${{ inputs.index_name }}'
55+
PINECONE_API_KEY: '${{ secrets.PINECONE_API_KEY }}'
56+
urllib3_version: '${{ matrix.urllib3_version }}'
57+
58+
dependency-matrix-rest-313:
59+
name: Deps (REST)
60+
runs-on: ubuntu-latest
61+
strategy:
62+
fail-fast: false
63+
matrix:
64+
python_version:
65+
- 3.13
66+
urllib3_version:
67+
- 1.26.5
68+
# - 1.26.18
69+
# - 2.0.2
70+
- 2.2.1
71+
steps:
72+
- uses: actions/checkout@v4
73+
- uses: ./.github/actions/test-dependency-rest
74+
with:
75+
python_version: '${{ matrix.python_version }}'
76+
index_name: '${{ inputs.index_name }}'
77+
PINECONE_API_KEY: '${{ secrets.PINECONE_API_KEY }}'
78+
urllib3_version: '${{ matrix.urllib3_version }}'

0 commit comments

Comments
 (0)