Skip to content
Merged
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
6 changes: 3 additions & 3 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,15 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Upgrade version to remove Action warnings

"Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-python@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/"

uses: actions/checkout@v7

- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v7
with:
python-version: "3.11"

- name: Install uv
uses: astral-sh/setup-uv@v5
uses: astral-sh/setup-uv@v10.0.1

- name: Create virtual environment
run: uv venv
Expand Down
32 changes: 12 additions & 20 deletions .github/workflows/bodosql_testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,40 +17,32 @@ jobs:
python-version: ${{ fromJSON(inputs.python-versions) }}

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Setup Python ${{ matrix.python-version }}
id: setup-python
uses: actions/setup-python@v4
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}

- name: Install uv
uses: astral-sh/setup-uv@v3
uses: astral-sh/setup-uv@v10.0.1
with:
version: "0.6.0"

- name: Install dependencies
# TODO: Remove the LD_LIBRARY_PATH step once the LLM package supports
# pyarrow>=24. The [tool.uv] override in pyproject.toml already allows
# uv sync to resolve pyarrow to 23.0.x for this environment. The
# LD_LIBRARY_PATH step is needed because bodo looks for libarrow.so.2300
# at runtime but it isn't on the default library search path.
run: uv sync

- name: Set Arrow library path for bodo
# TODO: Remove once the LLM package supports pyarrow>=24.
run: |
PYARROW_LIB=$(uv run --no-sync python -c "import pyarrow; print(':'.join(pyarrow.get_library_dirs()))")
echo "LD_LIBRARY_PATH=${PYARROW_LIB}:${LD_LIBRARY_PATH:-}" >> $GITHUB_ENV
- name: Create virtual environment
# uv requires an existing virtual environment to install packages.
# Running `uv venv` creates the `.venv` directory so that subsequent
# `uv pip install` commands install dependencies inside this environment.
# Without this step, `uv pip install` fails with
# "No virtual environment found".
run: uv venv

- name: Confirm BodoSQL and related dependencies are installed
# TODO: remove --no-sync once the LLM package supports pyarrow>=24.
run: uv run --no-sync python -c "import bodo; import bodosql; import pyarrow; import pyiceberg; print(bodo.__version__, bodosql.__version__, pyarrow.__version__, pyiceberg.__version__)"
run: uv run python -c "import bodo; import bodosql; import pyarrow; import pyiceberg; print(bodo.__version__, bodosql.__version__, pyarrow.__version__, pyiceberg.__version__)"

- name: Download TPCH DB
run: ./demos/setup_tpch.sh ./tpch.db

- name: Run BodoSQL Tests
# TODO: remove --no-sync once the LLM package supports pyarrow>=24.
run: uv run --no-sync pytest -m bodosql tests/ -rs
run: uv run pytest -m bodosql tests/ -rs
6 changes: 3 additions & 3 deletions .github/workflows/build_pip.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ jobs:
role-session-name: PyDoughBuildWheelSession
role-skip-session-tagging: true

- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Install uv
uses: astral-sh/setup-uv@v3
uses: astral-sh/setup-uv@v10.0.1
with:
version: "0.6.0"

Expand Down Expand Up @@ -54,7 +54,7 @@ jobs:
pattern: pydough-wheel*
path: .

- uses: actions/setup-python@v5
- uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python_version }}

Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/databricks_testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ jobs:
DATABRICKS_HTTP_PATH: ${{ secrets.DATABRICKS_HTTP_PATH }}
DATABRICKS_TOKEN: ${{ secrets.DATABRICKS_TOKEN }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Install uv
uses: astral-sh/setup-uv@v3
uses: astral-sh/setup-uv@v10.0.1
with:
version: "0.6.0"

Expand All @@ -54,16 +54,16 @@ jobs:
DATABRICKS_TOKEN: ${{ secrets.DATABRICKS_TOKEN }}

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Setup Python ${{ matrix.python-version }}
id: setup-python
uses: actions/setup-python@v4
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}

- name: Install uv
uses: astral-sh/setup-uv@v3
uses: astral-sh/setup-uv@v10.0.1
with:
version: "0.6.0"

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/defog_daily_update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Setup Python
uses: actions/setup-python@v4
uses: actions/setup-python@v7
with:
python-version: "3.11"

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/duckdb_testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,16 @@ jobs:
python-version: ${{ fromJSON(inputs.python-versions) }}

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Setup Python ${{ matrix.python-version }}
id: setup-python
uses: actions/setup-python@v4
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}

- name: Install uv
uses: astral-sh/setup-uv@v3
uses: astral-sh/setup-uv@v10.0.1
with:
version: "0.6.0"

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/mysql_testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,16 @@ jobs:
MYSQL_HOST: 127.0.0.1

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Setup Python ${{ matrix.python-version }}
id: setup-python
uses: actions/setup-python@v4
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}

- name: Install uv
uses: astral-sh/setup-uv@v3
uses: astral-sh/setup-uv@v10.0.1
with:
version: "0.6.0"

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/oracle_testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,16 @@ jobs:
ORACLE_PASSWORD: ${{ secrets.ORACLE_PASSWORD }}

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Setup Python ${{ matrix.python-version }}
id: setup-python
uses: actions/setup-python@v4
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}

