From f0f059293f2e4ead105b880c12cafb36e2c92b66 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 17 Sep 2026 21:31:51 +0000 Subject: [PATCH 1/5] pinecone: Add version 10.0.0 Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- docs/packages/pinecone.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/packages/pinecone.yaml b/docs/packages/pinecone.yaml index dbfd8d06917..83987ebc28a 100644 --- a/docs/packages/pinecone.yaml +++ b/docs/packages/pinecone.yaml @@ -8,3 +8,4 @@ versions: - filename: pinecone-9.1.0-cp310-abi3-manylinux_2_39_riscv64.whl sha256: daddc90fda2372c1003ee7577f50694cd5c0ff544d1e4b9071672b2252679e2b requires-python: '>=3.10' +- version: 10.0.0 From 5695053a0a75a7f63a7b130960d484d2ddd9c970 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Fri, 18 Sep 2026 12:52:54 +0000 Subject: [PATCH 2/5] pinecone: install new v10.0.0 test-only deps (jsonschema, dotenv, pyyaml, grpcio) 10.0.0 added a conformance suite (tests/unit/conformance), credential-gated live-suite guard tests, and repo CI-tooling smoke tests, all gated behind imports (jsonschema, python-dotenv, pyyaml, grpcio, grpcio-tools) that upstream only declares in its uv dependency-groups.dev, not in [project.optional-dependencies]. Our "install wheel + test deps" step names test deps individually rather than syncing that group, so pytest collection failed with 9 ModuleNotFoundError errors. All five are pure-Python or have riscv64 wheels on pypi.riseproject.dev already, so they're named here like every other test-only dep in this step. --- .github/workflows/build-pinecone.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-pinecone.yml b/.github/workflows/build-pinecone.yml index 26b262d8938..c41994b52b9 100644 --- a/.github/workflows/build-pinecone.yml +++ b/.github/workflows/build-pinecone.yml @@ -99,7 +99,14 @@ jobs: - name: Install wheel + test deps # ipython is not in [project.optional-dependencies] but is imported directly # by tests/unit/models/**/test_*_display.py's IPython.lib.pretty.pretty tests. - run: uv pip install dist/*.whl pytest pytest-asyncio pytest-timeout respx anyio hypothesis ipython + # + # jsonschema, python-dotenv, pyyaml, grpcio and grpcio-tools are new in 10.0.0: + # they back the OAS conformance suite (tests/unit/conformance), the + # credential-gated live-suite guard tests, and the repo's own CI-tooling smoke + # tests. None are in [project.optional-dependencies] either — upstream only + # declares them in its uv `dependency-groups.dev` (`uv sync --group dev`), so + # they're named here like every other test-only dep in this step. + run: uv pip install dist/*.whl pytest pytest-asyncio pytest-timeout respx anyio hypothesis ipython jsonschema python-dotenv pyyaml grpcio grpcio-tools - name: pytest tests/unit # The checkout's own pinecone/ source tree would otherwise shadow the From 54e1f96a986f1c78943876c3f92d7ad5f8ed4e5f Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Sat, 19 Sep 2026 06:08:12 +0000 Subject: [PATCH 3/5] pinecone: pin grpcio/grpcio-tools test deps to our published riscv64 version Unpinned, uv resolved PyPI's newer wheel-less grpcio/grpcio-tools release (1.84.0) first; even under UV_ONLY_BINARY=:all:, it still builds grpc's full native core to read that release's metadata before rejecting it, blowing the job's 120-minute timeout and getting cancelled. Pin to 1.83.1, our registry's newest riscv64 build (also satisfies upstream's dependency-groups.dev grpcio>=1.76/grpcio-tools>=1.76 floor). --- .github/workflows/build-pinecone.yml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-pinecone.yml b/.github/workflows/build-pinecone.yml index c41994b52b9..21a05f8611a 100644 --- a/.github/workflows/build-pinecone.yml +++ b/.github/workflows/build-pinecone.yml @@ -104,9 +104,16 @@ jobs: # they back the OAS conformance suite (tests/unit/conformance), the # credential-gated live-suite guard tests, and the repo's own CI-tooling smoke # tests. None are in [project.optional-dependencies] either — upstream only - # declares them in its uv `dependency-groups.dev` (`uv sync --group dev`), so - # they're named here like every other test-only dep in this step. - run: uv pip install dist/*.whl pytest pytest-asyncio pytest-timeout respx anyio hypothesis ipython jsonschema python-dotenv pyyaml grpcio grpcio-tools + # declares them in its uv `dependency-groups.dev` (`uv sync --group dev`, + # `grpcio>=1.76`/`grpcio-tools>=1.76`), so they're named here like every other + # test-only dep in this step. + # + # grpcio/grpcio-tools pinned to 1.83.1 (our registry's newest riscv64 build, + # gotcha 30): left unpinned, uv resolves PyPI's newer, wheel-less release first + # and, even under UV_ONLY_BINARY=:all:, still builds grpc's full native core to + # read that release's metadata before rejecting it — well past the job's + # 120-minute timeout on riscv64. + run: uv pip install dist/*.whl pytest pytest-asyncio pytest-timeout respx anyio hypothesis ipython jsonschema python-dotenv pyyaml grpcio==1.83.1 grpcio-tools==1.83.1 - name: pytest tests/unit # The checkout's own pinecone/ source tree would otherwise shadow the From e6800d6b4e50e700ed8d22c5e0ceef97562b1eba Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Sat, 19 Sep 2026 10:27:14 +0000 Subject: [PATCH 4/5] pinecone: stage installed pkg over pinecone/, not a rename, for tests 10.0.0 added source-scanning meta tests (test_path_param_encoding_417.py, test_orphaned_helpers.py, test_declared_dependencies.py, test_api_coverage.py, test_legacy_index_translation.py::TestPurity) that read pinecone/.py via Path(__file__).resolve().parents[N], independent of sys.path. The existing `mv pinecone pinecone-src` shadowing fix (gotcha 25) removes that path entirely, so these new tests fail with FileNotFoundError / empty-scan assertions. Overwrite pinecone/ with the installed wheel's own copy instead (gotcha 39's dulwich fix, applied to a separately-built wheel rather than an in-place build_ext): same relative paths for the scanners, the real compiled _grpc extension for every import-based test. --- .github/workflows/build-pinecone.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-pinecone.yml b/.github/workflows/build-pinecone.yml index 21a05f8611a..aaf90a2da39 100644 --- a/.github/workflows/build-pinecone.yml +++ b/.github/workflows/build-pinecone.yml @@ -118,6 +118,14 @@ jobs: - name: pytest tests/unit # The checkout's own pinecone/ source tree would otherwise shadow the # installed wheel on sys.path (no compiled pinecone/_grpc there) — gotcha 25. + # 10.0.0 added source-scanning meta tests (test_path_param_encoding_417.py, + # test_orphaned_helpers.py, test_declared_dependencies.py, test_api_coverage.py, + # test_legacy_index_translation.py::TestPurity) that read pinecone/.py via + # Path(__file__).resolve().parents[N] — independent of sys.path, so simply + # renaming pinecone/ away (the old fix) breaks them with FileNotFoundError. + # Overwriting pinecone/ with the *installed* (compiled) copy satisfies both: + # same relative paths for the scanners, the real _grpc extension for imports — + # gotcha 39's dulwich fix, applied to a wheel install instead of build_ext -i. # # test_async_transport_calls_module_level_compute_backoff deselected: its # asyncio.get_event_loop() call raises "There is no current event loop" once @@ -136,7 +144,9 @@ jobs: # runner (gotcha 176) -- raised via `-o` rather than dropping the ini file. run: | set -euo pipefail - mv pinecone pinecone-src + site_dir=$(python -c "import sysconfig; print(sysconfig.get_paths()['purelib'])") + rm -rf pinecone + cp -a "$site_dir/pinecone" pinecone python -m pytest tests/unit -v -o timeout=60 \ --deselect tests/unit/_internal/test_retry_transport.py::test_async_transport_calls_module_level_compute_backoff \ --deselect "tests/unit/_internal/test_bulk_upsert_storm.py::test_query_namespaces_bounded_fan_out_under_quota[asyncio]" From c01344b65b613d2824e75696461bfd4f80e42a1f Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Sat, 19 Sep 2026 17:27:30 +0000 Subject: [PATCH 5/5] pinecone: add googleapis-common-protos test dep for gRPC conformance suite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 10.0.0's conformance harness protoc-compiles db_data_2026_07_conformance.proto on the fly, and the generated stub imports google.api.annotations_pb2 — a module provided by googleapis-common-protos, not by grpc/protobuf itself. Without it every conformance test errored at harness setup with "ModuleNotFoundError: No module named 'google.api'" (3 failed, 12 errors). Pure Python wheel on PyPI, no riscv64 build needed. --- .github/workflows/build-pinecone.yml | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-pinecone.yml b/.github/workflows/build-pinecone.yml index aaf90a2da39..26940518a12 100644 --- a/.github/workflows/build-pinecone.yml +++ b/.github/workflows/build-pinecone.yml @@ -100,20 +100,29 @@ jobs: # ipython is not in [project.optional-dependencies] but is imported directly # by tests/unit/models/**/test_*_display.py's IPython.lib.pretty.pretty tests. # - # jsonschema, python-dotenv, pyyaml, grpcio and grpcio-tools are new in 10.0.0: - # they back the OAS conformance suite (tests/unit/conformance), the - # credential-gated live-suite guard tests, and the repo's own CI-tooling smoke - # tests. None are in [project.optional-dependencies] either — upstream only - # declares them in its uv `dependency-groups.dev` (`uv sync --group dev`, - # `grpcio>=1.76`/`grpcio-tools>=1.76`), so they're named here like every other - # test-only dep in this step. + # jsonschema, python-dotenv, pyyaml, grpcio, grpcio-tools and + # googleapis-common-protos are new in 10.0.0: they back the OAS conformance + # suite (tests/unit/conformance), the credential-gated live-suite guard tests, + # and the repo's own CI-tooling smoke tests. None are in + # [project.optional-dependencies] either — upstream only declares them in its + # uv `dependency-groups.dev` (`uv sync --group dev`, `grpcio>=1.76`/ + # `grpcio-tools>=1.76`), so they're named here like every other test-only dep + # in this step. + # + # googleapis-common-protos: tests/unit/conformance/_grpc_harness.py protoc- + # compiles db_data_2026_07_conformance.proto on the fly, and that generated + # _pb2.py imports google.api.annotations_pb2 (an HTTP-annotation extension the + # .proto references for its OpenAPI mapping) — a module this package provides, + # not grpc/protobuf itself. Without it, every conformance test errors at + # harness setup with "ModuleNotFoundError: No module named 'google.api'". Pure + # Python (py3-none-any on PyPI), so no riscv64 build is needed here. # # grpcio/grpcio-tools pinned to 1.83.1 (our registry's newest riscv64 build, # gotcha 30): left unpinned, uv resolves PyPI's newer, wheel-less release first # and, even under UV_ONLY_BINARY=:all:, still builds grpc's full native core to # read that release's metadata before rejecting it — well past the job's # 120-minute timeout on riscv64. - run: uv pip install dist/*.whl pytest pytest-asyncio pytest-timeout respx anyio hypothesis ipython jsonschema python-dotenv pyyaml grpcio==1.83.1 grpcio-tools==1.83.1 + run: uv pip install dist/*.whl pytest pytest-asyncio pytest-timeout respx anyio hypothesis ipython jsonschema python-dotenv pyyaml googleapis-common-protos grpcio==1.83.1 grpcio-tools==1.83.1 - name: pytest tests/unit # The checkout's own pinecone/ source tree would otherwise shadow the