From 428b61fd3957e841f5fee525ac8244f060d03d69 Mon Sep 17 00:00:00 2001 From: zhouyc-ali Date: Fri, 16 Oct 2026 09:18:23 +0000 Subject: [PATCH] chore(build): use one Rust toolchain for all FFI builds Bump the pinned Rust toolchain to 1.95.0 and drop the separate stable channel that only the Vortex FFI build used. The Vortex cargo invocation now selects the pinned toolchain explicitly, which overrides the rust-toolchain.toml shipped inside the Vortex archive, so Lance, Mosaic, Vortex and the full-text index all build with a single toolchain. --- ci/scripts/setup_rust.sh | 9 ++------- cmake_modules/ThirdpartyToolchain.cmake | 9 +++++++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ci/scripts/setup_rust.sh b/ci/scripts/setup_rust.sh index a013e7f88..f3544f8c4 100755 --- a/ci/scripts/setup_rust.sh +++ b/ci/scripts/setup_rust.sh @@ -26,8 +26,8 @@ set -eux RUSTUP_VERSION=${RUSTUP_VERSION:-1.29.0} -# 1.90.0 is the minimum required by paimon-full-text 0.1.0 (rust-version in its Cargo.toml). -RUST_VERSION=${RUST_VERSION:-1.90.0} +# Keep in sync with PAIMON_RUST_TOOLCHAIN in cmake_modules/ThirdpartyToolchain.cmake. +RUST_VERSION=${RUST_VERSION:-1.95.0} CBINDGEN_VERSION=${CBINDGEN_VERSION:-0.29.2} PROTOC_VERSION=27.4 @@ -76,11 +76,6 @@ if ! command -v protoc >/dev/null 2>&1 || \ echo "${protoc_home}/bin" >> "${GITHUB_PATH:-/dev/null}" || true fi -# Vortex's FFI build pins rust-version >= 1.95 and is invoked with RUSTUP_TOOLCHAIN=stable (see -# cmake_modules/ThirdpartyToolchain.cmake). Install the stable channel alongside the pinned default -# so Vortex builds with it while Lance, Mosaic and tantivy-fts keep using the default toolchain. -rustup toolchain install stable --profile minimal - # cbindgen is used by the crate's build.rs to emit the C header that the # C++ side includes. Corrosion will also run cbindgen at CMake configure # time; both paths need it available. diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake index ac94fc2b4..4910d1c23 100644 --- a/cmake_modules/ThirdpartyToolchain.cmake +++ b/cmake_modules/ThirdpartyToolchain.cmake @@ -1499,6 +1499,11 @@ macro(build_vortex) # neither of which can go through paimon's filesystem. `callback_io.rs` adds an entry point # backed by host callbacks; it is maintained in this repository and injected into the Vortex # source tree, and the patch only declares the module. + # Keep in sync with RUST_VERSION in ci/scripts/setup_rust.sh; it overrides the + # rust-toolchain.toml shipped inside the Vortex archive. + set(PAIMON_RUST_TOOLCHAIN + "1.95.0" + CACHE STRING "Rust toolchain used by the Vortex FFI build.") set(VORTEX_PATCH_FILE "${CMAKE_CURRENT_LIST_DIR}/vortex.diff") set(VORTEX_CALLBACK_IO_SRC "${CMAKE_SOURCE_DIR}/crates/vortex_callback_io/callback_io.rs") @@ -1533,8 +1538,8 @@ macro(build_vortex) "${VORTEX_CALLBACK_IO_SRC}" "/vortex-ffi/src/callback_io.rs" COMMAND ${CMAKE_COMMAND} -E env "FLATC=${VORTEX_FLATC}" - "RUSTUP_TOOLCHAIN=stable" "CC=${CMAKE_C_COMPILER}" - "CXX=${CMAKE_CXX_COMPILER}" + "RUSTUP_TOOLCHAIN=${PAIMON_RUST_TOOLCHAIN}" + "CC=${CMAKE_C_COMPILER}" "CXX=${CMAKE_CXX_COMPILER}" "CARGO_TARGET_DIR=${VORTEX_CARGO_TARGET_DIR}" "RUSTFLAGS=-Crelocation-model=pic" ${PAIMON_CARGO_EXECUTABLE} rustc --locked --package