- name: Install uv
uses: astral-sh/setup-uv@v3
uses: astral-sh/setup-uv@v10.0.1
with:
version: "0.6.0"

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/postgres_testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,16 @@ jobs:
POSTGRES_HOST: 127.0.0.1

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Setup Python ${{ matrix.python-version }}
id: setup-python
uses: actions/setup-python@v4
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}

- name: Install uv
uses: astral-sh/setup-uv@v3
uses: astral-sh/setup-uv@v10.0.1
with:
version: "0.6.0"

Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/pr_testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ jobs:
commitMsg: ${{ steps.get_msg.outputs.commitMsg }}
steps:
# Fetch the branch for the history only
- uses: actions/checkout@v4
- uses: actions/checkout@v7
with:
ref: ${{ github.event.pull_request.head.sha }}
sparse-checkout: .
Expand Down Expand Up @@ -165,16 +165,16 @@ jobs:
|| fromJSON('["3.11", "3.12", "3.13"]') }}

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Setup Python ${{ matrix.python-version }}
id: setup-python
uses: actions/setup-python@v4
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}

- name: Install uv
uses: astral-sh/setup-uv@v3
uses: astral-sh/setup-uv@v10.0.1
with:
# Install a specific version of uv.
version: "0.6.0"
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/s3_testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,16 +29,16 @@ jobs:
role-to-assume: ${{ secrets.READ_LLM_FIXTURES_ROLE }}
aws-region: us-east-2

- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Setup Python ${{ matrix.python-version }}
id: setup-python
uses: actions/setup-python@v4
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}

- name: Install uv
uses: astral-sh/setup-uv@v3
uses: astral-sh/setup-uv@v10.0.1
with:
version: "0.6.0"

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/sf_masked_testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,16 +44,16 @@ jobs:
PYDOUGH_MASK_SERVER_PATH: ${{ secrets.PYDOUGH_MASK_SERVER_PATH }}

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Setup Python ${{ matrix.python-version }}
id: setup-python
uses: actions/setup-python@v4
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}

- name: Install uv
uses: astral-sh/setup-uv@v3
uses: astral-sh/setup-uv@v10.0.1
with:
version: "0.6.0"

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/sf_testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,16 +29,16 @@ jobs:
SF_ACCOUNT: ${{ secrets.SF_ACCOUNT }}

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Setup Python ${{ matrix.python-version }}
id: setup-python
uses: actions/setup-python@v4
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}

- name: Install uv
uses: astral-sh/setup-uv@v3
uses: astral-sh/setup-uv@v10.0.1
with:
version: "0.6.0"

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/trino_testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -119,16 +119,16 @@ jobs:
CASSANDRA_PORT: 9042

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Setup Python ${{ matrix.python-version }}
id: setup-python
uses: actions/setup-python@v4
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}

- name: Install uv
uses: astral-sh/setup-uv@v3
uses: astral-sh/setup-uv@v10.0.1
with:
version: "0.6.0"

Expand Down
18 changes: 7 additions & 11 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,14 @@ classifiers = [
"Programming Language :: Python :: 3.13",
]

# Note: sqlite is included in the standard library, so it doesn't need to be listed here.
# Note: sqlite is included in the standard library, so it doesn't need to be
# listed here.
# There is a bug in some unit tests when run with sqlglot>=26.8.0
# TODO: Upgrade pyarrow once the LLM package supports pyarrow>=24. Currently
# pinned to pyarrow==22 for compatibility with the LLM integration environment.
dependencies = ["pytz", "sqlglot==26.7.0", "pandas>=2.0.0", "jupyterlab", "pyarrow==22"]
# As of August 2026 LLM team work requires pyarrow=22.0.0, but
# BodoSQL requires latest version of pyarrow.
# So we are not specifying any version for pyarrow here to avoid conflicts and
# allow other packages to specify their own version of pyarrow.
dependencies = ["pytz", "sqlglot==26.7.0", "pandas>=2.0.0", "jupyterlab", "pyarrow"]

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no version specified for pyarrow.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's include in the comments above here a note about pyarrow being verisonless and why


[project.urls]
# TODO: Add homepage + documentation when docs are live.
Expand Down Expand Up @@ -59,13 +62,6 @@ oracle = ["oracledb==3.4.2"]
databricks = ["databricks-sql-connector==4.2.6"]
duckdb = ["duckdb>=1.5.4"]

# TODO: Remove this override once the LLM package supports pyarrow>=24.
# The base dependency pins pyarrow==22 for LLM compatibility, but bodo
# (via the bodosql extra) requires pyarrow>=24,<24.1. The override ensures
# pyarrow 24 is used when bodo is installed.
[tool.uv]
override-dependencies = ["pyarrow>=24,<24.1"]

[build-system]
requires = ["hatchling", "hatch-vcs"]
build-backend = "hatchling.build"
Expand Down
4 changes: 0 additions & 4 deletions tests/test_pipeline_bodosql.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,6 @@
import pytest
import datetime
import logging

# TODO: Remove this skip guard once the LLM package supports pyarrow>=24 and
# bodo can be included in the standard dev environment without conflict.
pytest.importorskip("bodo")
import bodo
from io import StringIO
from bodo.spawn.utils import set_global_config
Expand Down