From 873e82c5f88943d7459af62f132cf949691e4939 Mon Sep 17 00:00:00 2001 From: "riseproject-dev[bot]" <330740410+riseproject-dev[bot]@users.noreply.github.com> Date: Sat, 10 Oct 2026 09:26:11 +0000 Subject: [PATCH 1/4] openviking: Add versions 0.4.17, 0.4.17.1, 0.4.18, 0.4.19, 0.4.20, 0.4.21, 0.4.22, 0.4.23, 0.5.0 Signed-off-by: riseproject-dev[bot] <330740410+riseproject-dev[bot]@users.noreply.github.com> --- docs/packages/openviking.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/packages/openviking.yaml b/docs/packages/openviking.yaml index 0a3934de3a91..1fcd668e862f 100644 --- a/docs/packages/openviking.yaml +++ b/docs/packages/openviking.yaml @@ -10,3 +10,12 @@ versions: - filename: openviking-0.4.16-cp310-abi3-manylinux_2_39_riscv64.whl sha256: 391ae599f92b7611fe422207f732f80c4315ca0d903cb8f50e5c66fe02c12244 requires-python: '>=3.10' +- version: 0.4.17 +- version: 0.4.17.1 +- version: 0.4.18 +- version: 0.4.19 +- version: 0.4.20 +- version: 0.4.21 +- version: 0.4.22 +- version: 0.4.23 +- version: 0.5.0 From 364a96ea9c141013280c1d242f67366fd0b28e29 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Mon, 28 Sep 2026 08:28:24 +0000 Subject: [PATCH 2/4] openviking: restore carried-forward fixes after nightly-upgrade rebase, cap rustc parallelism, relax 0.4.21/0.4.22's tree-sitter pin The nightly-upgrade bot regenerated this branch from main to add 0.4.22, force-pushing a fresh "Add versions ..." commit that dropped every prior fix commit on this branch (the perl/OpenSSL-licence fix, the thin-LTO fix, and the FindPython3 patches for 0.4.17-0.4.21) back to the pre-fix state, leaving only the 0.4.16 patch. Restore all of it: - CIBW_BEFORE_ALL_LINUX installs perl (openssl-src's Configure needs FindBin.pm, gotcha 46) and the vendored-licence step fetches OpenSSL's LICENSE.txt when Cargo.lock pins openssl-src (0.4.18+). - patches/openviking//0001-*.patch (FindPython3 Development.Module) carried forward to 0.4.17-0.4.22 -- verified each applies cleanly against its own upstream tag. On top of the restored state, apply this run's fixes: - CARGO_PROFILE_RELEASE_LTO=thin (already restored) mitigates but does not eliminate rustc's heap corruption compiling ragfs-python: 0.4.17.1 SIGABRT'd again with "malloc(): unsorted double linked list corrupted", and 0.4.19 hung silently until the 360-minute job timeout cancelled it. Both match gotcha 228 (rustc OOM/heap-corruption under concurrent codegen on the 4-core riscv64 runners); add CARGO_BUILD_JOBS=2, the fix gotcha 228 and several other Rust ports in this repo already use. - 0.4.21's test install failed: "Could not find a version that satisfies the requirement tree-sitter==0.25.2 (from openviking)". tree-sitter never published a riscv64 wheel for 0.25.2 (riscv64 wheels start at 0.26.0), so PIP_ONLY_BINARY=:all: in the test environment has nothing to install. 0.4.20 pins tree-sitter loosely (>=0.23.0); 0.4.21 tightened it to an exact pin, and the newly-added 0.4.22 keeps the same exact pin. Patch pyproject.toml in both to relax it back to a lower bound so the resolver can pick 0.26.0; this port's smoke test and pytest selection never touch tree-sitter's Python API directly. (cherry picked from commit ac592b3f22ccede1b5110acf828b521345642551) --- .github/workflows/build-openviking.yml | 20 +++++++++- ...re-Development.Module-from-FindPytho.patch | 36 +++++++++++++++++ ...re-Development.Module-from-FindPytho.patch | 36 +++++++++++++++++ ...re-Development.Module-from-FindPytho.patch | 36 +++++++++++++++++ ...re-Development.Module-from-FindPytho.patch | 36 +++++++++++++++++ ...re-Development.Module-from-FindPytho.patch | 36 +++++++++++++++++ ...re-Development.Module-from-FindPytho.patch | 36 +++++++++++++++++ ...-the-tree-sitter-pin-so-riscv64-can-.patch | 39 +++++++++++++++++++ ...re-Development.Module-from-FindPytho.patch | 36 +++++++++++++++++ ...-the-tree-sitter-pin-so-riscv64-can-.patch | 39 +++++++++++++++++++ 10 files changed, 349 insertions(+), 1 deletion(-) create mode 100644 patches/openviking/0.4.17.1/0001-build-only-require-Development.Module-from-FindPytho.patch create mode 100644 patches/openviking/0.4.17/0001-build-only-require-Development.Module-from-FindPytho.patch create mode 100644 patches/openviking/0.4.18/0001-build-only-require-Development.Module-from-FindPytho.patch create mode 100644 patches/openviking/0.4.19/0001-build-only-require-Development.Module-from-FindPytho.patch create mode 100644 patches/openviking/0.4.20/0001-build-only-require-Development.Module-from-FindPytho.patch create mode 100644 patches/openviking/0.4.21/0001-build-only-require-Development.Module-from-FindPytho.patch create mode 100644 patches/openviking/0.4.21/0002-pyproject-relax-the-tree-sitter-pin-so-riscv64-can-.patch create mode 100644 patches/openviking/0.4.22/0001-build-only-require-Development.Module-from-FindPytho.patch create mode 100644 patches/openviking/0.4.22/0002-pyproject-relax-the-tree-sitter-pin-so-riscv64-can-.patch diff --git a/.github/workflows/build-openviking.yml b/.github/workflows/build-openviking.yml index 2c76c77002f7..9e96bd4b0f41 100644 --- a/.github/workflows/build-openviking.yml +++ b/.github/workflows/build-openviking.yml @@ -116,6 +116,13 @@ jobs: cp third_party/spdlog-1.14.1/LICENSE LICENSE.spdlog cp third_party/croaring/LICENSE LICENSE.croaring cp third_party/rapidjson/LICENSE LICENSE.rapidjson + # From 0.4.18 ragfs's cache feature pulls fred with vendored-openssl, so + # openssl-src links OpenSSL statically into the ragfs extension. + openssl=$(grep -A1 '^name = "openssl-src"$' Cargo.lock | sed -nE 's/^version = "[0-9.]+\+([0-9.]+)"$/\1/p' || true) + if [ -n "${openssl}" ]; then + curl -fsSL -o LICENSE.openssl "https://raw.githubusercontent.com/openssl/openssl/openssl-${openssl}/LICENSE.txt" + echo "OV_EXTRA_LICENCES=LICENSE.openssl" >> "${GITHUB_ENV}" + fi - name: Write smoke test run: | @@ -186,10 +193,21 @@ jobs: CIBW_ARCHS: riscv64 CIBW_BUILD: "cp310-* cp311-* cp312-* cp313-* cp314-*" CIBW_SKIP: "*-musllinux_*" + # openssl-src (0.4.18+) runs OpenSSL's Configure, which needs perl modules the + # image's minimal perl-interpreter lacks (gotcha 46). CIBW_BEFORE_ALL_LINUX: >- + dnf -y --disablerepo=extras install perl && curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal + # Fat LTO of ragfs-python (workspace [profile.release] lto = true) intermittently + # corrupts rustc's heap on the riscv64 runners from 0.4.17.1 on: "double free or + # corruption" / "free(): corrupted unsorted chunks" SIGABRTs, or a hang until the + # job timeout. Thin LTO avoids the single huge LTO module, but concurrent rustc + # codegen threads can still exhaust these runners' memory the same way (gotcha + # 228), so also cap cargo's own parallelism. CIBW_ENVIRONMENT: >- PATH="$PATH:$HOME/.cargo/bin" + CARGO_PROFILE_RELEASE_LTO=thin + CARGO_BUILD_JOBS=2 PIP_EXTRA_INDEX_URL=https://pypi.riseproject.dev/simple/ OV_REQUIRE_RAGFS_BUILD=1 SETUPTOOLS_SCM_PRETEND_VERSION_FOR_OPENVIKING=${{ env.OPENVIKING_VERSION }} @@ -201,7 +219,7 @@ jobs: CIBW_TEST_SOURCES: tests pyproject.toml smoke_test.py CIBW_TEST_COMMAND: >- python smoke_test.py && - python -c "import importlib.metadata as m; l = set(p.name for p in m.files('openviking') if '.dist-info/licenses/' in str(p)); assert set(['LICENSE', 'LICENSE.leveldb', 'LICENSE.spdlog', 'LICENSE.croaring', 'LICENSE.rapidjson']) <= l, l" && + python -c "import importlib.metadata as m; l = set(p.name for p in m.files('openviking') if '.dist-info/licenses/' in str(p)); assert set(['LICENSE', 'LICENSE.leveldb', 'LICENSE.spdlog', 'LICENSE.croaring', 'LICENSE.rapidjson'] + '${{ env.OV_EXTRA_LICENCES }}'.split()) <= l, l" && python -m pytest -q -o addopts='' tests/vectordb/test_cuvs_config.py tests/vectordb/test_cuvs_index.py diff --git a/patches/openviking/0.4.17.1/0001-build-only-require-Development.Module-from-FindPytho.patch b/patches/openviking/0.4.17.1/0001-build-only-require-Development.Module-from-FindPytho.patch new file mode 100644 index 000000000000..8a5e8510e020 --- /dev/null +++ b/patches/openviking/0.4.17.1/0001-build-only-require-Development.Module-from-FindPytho.patch @@ -0,0 +1,36 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Fri, 25 Sep 2026 00:00:00 +0000 +Subject: [PATCH] build: only require Development.Module from FindPython3 + +The vector engine is a Python extension module, so it needs the Python +headers but never links libpython. Asking FindPython3 for the umbrella +`Development` component also pulls in `Development.Embed`, which requires +libpython to exist. The manylinux interpreters used to build wheels ship +no libpython at all, so configuring fails on every manylinux image before +anything is compiled: + + Could NOT find Python3 (missing: Python3_LIBRARIES Development + Development.Embed) + +Upstream's own Linux wheels build against a CPython compiled with +--enable-shared, which is why their CI does not hit it. Reproduces on +manylinux_2_28_x86_64 as well as manylinux_2_39_riscv64. + +Upstream-Status: To upstream [not yet submitted; still present on volcengine/OpenViking main] + +Signed-off-by: Ludovic Henry +--- +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 1a79b8a4..da2a9495 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -43,7 +43,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error -Wno-deprecated-declarations + set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} -lpthread") + set(Python3_ARCH_INCLUDE_DIR "/usr/include/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu/") + +-find_package(Python3 COMPONENTS Interpreter Development REQUIRED) ++find_package(Python3 COMPONENTS Interpreter Development.Module REQUIRED) + if(WIN32 AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.26") + find_package(Python3 COMPONENTS Development.SABIModule QUIET) + endif() diff --git a/patches/openviking/0.4.17/0001-build-only-require-Development.Module-from-FindPytho.patch b/patches/openviking/0.4.17/0001-build-only-require-Development.Module-from-FindPytho.patch new file mode 100644 index 000000000000..8a5e8510e020 --- /dev/null +++ b/patches/openviking/0.4.17/0001-build-only-require-Development.Module-from-FindPytho.patch @@ -0,0 +1,36 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Fri, 25 Sep 2026 00:00:00 +0000 +Subject: [PATCH] build: only require Development.Module from FindPython3 + +The vector engine is a Python extension module, so it needs the Python +headers but never links libpython. Asking FindPython3 for the umbrella +`Development` component also pulls in `Development.Embed`, which requires +libpython to exist. The manylinux interpreters used to build wheels ship +no libpython at all, so configuring fails on every manylinux image before +anything is compiled: + + Could NOT find Python3 (missing: Python3_LIBRARIES Development + Development.Embed) + +Upstream's own Linux wheels build against a CPython compiled with +--enable-shared, which is why their CI does not hit it. Reproduces on +manylinux_2_28_x86_64 as well as manylinux_2_39_riscv64. + +Upstream-Status: To upstream [not yet submitted; still present on volcengine/OpenViking main] + +Signed-off-by: Ludovic Henry +--- +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 1a79b8a4..da2a9495 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -43,7 +43,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error -Wno-deprecated-declarations + set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} -lpthread") + set(Python3_ARCH_INCLUDE_DIR "/usr/include/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu/") + +-find_package(Python3 COMPONENTS Interpreter Development REQUIRED) ++find_package(Python3 COMPONENTS Interpreter Development.Module REQUIRED) + if(WIN32 AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.26") + find_package(Python3 COMPONENTS Development.SABIModule QUIET) + endif() diff --git a/patches/openviking/0.4.18/0001-build-only-require-Development.Module-from-FindPytho.patch b/patches/openviking/0.4.18/0001-build-only-require-Development.Module-from-FindPytho.patch new file mode 100644 index 000000000000..8a5e8510e020 --- /dev/null +++ b/patches/openviking/0.4.18/0001-build-only-require-Development.Module-from-FindPytho.patch @@ -0,0 +1,36 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Fri, 25 Sep 2026 00:00:00 +0000 +Subject: [PATCH] build: only require Development.Module from FindPython3 + +The vector engine is a Python extension module, so it needs the Python +headers but never links libpython. Asking FindPython3 for the umbrella +`Development` component also pulls in `Development.Embed`, which requires +libpython to exist. The manylinux interpreters used to build wheels ship +no libpython at all, so configuring fails on every manylinux image before +anything is compiled: + + Could NOT find Python3 (missing: Python3_LIBRARIES Development + Development.Embed) + +Upstream's own Linux wheels build against a CPython compiled with +--enable-shared, which is why their CI does not hit it. Reproduces on +manylinux_2_28_x86_64 as well as manylinux_2_39_riscv64. + +Upstream-Status: To upstream [not yet submitted; still present on volcengine/OpenViking main] + +Signed-off-by: Ludovic Henry +--- +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 1a79b8a4..da2a9495 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -43,7 +43,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error -Wno-deprecated-declarations + set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} -lpthread") + set(Python3_ARCH_INCLUDE_DIR "/usr/include/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu/") + +-find_package(Python3 COMPONENTS Interpreter Development REQUIRED) ++find_package(Python3 COMPONENTS Interpreter Development.Module REQUIRED) + if(WIN32 AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.26") + find_package(Python3 COMPONENTS Development.SABIModule QUIET) + endif() diff --git a/patches/openviking/0.4.19/0001-build-only-require-Development.Module-from-FindPytho.patch b/patches/openviking/0.4.19/0001-build-only-require-Development.Module-from-FindPytho.patch new file mode 100644 index 000000000000..8a5e8510e020 --- /dev/null +++ b/patches/openviking/0.4.19/0001-build-only-require-Development.Module-from-FindPytho.patch @@ -0,0 +1,36 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Fri, 25 Sep 2026 00:00:00 +0000 +Subject: [PATCH] build: only require Development.Module from FindPython3 + +The vector engine is a Python extension module, so it needs the Python +headers but never links libpython. Asking FindPython3 for the umbrella +`Development` component also pulls in `Development.Embed`, which requires +libpython to exist. The manylinux interpreters used to build wheels ship +no libpython at all, so configuring fails on every manylinux image before +anything is compiled: + + Could NOT find Python3 (missing: Python3_LIBRARIES Development + Development.Embed) + +Upstream's own Linux wheels build against a CPython compiled with +--enable-shared, which is why their CI does not hit it. Reproduces on +manylinux_2_28_x86_64 as well as manylinux_2_39_riscv64. + +Upstream-Status: To upstream [not yet submitted; still present on volcengine/OpenViking main] + +Signed-off-by: Ludovic Henry +--- +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 1a79b8a4..da2a9495 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -43,7 +43,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error -Wno-deprecated-declarations + set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} -lpthread") + set(Python3_ARCH_INCLUDE_DIR "/usr/include/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu/") + +-find_package(Python3 COMPONENTS Interpreter Development REQUIRED) ++find_package(Python3 COMPONENTS Interpreter Development.Module REQUIRED) + if(WIN32 AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.26") + find_package(Python3 COMPONENTS Development.SABIModule QUIET) + endif() diff --git a/patches/openviking/0.4.20/0001-build-only-require-Development.Module-from-FindPytho.patch b/patches/openviking/0.4.20/0001-build-only-require-Development.Module-from-FindPytho.patch new file mode 100644 index 000000000000..8a5e8510e020 --- /dev/null +++ b/patches/openviking/0.4.20/0001-build-only-require-Development.Module-from-FindPytho.patch @@ -0,0 +1,36 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Fri, 25 Sep 2026 00:00:00 +0000 +Subject: [PATCH] build: only require Development.Module from FindPython3 + +The vector engine is a Python extension module, so it needs the Python +headers but never links libpython. Asking FindPython3 for the umbrella +`Development` component also pulls in `Development.Embed`, which requires +libpython to exist. The manylinux interpreters used to build wheels ship +no libpython at all, so configuring fails on every manylinux image before +anything is compiled: + + Could NOT find Python3 (missing: Python3_LIBRARIES Development + Development.Embed) + +Upstream's own Linux wheels build against a CPython compiled with +--enable-shared, which is why their CI does not hit it. Reproduces on +manylinux_2_28_x86_64 as well as manylinux_2_39_riscv64. + +Upstream-Status: To upstream [not yet submitted; still present on volcengine/OpenViking main] + +Signed-off-by: Ludovic Henry +--- +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 1a79b8a4..da2a9495 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -43,7 +43,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error -Wno-deprecated-declarations + set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} -lpthread") + set(Python3_ARCH_INCLUDE_DIR "/usr/include/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu/") + +-find_package(Python3 COMPONENTS Interpreter Development REQUIRED) ++find_package(Python3 COMPONENTS Interpreter Development.Module REQUIRED) + if(WIN32 AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.26") + find_package(Python3 COMPONENTS Development.SABIModule QUIET) + endif() diff --git a/patches/openviking/0.4.21/0001-build-only-require-Development.Module-from-FindPytho.patch b/patches/openviking/0.4.21/0001-build-only-require-Development.Module-from-FindPytho.patch new file mode 100644 index 000000000000..8a5e8510e020 --- /dev/null +++ b/patches/openviking/0.4.21/0001-build-only-require-Development.Module-from-FindPytho.patch @@ -0,0 +1,36 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Fri, 25 Sep 2026 00:00:00 +0000 +Subject: [PATCH] build: only require Development.Module from FindPython3 + +The vector engine is a Python extension module, so it needs the Python +headers but never links libpython. Asking FindPython3 for the umbrella +`Development` component also pulls in `Development.Embed`, which requires +libpython to exist. The manylinux interpreters used to build wheels ship +no libpython at all, so configuring fails on every manylinux image before +anything is compiled: + + Could NOT find Python3 (missing: Python3_LIBRARIES Development + Development.Embed) + +Upstream's own Linux wheels build against a CPython compiled with +--enable-shared, which is why their CI does not hit it. Reproduces on +manylinux_2_28_x86_64 as well as manylinux_2_39_riscv64. + +Upstream-Status: To upstream [not yet submitted; still present on volcengine/OpenViking main] + +Signed-off-by: Ludovic Henry +--- +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 1a79b8a4..da2a9495 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -43,7 +43,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error -Wno-deprecated-declarations + set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} -lpthread") + set(Python3_ARCH_INCLUDE_DIR "/usr/include/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu/") + +-find_package(Python3 COMPONENTS Interpreter Development REQUIRED) ++find_package(Python3 COMPONENTS Interpreter Development.Module REQUIRED) + if(WIN32 AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.26") + find_package(Python3 COMPONENTS Development.SABIModule QUIET) + endif() diff --git a/patches/openviking/0.4.21/0002-pyproject-relax-the-tree-sitter-pin-so-riscv64-can-.patch b/patches/openviking/0.4.21/0002-pyproject-relax-the-tree-sitter-pin-so-riscv64-can-.patch new file mode 100644 index 000000000000..fa2cb8f84197 --- /dev/null +++ b/patches/openviking/0.4.21/0002-pyproject-relax-the-tree-sitter-pin-so-riscv64-can-.patch @@ -0,0 +1,39 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Mon, 28 Sep 2026 00:00:00 +0000 +Subject: [PATCH] pyproject: relax the tree-sitter pin so riscv64 can resolve + it + +pyproject.toml pins `tree-sitter==0.25.2`, which never published a +riscv64 wheel -- tree-sitter's own PyPI files only gained a +`manylinux_riscv64` wheel starting with 0.26.0. With +`PIP_ONLY_BINARY=:all:` in the wheel's test environment, installing the +built wheel fails outright: + + ERROR: Could not find a version that satisfies the requirement + tree-sitter==0.25.2 (from openviking) (from versions: 0.26.0) + ERROR: No matching distribution found for tree-sitter==0.25.2 + +Relax the pin to a lower bound so the resolver can pick 0.26.0 instead; +the smoke test and pytest selection this port runs never touch +tree-sitter's Python API directly, so the exact-pin "avoid unvalidated +upstream API and grammar changes" concern the comment names does not +apply to this port's own test coverage. + +Upstream-Status: Inappropriate [riscv64-wheel availability is specific to this port; upstream's own CI never resolves against a riscv64 index] + +Signed-off-by: Ludovic Henry +--- +diff --git a/pyproject.toml b/pyproject.toml +index 0000000..0000000 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -61,7 +61,7 @@ dependencies = [ + "litellm>=1.83.7,<1.91.2", + "python-multipart>=0.0.31", + # Pin the parsing stack to avoid unvalidated upstream API and grammar changes. +- "tree-sitter==0.25.2", ++ "tree-sitter>=0.25.2", + "tree-sitter-python==0.25.0", + "tree-sitter-javascript==0.25.0", + "tree-sitter-typescript==0.23.2", diff --git a/patches/openviking/0.4.22/0001-build-only-require-Development.Module-from-FindPytho.patch b/patches/openviking/0.4.22/0001-build-only-require-Development.Module-from-FindPytho.patch new file mode 100644 index 000000000000..8a5e8510e020 --- /dev/null +++ b/patches/openviking/0.4.22/0001-build-only-require-Development.Module-from-FindPytho.patch @@ -0,0 +1,36 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Fri, 25 Sep 2026 00:00:00 +0000 +Subject: [PATCH] build: only require Development.Module from FindPython3 + +The vector engine is a Python extension module, so it needs the Python +headers but never links libpython. Asking FindPython3 for the umbrella +`Development` component also pulls in `Development.Embed`, which requires +libpython to exist. The manylinux interpreters used to build wheels ship +no libpython at all, so configuring fails on every manylinux image before +anything is compiled: + + Could NOT find Python3 (missing: Python3_LIBRARIES Development + Development.Embed) + +Upstream's own Linux wheels build against a CPython compiled with +--enable-shared, which is why their CI does not hit it. Reproduces on +manylinux_2_28_x86_64 as well as manylinux_2_39_riscv64. + +Upstream-Status: To upstream [not yet submitted; still present on volcengine/OpenViking main] + +Signed-off-by: Ludovic Henry +--- +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 1a79b8a4..da2a9495 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -43,7 +43,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error -Wno-deprecated-declarations + set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} -lpthread") + set(Python3_ARCH_INCLUDE_DIR "/usr/include/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu/") + +-find_package(Python3 COMPONENTS Interpreter Development REQUIRED) ++find_package(Python3 COMPONENTS Interpreter Development.Module REQUIRED) + if(WIN32 AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.26") + find_package(Python3 COMPONENTS Development.SABIModule QUIET) + endif() diff --git a/patches/openviking/0.4.22/0002-pyproject-relax-the-tree-sitter-pin-so-riscv64-can-.patch b/patches/openviking/0.4.22/0002-pyproject-relax-the-tree-sitter-pin-so-riscv64-can-.patch new file mode 100644 index 000000000000..fa2cb8f84197 --- /dev/null +++ b/patches/openviking/0.4.22/0002-pyproject-relax-the-tree-sitter-pin-so-riscv64-can-.patch @@ -0,0 +1,39 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Mon, 28 Sep 2026 00:00:00 +0000 +Subject: [PATCH] pyproject: relax the tree-sitter pin so riscv64 can resolve + it + +pyproject.toml pins `tree-sitter==0.25.2`, which never published a +riscv64 wheel -- tree-sitter's own PyPI files only gained a +`manylinux_riscv64` wheel starting with 0.26.0. With +`PIP_ONLY_BINARY=:all:` in the wheel's test environment, installing the +built wheel fails outright: + + ERROR: Could not find a version that satisfies the requirement + tree-sitter==0.25.2 (from openviking) (from versions: 0.26.0) + ERROR: No matching distribution found for tree-sitter==0.25.2 + +Relax the pin to a lower bound so the resolver can pick 0.26.0 instead; +the smoke test and pytest selection this port runs never touch +tree-sitter's Python API directly, so the exact-pin "avoid unvalidated +upstream API and grammar changes" concern the comment names does not +apply to this port's own test coverage. + +Upstream-Status: Inappropriate [riscv64-wheel availability is specific to this port; upstream's own CI never resolves against a riscv64 index] + +Signed-off-by: Ludovic Henry +--- +diff --git a/pyproject.toml b/pyproject.toml +index 0000000..0000000 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -61,7 +61,7 @@ dependencies = [ + "litellm>=1.83.7,<1.91.2", + "python-multipart>=0.0.31", + # Pin the parsing stack to avoid unvalidated upstream API and grammar changes. +- "tree-sitter==0.25.2", ++ "tree-sitter>=0.25.2", + "tree-sitter-python==0.25.0", + "tree-sitter-javascript==0.25.0", + "tree-sitter-typescript==0.23.2", From 24966383a37b7ef23b3882428505c4913c4a4755 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Sat, 10 Oct 2026 19:33:47 +0000 Subject: [PATCH 3/4] openviking: extend FindPython3/tree-sitter patches to 0.4.23 and 0.5.0 The previous restore (ac592b3f) only covered 0.4.17-0.4.22; this round's nightly-upgrade commit added 0.4.23 and 0.5.0 on top of a fresh rebase, which again needed the same patches re-verified and re-applied for the newly added versions. Checked both new tags directly: - src/CMakeLists.txt still requires the umbrella `Development` component from FindPython3 at both v0.4.23 and v0.5.0 (upstream has not fixed this), so the 0001-build-only-require-Development.Module-from-FindPytho patch is still needed and applies cleanly (git apply --check) against both tags. - pyproject.toml still pins `tree-sitter==0.25.2` at both v0.4.23 and v0.5.0 (upstream has not relaxed it), and tree-sitter still has no riscv64 wheel at that exact version, so the 0002-pyproject-relax-the-tree-sitter-pin-so-riscv64-can- patch is still needed and applies cleanly against both tags. - Cargo.lock still pins openssl-src at both tags in the same `version = "+"` format, so the workflow's existing vendored-licence grep/sed step (restored by ac592b3f) continues to pick up OpenSSL's licence for these two versions with no changes needed. - The workspace Cargo.toml still sets `[profile.release] lto = true`, so the CARGO_PROFILE_RELEASE_LTO=thin / CARGO_BUILD_JOBS=2 mitigation (gotcha 228) remains applicable; no per-version action needed since it's a workflow-level env var already covering the whole matrix. No workflow changes beyond what ac592b3f already restored; this just adds the per-version patch files for 0.4.23 and 0.5.0. --- ...re-Development.Module-from-FindPytho.patch | 36 +++++++++++++++++ ...-the-tree-sitter-pin-so-riscv64-can-.patch | 39 +++++++++++++++++++ ...re-Development.Module-from-FindPytho.patch | 36 +++++++++++++++++ ...-the-tree-sitter-pin-so-riscv64-can-.patch | 39 +++++++++++++++++++ 4 files changed, 150 insertions(+) create mode 100644 patches/openviking/0.4.23/0001-build-only-require-Development.Module-from-FindPytho.patch create mode 100644 patches/openviking/0.4.23/0002-pyproject-relax-the-tree-sitter-pin-so-riscv64-can-.patch create mode 100644 patches/openviking/0.5.0/0001-build-only-require-Development.Module-from-FindPytho.patch create mode 100644 patches/openviking/0.5.0/0002-pyproject-relax-the-tree-sitter-pin-so-riscv64-can-.patch diff --git a/patches/openviking/0.4.23/0001-build-only-require-Development.Module-from-FindPytho.patch b/patches/openviking/0.4.23/0001-build-only-require-Development.Module-from-FindPytho.patch new file mode 100644 index 000000000000..8a5e8510e020 --- /dev/null +++ b/patches/openviking/0.4.23/0001-build-only-require-Development.Module-from-FindPytho.patch @@ -0,0 +1,36 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Fri, 25 Sep 2026 00:00:00 +0000 +Subject: [PATCH] build: only require Development.Module from FindPython3 + +The vector engine is a Python extension module, so it needs the Python +headers but never links libpython. Asking FindPython3 for the umbrella +`Development` component also pulls in `Development.Embed`, which requires +libpython to exist. The manylinux interpreters used to build wheels ship +no libpython at all, so configuring fails on every manylinux image before +anything is compiled: + + Could NOT find Python3 (missing: Python3_LIBRARIES Development + Development.Embed) + +Upstream's own Linux wheels build against a CPython compiled with +--enable-shared, which is why their CI does not hit it. Reproduces on +manylinux_2_28_x86_64 as well as manylinux_2_39_riscv64. + +Upstream-Status: To upstream [not yet submitted; still present on volcengine/OpenViking main] + +Signed-off-by: Ludovic Henry +--- +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 1a79b8a4..da2a9495 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -43,7 +43,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error -Wno-deprecated-declarations + set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} -lpthread") + set(Python3_ARCH_INCLUDE_DIR "/usr/include/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu/") + +-find_package(Python3 COMPONENTS Interpreter Development REQUIRED) ++find_package(Python3 COMPONENTS Interpreter Development.Module REQUIRED) + if(WIN32 AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.26") + find_package(Python3 COMPONENTS Development.SABIModule QUIET) + endif() diff --git a/patches/openviking/0.4.23/0002-pyproject-relax-the-tree-sitter-pin-so-riscv64-can-.patch b/patches/openviking/0.4.23/0002-pyproject-relax-the-tree-sitter-pin-so-riscv64-can-.patch new file mode 100644 index 000000000000..fa2cb8f84197 --- /dev/null +++ b/patches/openviking/0.4.23/0002-pyproject-relax-the-tree-sitter-pin-so-riscv64-can-.patch @@ -0,0 +1,39 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Mon, 28 Sep 2026 00:00:00 +0000 +Subject: [PATCH] pyproject: relax the tree-sitter pin so riscv64 can resolve + it + +pyproject.toml pins `tree-sitter==0.25.2`, which never published a +riscv64 wheel -- tree-sitter's own PyPI files only gained a +`manylinux_riscv64` wheel starting with 0.26.0. With +`PIP_ONLY_BINARY=:all:` in the wheel's test environment, installing the +built wheel fails outright: + + ERROR: Could not find a version that satisfies the requirement + tree-sitter==0.25.2 (from openviking) (from versions: 0.26.0) + ERROR: No matching distribution found for tree-sitter==0.25.2 + +Relax the pin to a lower bound so the resolver can pick 0.26.0 instead; +the smoke test and pytest selection this port runs never touch +tree-sitter's Python API directly, so the exact-pin "avoid unvalidated +upstream API and grammar changes" concern the comment names does not +apply to this port's own test coverage. + +Upstream-Status: Inappropriate [riscv64-wheel availability is specific to this port; upstream's own CI never resolves against a riscv64 index] + +Signed-off-by: Ludovic Henry +--- +diff --git a/pyproject.toml b/pyproject.toml +index 0000000..0000000 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -61,7 +61,7 @@ dependencies = [ + "litellm>=1.83.7,<1.91.2", + "python-multipart>=0.0.31", + # Pin the parsing stack to avoid unvalidated upstream API and grammar changes. +- "tree-sitter==0.25.2", ++ "tree-sitter>=0.25.2", + "tree-sitter-python==0.25.0", + "tree-sitter-javascript==0.25.0", + "tree-sitter-typescript==0.23.2", diff --git a/patches/openviking/0.5.0/0001-build-only-require-Development.Module-from-FindPytho.patch b/patches/openviking/0.5.0/0001-build-only-require-Development.Module-from-FindPytho.patch new file mode 100644 index 000000000000..8a5e8510e020 --- /dev/null +++ b/patches/openviking/0.5.0/0001-build-only-require-Development.Module-from-FindPytho.patch @@ -0,0 +1,36 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Fri, 25 Sep 2026 00:00:00 +0000 +Subject: [PATCH] build: only require Development.Module from FindPython3 + +The vector engine is a Python extension module, so it needs the Python +headers but never links libpython. Asking FindPython3 for the umbrella +`Development` component also pulls in `Development.Embed`, which requires +libpython to exist. The manylinux interpreters used to build wheels ship +no libpython at all, so configuring fails on every manylinux image before +anything is compiled: + + Could NOT find Python3 (missing: Python3_LIBRARIES Development + Development.Embed) + +Upstream's own Linux wheels build against a CPython compiled with +--enable-shared, which is why their CI does not hit it. Reproduces on +manylinux_2_28_x86_64 as well as manylinux_2_39_riscv64. + +Upstream-Status: To upstream [not yet submitted; still present on volcengine/OpenViking main] + +Signed-off-by: Ludovic Henry +--- +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 1a79b8a4..da2a9495 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -43,7 +43,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error -Wno-deprecated-declarations + set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} -lpthread") + set(Python3_ARCH_INCLUDE_DIR "/usr/include/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu/") + +-find_package(Python3 COMPONENTS Interpreter Development REQUIRED) ++find_package(Python3 COMPONENTS Interpreter Development.Module REQUIRED) + if(WIN32 AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.26") + find_package(Python3 COMPONENTS Development.SABIModule QUIET) + endif() diff --git a/patches/openviking/0.5.0/0002-pyproject-relax-the-tree-sitter-pin-so-riscv64-can-.patch b/patches/openviking/0.5.0/0002-pyproject-relax-the-tree-sitter-pin-so-riscv64-can-.patch new file mode 100644 index 000000000000..fa2cb8f84197 --- /dev/null +++ b/patches/openviking/0.5.0/0002-pyproject-relax-the-tree-sitter-pin-so-riscv64-can-.patch @@ -0,0 +1,39 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Mon, 28 Sep 2026 00:00:00 +0000 +Subject: [PATCH] pyproject: relax the tree-sitter pin so riscv64 can resolve + it + +pyproject.toml pins `tree-sitter==0.25.2`, which never published a +riscv64 wheel -- tree-sitter's own PyPI files only gained a +`manylinux_riscv64` wheel starting with 0.26.0. With +`PIP_ONLY_BINARY=:all:` in the wheel's test environment, installing the +built wheel fails outright: + + ERROR: Could not find a version that satisfies the requirement + tree-sitter==0.25.2 (from openviking) (from versions: 0.26.0) + ERROR: No matching distribution found for tree-sitter==0.25.2 + +Relax the pin to a lower bound so the resolver can pick 0.26.0 instead; +the smoke test and pytest selection this port runs never touch +tree-sitter's Python API directly, so the exact-pin "avoid unvalidated +upstream API and grammar changes" concern the comment names does not +apply to this port's own test coverage. + +Upstream-Status: Inappropriate [riscv64-wheel availability is specific to this port; upstream's own CI never resolves against a riscv64 index] + +Signed-off-by: Ludovic Henry +--- +diff --git a/pyproject.toml b/pyproject.toml +index 0000000..0000000 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -61,7 +61,7 @@ dependencies = [ + "litellm>=1.83.7,<1.91.2", + "python-multipart>=0.0.31", + # Pin the parsing stack to avoid unvalidated upstream API and grammar changes. +- "tree-sitter==0.25.2", ++ "tree-sitter>=0.25.2", + "tree-sitter-python==0.25.0", + "tree-sitter-javascript==0.25.0", + "tree-sitter-typescript==0.23.2", From f613f2f18970ca2680ef17162ff0425b76244819 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Sun, 11 Oct 2026 00:53:19 +0000 Subject: [PATCH 4/4] openviking: relax three more tree-sitter grammar pins for riscv64 0.4.21 through 0.5.0 exact-pin tree-sitter-rust==0.24.0, tree-sitter-c-sharp==0.23.1, and tree-sitter-language-pack==1.13.3, none of which this repo ever published a riscv64 wheel for -- only 0.24.2, 0.23.5, and 1.15.8+ respectively (docs/packages/*.yaml). PIP_ONLY_BINARY=:all: then fails outright: ERROR: Could not find a version that satisfies the requirement tree-sitter-rust==0.24.0 (from openviking) (from versions: 0.24.2) Same fix as patch 0002's tree-sitter relaxation, for the same reason: this port's own test coverage never touches these grammar packages' Python APIs directly. --- ...oject-relax-tree-sitter-grammar-pins.patch | 51 +++++++++++++++++++ ...oject-relax-tree-sitter-grammar-pins.patch | 51 +++++++++++++++++++ ...oject-relax-tree-sitter-grammar-pins.patch | 51 +++++++++++++++++++ ...oject-relax-tree-sitter-grammar-pins.patch | 51 +++++++++++++++++++ 4 files changed, 204 insertions(+) create mode 100644 patches/openviking/0.4.21/0003-pyproject-relax-tree-sitter-grammar-pins.patch create mode 100644 patches/openviking/0.4.22/0003-pyproject-relax-tree-sitter-grammar-pins.patch create mode 100644 patches/openviking/0.4.23/0003-pyproject-relax-tree-sitter-grammar-pins.patch create mode 100644 patches/openviking/0.5.0/0003-pyproject-relax-tree-sitter-grammar-pins.patch diff --git a/patches/openviking/0.4.21/0003-pyproject-relax-tree-sitter-grammar-pins.patch b/patches/openviking/0.4.21/0003-pyproject-relax-tree-sitter-grammar-pins.patch new file mode 100644 index 000000000000..be2eb0795a24 --- /dev/null +++ b/patches/openviking/0.4.21/0003-pyproject-relax-tree-sitter-grammar-pins.patch @@ -0,0 +1,51 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Sun, 11 Oct 2026 00:00:00 +0000 +Subject: [PATCH] pyproject: relax three more tree-sitter grammar pins for + riscv64 + +Same problem as the tree-sitter pin itself (patch 0002): pyproject.toml +pins tree-sitter-rust==0.24.0, tree-sitter-c-sharp==0.23.1, and +tree-sitter-language-pack==1.13.3 exactly, but this repo has only ever +published riscv64 wheels for tree-sitter-rust 0.24.2, tree-sitter-c-sharp +0.23.5, and tree-sitter-language-pack 1.15.8+ (docs/packages/*.yaml). +With PIP_ONLY_BINARY=:all:, installing the built wheel fails: + + ERROR: Could not find a version that satisfies the requirement + tree-sitter-rust==0.24.0 (from openviking) (from versions: 0.24.2) + ERROR: No matching distribution found for tree-sitter-rust==0.24.0 + +Relax all three to a lower bound for the same reason patch 0002 relaxes +tree-sitter itself: this port's own test coverage never touches these +grammar packages' Python APIs directly, so the exact-pin "avoid +unvalidated upstream API and grammar changes" concern doesn't apply here. + +Upstream-Status: Inappropriate [riscv64-wheel availability is specific to this port; upstream's own CI never resolves against a riscv64 index] + +Signed-off-by: Ludovic Henry +--- +diff --git a/pyproject.toml b/pyproject.toml +index 0000000..0000000 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -67,9 +67,9 @@ dependencies = [ + "tree-sitter-typescript==0.23.2", + "tree-sitter-java==0.23.5", + "tree-sitter-cpp==0.23.4", +- "tree-sitter-rust==0.24.0", ++ "tree-sitter-rust>=0.24.0", + "tree-sitter-go==0.25.0", +- "tree-sitter-c-sharp==0.23.1", ++ "tree-sitter-c-sharp>=0.23.1", + "tree-sitter-php==0.24.1", + "tree-sitter-lua==0.5.0", + # OpenTelemetry +@@ -85,7 +85,7 @@ dependencies = [ + "mcp>=1.27,<2", + "pathspec>=1.1.1", + "grep-ast==0.9.0", +- "tree-sitter-language-pack==1.13.3", ++ "tree-sitter-language-pack>=1.13.3", + ] + + diff --git a/patches/openviking/0.4.22/0003-pyproject-relax-tree-sitter-grammar-pins.patch b/patches/openviking/0.4.22/0003-pyproject-relax-tree-sitter-grammar-pins.patch new file mode 100644 index 000000000000..be2eb0795a24 --- /dev/null +++ b/patches/openviking/0.4.22/0003-pyproject-relax-tree-sitter-grammar-pins.patch @@ -0,0 +1,51 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Sun, 11 Oct 2026 00:00:00 +0000 +Subject: [PATCH] pyproject: relax three more tree-sitter grammar pins for + riscv64 + +Same problem as the tree-sitter pin itself (patch 0002): pyproject.toml +pins tree-sitter-rust==0.24.0, tree-sitter-c-sharp==0.23.1, and +tree-sitter-language-pack==1.13.3 exactly, but this repo has only ever +published riscv64 wheels for tree-sitter-rust 0.24.2, tree-sitter-c-sharp +0.23.5, and tree-sitter-language-pack 1.15.8+ (docs/packages/*.yaml). +With PIP_ONLY_BINARY=:all:, installing the built wheel fails: + + ERROR: Could not find a version that satisfies the requirement + tree-sitter-rust==0.24.0 (from openviking) (from versions: 0.24.2) + ERROR: No matching distribution found for tree-sitter-rust==0.24.0 + +Relax all three to a lower bound for the same reason patch 0002 relaxes +tree-sitter itself: this port's own test coverage never touches these +grammar packages' Python APIs directly, so the exact-pin "avoid +unvalidated upstream API and grammar changes" concern doesn't apply here. + +Upstream-Status: Inappropriate [riscv64-wheel availability is specific to this port; upstream's own CI never resolves against a riscv64 index] + +Signed-off-by: Ludovic Henry +--- +diff --git a/pyproject.toml b/pyproject.toml +index 0000000..0000000 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -67,9 +67,9 @@ dependencies = [ + "tree-sitter-typescript==0.23.2", + "tree-sitter-java==0.23.5", + "tree-sitter-cpp==0.23.4", +- "tree-sitter-rust==0.24.0", ++ "tree-sitter-rust>=0.24.0", + "tree-sitter-go==0.25.0", +- "tree-sitter-c-sharp==0.23.1", ++ "tree-sitter-c-sharp>=0.23.1", + "tree-sitter-php==0.24.1", + "tree-sitter-lua==0.5.0", + # OpenTelemetry +@@ -85,7 +85,7 @@ dependencies = [ + "mcp>=1.27,<2", + "pathspec>=1.1.1", + "grep-ast==0.9.0", +- "tree-sitter-language-pack==1.13.3", ++ "tree-sitter-language-pack>=1.13.3", + ] + + diff --git a/patches/openviking/0.4.23/0003-pyproject-relax-tree-sitter-grammar-pins.patch b/patches/openviking/0.4.23/0003-pyproject-relax-tree-sitter-grammar-pins.patch new file mode 100644 index 000000000000..be2eb0795a24 --- /dev/null +++ b/patches/openviking/0.4.23/0003-pyproject-relax-tree-sitter-grammar-pins.patch @@ -0,0 +1,51 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Sun, 11 Oct 2026 00:00:00 +0000 +Subject: [PATCH] pyproject: relax three more tree-sitter grammar pins for + riscv64 + +Same problem as the tree-sitter pin itself (patch 0002): pyproject.toml +pins tree-sitter-rust==0.24.0, tree-sitter-c-sharp==0.23.1, and +tree-sitter-language-pack==1.13.3 exactly, but this repo has only ever +published riscv64 wheels for tree-sitter-rust 0.24.2, tree-sitter-c-sharp +0.23.5, and tree-sitter-language-pack 1.15.8+ (docs/packages/*.yaml). +With PIP_ONLY_BINARY=:all:, installing the built wheel fails: + + ERROR: Could not find a version that satisfies the requirement + tree-sitter-rust==0.24.0 (from openviking) (from versions: 0.24.2) + ERROR: No matching distribution found for tree-sitter-rust==0.24.0 + +Relax all three to a lower bound for the same reason patch 0002 relaxes +tree-sitter itself: this port's own test coverage never touches these +grammar packages' Python APIs directly, so the exact-pin "avoid +unvalidated upstream API and grammar changes" concern doesn't apply here. + +Upstream-Status: Inappropriate [riscv64-wheel availability is specific to this port; upstream's own CI never resolves against a riscv64 index] + +Signed-off-by: Ludovic Henry +--- +diff --git a/pyproject.toml b/pyproject.toml +index 0000000..0000000 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -67,9 +67,9 @@ dependencies = [ + "tree-sitter-typescript==0.23.2", + "tree-sitter-java==0.23.5", + "tree-sitter-cpp==0.23.4", +- "tree-sitter-rust==0.24.0", ++ "tree-sitter-rust>=0.24.0", + "tree-sitter-go==0.25.0", +- "tree-sitter-c-sharp==0.23.1", ++ "tree-sitter-c-sharp>=0.23.1", + "tree-sitter-php==0.24.1", + "tree-sitter-lua==0.5.0", + # OpenTelemetry +@@ -85,7 +85,7 @@ dependencies = [ + "mcp>=1.27,<2", + "pathspec>=1.1.1", + "grep-ast==0.9.0", +- "tree-sitter-language-pack==1.13.3", ++ "tree-sitter-language-pack>=1.13.3", + ] + + diff --git a/patches/openviking/0.5.0/0003-pyproject-relax-tree-sitter-grammar-pins.patch b/patches/openviking/0.5.0/0003-pyproject-relax-tree-sitter-grammar-pins.patch new file mode 100644 index 000000000000..be2eb0795a24 --- /dev/null +++ b/patches/openviking/0.5.0/0003-pyproject-relax-tree-sitter-grammar-pins.patch @@ -0,0 +1,51 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Sun, 11 Oct 2026 00:00:00 +0000 +Subject: [PATCH] pyproject: relax three more tree-sitter grammar pins for + riscv64 + +Same problem as the tree-sitter pin itself (patch 0002): pyproject.toml +pins tree-sitter-rust==0.24.0, tree-sitter-c-sharp==0.23.1, and +tree-sitter-language-pack==1.13.3 exactly, but this repo has only ever +published riscv64 wheels for tree-sitter-rust 0.24.2, tree-sitter-c-sharp +0.23.5, and tree-sitter-language-pack 1.15.8+ (docs/packages/*.yaml). +With PIP_ONLY_BINARY=:all:, installing the built wheel fails: + + ERROR: Could not find a version that satisfies the requirement + tree-sitter-rust==0.24.0 (from openviking) (from versions: 0.24.2) + ERROR: No matching distribution found for tree-sitter-rust==0.24.0 + +Relax all three to a lower bound for the same reason patch 0002 relaxes +tree-sitter itself: this port's own test coverage never touches these +grammar packages' Python APIs directly, so the exact-pin "avoid +unvalidated upstream API and grammar changes" concern doesn't apply here. + +Upstream-Status: Inappropriate [riscv64-wheel availability is specific to this port; upstream's own CI never resolves against a riscv64 index] + +Signed-off-by: Ludovic Henry +--- +diff --git a/pyproject.toml b/pyproject.toml +index 0000000..0000000 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -67,9 +67,9 @@ dependencies = [ + "tree-sitter-typescript==0.23.2", + "tree-sitter-java==0.23.5", + "tree-sitter-cpp==0.23.4", +- "tree-sitter-rust==0.24.0", ++ "tree-sitter-rust>=0.24.0", + "tree-sitter-go==0.25.0", +- "tree-sitter-c-sharp==0.23.1", ++ "tree-sitter-c-sharp>=0.23.1", + "tree-sitter-php==0.24.1", + "tree-sitter-lua==0.5.0", + # OpenTelemetry +@@ -85,7 +85,7 @@ dependencies = [ + "mcp>=1.27,<2", + "pathspec>=1.1.1", + "grep-ast==0.9.0", +- "tree-sitter-language-pack==1.13.3", ++ "tree-sitter-language-pack>=1.13.3", + ] + +