Compare commits
7 Commits
main
...
feature/ad
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5c75f1d26b | ||
|
|
a0e53ef8f1 | ||
|
|
b754474c44 | ||
|
|
931051e33b | ||
|
|
8aa4c7e5f2 | ||
|
|
de56ab8fa7 | ||
|
|
d83a463c26 |
85
.github/workflows/build-reusable.yml
vendored
85
.github/workflows/build-reusable.yml
vendored
@@ -56,8 +56,8 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
# Note: Python 3.9 dropped - uses PEP 604 union syntax (str | None)
|
||||
# which requires Python 3.10+
|
||||
- os: ubuntu-22.04
|
||||
python: '3.9'
|
||||
- os: ubuntu-22.04
|
||||
python: '3.10'
|
||||
- os: ubuntu-22.04
|
||||
@@ -67,6 +67,8 @@ jobs:
|
||||
- os: ubuntu-22.04
|
||||
python: '3.13'
|
||||
# ARM64 Linux builds
|
||||
- os: ubuntu-24.04-arm
|
||||
python: '3.9'
|
||||
- os: ubuntu-24.04-arm
|
||||
python: '3.10'
|
||||
- os: ubuntu-24.04-arm
|
||||
@@ -75,6 +77,8 @@ jobs:
|
||||
python: '3.12'
|
||||
- os: ubuntu-24.04-arm
|
||||
python: '3.13'
|
||||
- os: macos-14
|
||||
python: '3.9'
|
||||
- os: macos-14
|
||||
python: '3.10'
|
||||
- os: macos-14
|
||||
@@ -83,6 +87,8 @@ jobs:
|
||||
python: '3.12'
|
||||
- os: macos-14
|
||||
python: '3.13'
|
||||
- os: macos-15
|
||||
python: '3.9'
|
||||
- os: macos-15
|
||||
python: '3.10'
|
||||
- os: macos-15
|
||||
@@ -91,24 +97,16 @@ jobs:
|
||||
python: '3.12'
|
||||
- os: macos-15
|
||||
python: '3.13'
|
||||
# Intel Mac builds (x86_64) - replaces deprecated macos-13
|
||||
# Note: Python 3.13 excluded - PyTorch has no wheels for macOS x86_64 + Python 3.13
|
||||
# (PyTorch <=2.4.1 lacks cp313, PyTorch >=2.5.0 dropped Intel Mac support)
|
||||
- os: macos-15-intel
|
||||
- os: macos-13
|
||||
python: '3.9'
|
||||
- os: macos-13
|
||||
python: '3.10'
|
||||
- os: macos-15-intel
|
||||
- os: macos-13
|
||||
python: '3.11'
|
||||
- os: macos-15-intel
|
||||
- os: macos-13
|
||||
python: '3.12'
|
||||
# macOS 26 (beta) - arm64
|
||||
- os: macos-26
|
||||
python: '3.10'
|
||||
- os: macos-26
|
||||
python: '3.11'
|
||||
- os: macos-26
|
||||
python: '3.12'
|
||||
- os: macos-26
|
||||
python: '3.13'
|
||||
# Note: macos-13 + Python 3.13 excluded due to PyTorch compatibility
|
||||
# (PyTorch 2.5+ supports Python 3.13 but not Intel Mac x86_64)
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
@@ -227,16 +225,13 @@ jobs:
|
||||
# Use system clang for better compatibility
|
||||
export CC=clang
|
||||
export CXX=clang++
|
||||
# Set deployment target based on runner
|
||||
# macos-15-intel runs macOS 15, so target 15.0 (system libraries require it)
|
||||
if [[ "${{ matrix.os }}" == "macos-15-intel" ]]; then
|
||||
export MACOSX_DEPLOYMENT_TARGET=15.0
|
||||
elif [[ "${{ matrix.os }}" == macos-14* ]]; then
|
||||
# Homebrew libraries on each macOS version require matching minimum version
|
||||
if [[ "${{ matrix.os }}" == "macos-13" ]]; then
|
||||
export MACOSX_DEPLOYMENT_TARGET=13.0
|
||||
elif [[ "${{ matrix.os }}" == "macos-14" ]]; then
|
||||
export MACOSX_DEPLOYMENT_TARGET=14.0
|
||||
elif [[ "${{ matrix.os }}" == macos-15* ]]; then
|
||||
elif [[ "${{ matrix.os }}" == "macos-15" ]]; then
|
||||
export MACOSX_DEPLOYMENT_TARGET=15.0
|
||||
elif [[ "${{ matrix.os }}" == macos-26* ]]; then
|
||||
export MACOSX_DEPLOYMENT_TARGET=26.0
|
||||
fi
|
||||
uv build --wheel --python ${{ matrix.python }} --find-links ${GITHUB_WORKSPACE}/packages/leann-core/dist
|
||||
else
|
||||
@@ -250,16 +245,14 @@ jobs:
|
||||
# Use system clang for better compatibility
|
||||
export CC=clang
|
||||
export CXX=clang++
|
||||
# Set deployment target based on runner
|
||||
# macos-15-intel runs macOS 15, so target 15.0 (system libraries require it)
|
||||
if [[ "${{ matrix.os }}" == "macos-15-intel" ]]; then
|
||||
export MACOSX_DEPLOYMENT_TARGET=15.0
|
||||
elif [[ "${{ matrix.os }}" == macos-14* ]]; then
|
||||
# DiskANN requires macOS 13.3+ for sgesdd_ LAPACK function
|
||||
# But Homebrew libraries on each macOS version require matching minimum version
|
||||
if [[ "${{ matrix.os }}" == "macos-13" ]]; then
|
||||
export MACOSX_DEPLOYMENT_TARGET=13.3
|
||||
elif [[ "${{ matrix.os }}" == "macos-14" ]]; then
|
||||
export MACOSX_DEPLOYMENT_TARGET=14.0
|
||||
elif [[ "${{ matrix.os }}" == macos-15* ]]; then
|
||||
elif [[ "${{ matrix.os }}" == "macos-15" ]]; then
|
||||
export MACOSX_DEPLOYMENT_TARGET=15.0
|
||||
elif [[ "${{ matrix.os }}" == macos-26* ]]; then
|
||||
export MACOSX_DEPLOYMENT_TARGET=26.0
|
||||
fi
|
||||
uv build --wheel --python ${{ matrix.python }} --find-links ${GITHUB_WORKSPACE}/packages/leann-core/dist
|
||||
else
|
||||
@@ -297,19 +290,16 @@ jobs:
|
||||
if: runner.os == 'macOS'
|
||||
run: |
|
||||
# Determine deployment target based on runner OS
|
||||
# macos-15-intel runs macOS 15, so target 15.0 (system libraries require it)
|
||||
if [[ "${{ matrix.os }}" == "macos-15-intel" ]]; then
|
||||
HNSW_TARGET="15.0"
|
||||
DISKANN_TARGET="15.0"
|
||||
elif [[ "${{ matrix.os }}" == macos-14* ]]; then
|
||||
# Must match the Homebrew libraries for each macOS version
|
||||
if [[ "${{ matrix.os }}" == "macos-13" ]]; then
|
||||
HNSW_TARGET="13.0"
|
||||
DISKANN_TARGET="13.3"
|
||||
elif [[ "${{ matrix.os }}" == "macos-14" ]]; then
|
||||
HNSW_TARGET="14.0"
|
||||
DISKANN_TARGET="14.0"
|
||||
elif [[ "${{ matrix.os }}" == macos-15* ]]; then
|
||||
elif [[ "${{ matrix.os }}" == "macos-15" ]]; then
|
||||
HNSW_TARGET="15.0"
|
||||
DISKANN_TARGET="15.0"
|
||||
elif [[ "${{ matrix.os }}" == macos-26* ]]; then
|
||||
HNSW_TARGET="26.0"
|
||||
DISKANN_TARGET="26.0"
|
||||
fi
|
||||
|
||||
# Repair HNSW wheel
|
||||
@@ -365,15 +355,12 @@ jobs:
|
||||
PY_TAG=$($UV_PY -c "import sys; print(f'cp{sys.version_info[0]}{sys.version_info[1]}')")
|
||||
|
||||
if [[ "$RUNNER_OS" == "macOS" ]]; then
|
||||
# macos-15-intel runs macOS 15, so target 15.0 (system libraries require it)
|
||||
if [[ "${{ matrix.os }}" == "macos-15-intel" ]]; then
|
||||
export MACOSX_DEPLOYMENT_TARGET=15.0
|
||||
elif [[ "${{ matrix.os }}" == macos-14* ]]; then
|
||||
if [[ "${{ matrix.os }}" == "macos-13" ]]; then
|
||||
export MACOSX_DEPLOYMENT_TARGET=13.3
|
||||
elif [[ "${{ matrix.os }}" == "macos-14" ]]; then
|
||||
export MACOSX_DEPLOYMENT_TARGET=14.0
|
||||
elif [[ "${{ matrix.os }}" == macos-15* ]]; then
|
||||
elif [[ "${{ matrix.os }}" == "macos-15" ]]; then
|
||||
export MACOSX_DEPLOYMENT_TARGET=15.0
|
||||
elif [[ "${{ matrix.os }}" == macos-26* ]]; then
|
||||
export MACOSX_DEPLOYMENT_TARGET=26.0
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ name = "leann-core"
|
||||
version = "0.3.5"
|
||||
description = "Core API and plugin system for LEANN"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.10"
|
||||
requires-python = ">=3.9"
|
||||
license = { text = "MIT" }
|
||||
|
||||
# All required dependencies included
|
||||
|
||||
@@ -7,7 +7,7 @@ name = "leann"
|
||||
version = "0.3.5"
|
||||
description = "LEANN - The smallest vector index in the world. RAG Everything with LEANN!"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.10"
|
||||
requires-python = ">=3.9"
|
||||
license = { text = "MIT" }
|
||||
authors = [
|
||||
{ name = "LEANN Team" }
|
||||
@@ -18,10 +18,10 @@ classifiers = [
|
||||
"Intended Audience :: Developers",
|
||||
"License :: OSI Approved :: MIT License",
|
||||
"Programming Language :: Python :: 3",
|
||||
"Programming Language :: Python :: 3.9",
|
||||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.13",
|
||||
]
|
||||
|
||||
# Default installation: core + hnsw + diskann
|
||||
|
||||
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
||||
[project]
|
||||
name = "leann-workspace"
|
||||
version = "0.1.0"
|
||||
requires-python = ">=3.10"
|
||||
requires-python = ">=3.9"
|
||||
|
||||
dependencies = [
|
||||
"leann-core",
|
||||
|
||||
Reference in New Issue
Block a user