Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion .github/workflows/build-lancedb.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,14 +74,19 @@ jobs:
sparse-checkout: patches/lancedb
persist-credentials: false

# v0.40.0 pins lance 13.0.0, which ships its own non-SIMD fallback for
# riscv64, so it needs neither the lance checkout nor these patches.
- name: Apply lancedb patches
run: git apply -v python-wheels/patches/lancedb/${{ env.LANCEDB_VERSION }}/0001*.patch
run: |
patches="$PWD/python-wheels/patches/lancedb/${LANCEDB_VERSION}"
if [ -d "$patches" ]; then git apply -v "$patches"/0001*.patch; fi

# lancedb pins lance-core/lance-linalg to a different exact version per
# release (10.0.0 for v0.37.1, 11.0.0 for v0.38.0, 12.0.0 for v0.39.0),
# so the sibling checkout below must track whatever this lancedb tag's
# own Cargo.toml pins rather than a fixed tag.
- name: Determine the lance-core/lance-linalg version lancedb pins
if: hashFiles(format('python-wheels/patches/lancedb/{0}/0002*.patch', env.LANCEDB_VERSION)) != ''
run: echo "LANCE_VERSION=$(grep -m1 '^lance-core = ' Cargo.toml | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')" >> "$GITHUB_ENV"

# lance-core's SIMD_SUPPORT static and lance-linalg's f32x8/f32x16/
Expand All @@ -90,6 +95,7 @@ jobs:
# to this checkout, and Cargo.toml's `[patch.crates-io]` (0001) redirects
# both crates here.
- name: Checkout lance v${{ env.LANCE_VERSION }} and add a riscv64 SIMD fallback
if: hashFiles(format('python-wheels/patches/lancedb/{0}/0002*.patch', env.LANCEDB_VERSION)) != ''
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
repository: lancedb/lance
Expand All @@ -98,6 +104,7 @@ jobs:
persist-credentials: false

- name: Apply lance patches
if: hashFiles(format('python-wheels/patches/lancedb/{0}/0002*.patch', env.LANCEDB_VERSION)) != ''
run: cd lance && git apply -v ../python-wheels/patches/lancedb/${{ env.LANCEDB_VERSION }}/0002*.patch

- name: Free disk space
Expand Down Expand Up @@ -219,6 +226,13 @@ jobs:
# golden-contract and docs consistency, not installed-wheel runtime
# behavior, so ignore both files rather than widen
# CIBW_TEST_SOURCES to mirror docs/ and rust/'s layout.
#
# test_function_packaging.py::test_binding_passes_initialization_as_constants
# (0.40.0) is the same trap for a single test: it reads
# rust/lancedb/tests/fixtures/first_class_functions/v1/
# remote_function_version.canonical.json, which is not copied into
# the isolated test dir, so it fails with FileNotFoundError on any
# platform. The file's other tests pass, hence a deselect.
CIBW_TEST_COMMAND: >-
cd python &&
python -m pytest python/tests -vv --durations=30
Expand All @@ -244,6 +258,7 @@ jobs:
--deselect=python/tests/test_permutation.py::test_transform_fn
--deselect=python/tests/test_query.py::test_query_to_polars_async
--deselect=python/tests/test_query.py::test_blob_v2_with_row_id_bytes_pandas
--deselect=python/tests/test_function_packaging.py::test_binding_passes_initialization_as_constants

- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
Expand Down
1 change: 1 addition & 0 deletions docs/packages/lancedb.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,4 @@ versions:
- filename: lancedb-0.39.0-cp310-abi3-manylinux_2_39_riscv64.whl
sha256: 758156284cb0b1d87d14fddc9066c7c7fba2c16f847a90d5d70dd7ee694a0283
requires-python: '>=3.10'
- version: 0.40.0
Loading