diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 50bc37a5d..39a7bf6ec 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -15,7 +15,7 @@ jobs: name: Label PR runs-on: ubuntu-latest steps: - - uses: srvaroa/labeler@master + - uses: srvaroa/labeler@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} commitlint: @@ -24,7 +24,7 @@ jobs: name: Verify PR title / description conforms to semantic-release runs-on: ubuntu-latest steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: "18" # These rules are disabled because Github will always ensure there @@ -47,7 +47,7 @@ jobs: ${{ github.event.pull_request.body }} - if: failure() - uses: actions/github-script@v6 + uses: actions/github-script@v7 with: script: | const message = `**ACTION NEEDED** diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 6b88c4445..264880bed 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -53,7 +53,7 @@ jobs: python -m pip install --extra-index-url https://pypi.fury.io/lance-format/ --extra-index-url https://pypi.fury.io/lancedb/ -e . python -m pip install --extra-index-url https://pypi.fury.io/lance-format/ --extra-index-url https://pypi.fury.io/lancedb/ -r ../docs/requirements.txt - name: Set up node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 20 cache: 'npm' @@ -68,7 +68,7 @@ jobs: run: | PYTHONPATH=. mkdocs build - name: Setup Pages - uses: actions/configure-pages@v2 + uses: actions/configure-pages@v5 - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index ebe05e9e8..3f0c768d3 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -37,7 +37,7 @@ jobs: with: fetch-depth: 0 lfs: true - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 20 cache: 'npm' @@ -77,7 +77,7 @@ jobs: with: fetch-depth: 0 lfs: true - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 name: Setup Node.js 20 for build with: # @napi-rs/cli v3 requires Node >= 20.12 (via @inquirer/prompts@8). @@ -94,7 +94,7 @@ jobs: run: | npm ci --include=optional npm run build:debug -- --profile ci - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 name: Setup Node.js ${{ matrix.node-version }} for test with: node-version: ${{ matrix.node-version }} @@ -143,7 +143,7 @@ jobs: with: fetch-depth: 0 lfs: true - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 20 cache: 'npm' diff --git a/dockerfiles/Dockerfile b/dockerfiles/Dockerfile index b314ff647..a7ace9da9 100644 --- a/dockerfiles/Dockerfile +++ b/dockerfiles/Dockerfile @@ -1,27 +1,27 @@ -#Simple base dockerfile that supports basic dependencies required to run lance with FTS and Hybrid Search -#Usage docker build -t lancedb:latest -f Dockerfile . -FROM python:3.10-slim-buster +# Simple base dockerfile that supports basic dependencies required to run lance with FTS and Hybrid Search +# Usage: docker build -t lancedb:latest -f Dockerfile . +FROM python:3.12-slim-bookworm -# Install Rust -RUN apt-get update && apt-get install -y curl build-essential && \ - curl https://sh.rustup.rs -sSf | sh -s -- -y - -# Set the environment variable for Rust -ENV PATH="/root/.cargo/bin:${PATH}" - -# Install protobuf compiler -RUN apt-get install -y protobuf-compiler && \ +# Install build dependencies in a single layer +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + curl \ + build-essential \ + protobuf-compiler \ + git \ + ca-certificates && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* -RUN apt-get -y update &&\ - apt-get -y upgrade && \ - apt-get -y install git +# Install Rust (pinned installer, non-interactive) +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable --profile minimal +# Set the environment variable for Rust +ENV PATH="/root/.cargo/bin:${PATH}" # Verify installations RUN python --version && \ rustc --version && \ protoc --version -RUN pip install tantivy lancedb +RUN pip install --no-cache-dir tantivy lancedb diff --git a/docs/requirements.txt b/docs/requirements.txt index 9011daff2..60d3b5e3e 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,9 +1,9 @@ mkdocs==1.5.3 mkdocs-jupyter==0.24.1 mkdocs-material==9.5.3 -mkdocs-autorefs<=1.0 +mkdocs-autorefs>=0.5,<=1.0 mkdocstrings[python]==0.25.2 -griffe -mkdocs-render-swagger-plugin -pydantic -mkdocs-redirects \ No newline at end of file +griffe>=0.40,<1.0 +mkdocs-render-swagger-plugin>=0.1.0 +pydantic>=2.0,<3.0 +mkdocs-redirects>=1.2.0 \ No newline at end of file diff --git a/java/pom.xml b/java/pom.xml index 172f29892..6136b989d 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -111,7 +111,7 @@ org.apache.maven.plugins maven-source-plugin - 2.2.1 + 3.3.1 attach-sources @@ -124,7 +124,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 2.9.1 + 3.11.2 attach-javadocs @@ -178,15 +178,15 @@ maven-clean-plugin - 3.1.0 + 3.4.1 maven-resources-plugin - 3.0.2 + 3.3.1 maven-compiler-plugin - 3.8.1 + 3.14.0 -h @@ -205,11 +205,11 @@ maven-jar-plugin - 3.0.2 + 3.4.2 maven-install-plugin - 2.5.2 + 3.1.3 com.diffplug.spotless @@ -327,7 +327,7 @@ org.apache.maven.plugins maven-gpg-plugin - 1.5 + 3.2.7 sign-artifacts diff --git a/nodejs/Cargo.toml b/nodejs/Cargo.toml index 2a6fe715c..d4c356e3d 100644 --- a/nodejs/Cargo.toml +++ b/nodejs/Cargo.toml @@ -25,7 +25,7 @@ napi = { version = "3.8.3", default-features = false, features = [ ] } napi-derive = "3.5.2" # Prevent dynamic linking of lzma, which comes from datafusion -lzma-sys = { version = "*", features = ["static"] } +lzma-sys = { version = "0.1", features = ["static"] } log.workspace = true # Pin to resolve build failures; update periodically for security patches. diff --git a/python/pyproject.toml b/python/pyproject.toml index f34e65f28..e697dc6dd 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -3,10 +3,10 @@ name = "lancedb" # version in Cargo.toml dynamic = ["version"] dependencies = [ - "deprecation", - "numpy", + "deprecation>=2.1.0", + "numpy>=1.24.0", "overrides>=0.7; python_version<'3.12'", - "packaging", + "packaging>=23.0", "pyarrow>=16", "pydantic>=1.10", "tqdm>=4.27.0", @@ -48,25 +48,25 @@ pylance = [ "pylance>=4.0.0b7", ] tests = [ - "aiohttp", - "boto3", + "aiohttp>=3.9.0", + "boto3>=1.28.57", "pandas>=1.4", - "pytest", - "pytest-mock", - "pytest-asyncio", - "duckdb", - "pytz", + "pytest>=7.0", + "pytest-mock>=3.10", + "pytest-asyncio>=0.21", + "duckdb>=0.9.0", + "pytz>=2023.3", "polars>=0.19, <=1.3.0", - "tantivy", - "pyarrow-stubs", + "tantivy>=0.20.0", + "pyarrow-stubs>=16.0", "pylance>=4.0.0b7", - "requests", + "requests>=2.31.0", "datafusion>=52,<53", ] dev = [ - "ruff", - "pre-commit", - "pyright", + "ruff>=0.3.0", + "pre-commit>=3.5.0", + "pyright>=1.1.350", 'typing-extensions>=4.0.0; python_version < "3.11"', ] docs = ["mkdocs", "mkdocs-jupyter", "mkdocs-material", "mkdocstrings-python"] @@ -75,21 +75,21 @@ siglip = ["torch", "pillow>=12.1.1", "transformers>=4.41.0","sentencepiece"] embeddings = [ "requests>=2.31.0", "openai>=1.6.1", - "sentence-transformers", - "torch", + "sentence-transformers>=2.2.0", + "torch>=2.0.0", "pillow>=12.1.1", - "open-clip-torch", - "cohere", + "open-clip-torch>=2.20.0", + "cohere>=4.0", "colpali-engine>=0.3.10", - "huggingface_hub", - "InstructorEmbedding", - "google.generativeai", + "huggingface_hub>=0.19.0", + "InstructorEmbedding>=1.0.1", + "google.generativeai>=0.3.0", "boto3>=1.28.57", "awscli>=1.44.38", "botocore>=1.31.57", 'ibm-watsonx-ai>=1.1.2; python_version >= "3.10"', "ollama>=0.3.0", - "sentencepiece" + "sentencepiece>=0.1.99" ] azure = ["adlfs>=2024.2.0"]