Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
fb4598f
chore: Add 3.14 and 3.14t builds: update GHA matrix, bump uv and cibu…
paultiq Sep 14, 2025
34d20e1
chore: remove pandas 3.0 warnings -> instead, disable pandas for 3.14…
paultiq Sep 14, 2025
68f30ec
test: Disable Pandas for 3.14
paultiq Sep 14, 2025
275b6f2
test: disable failing test "Windows fatal exception: access violation"
paultiq Sep 15, 2025
23a2f9b
tests: skip, don't xfail
paultiq Sep 15, 2025
699d9ab
exclude Windows
paultiq Sep 15, 2025
43007a8
tests: revert the skip since we're excluding Windows 3.14t builds ent…
paultiq Sep 15, 2025
4db9da1
revert: import that was added, no longer needed
paultiq Sep 15, 2025
2374987
revert: exactly to original
paultiq Sep 15, 2025
25fd097
test: Mark test xfail
paultiq Sep 15, 2025
556e32d
test: mark test xfail
paultiq Sep 15, 2025
f5ad9d5
Merge branch 'main' into ci314t
paultiq Sep 15, 2025
b617188
chore: Add comments and todo's for workflow changes
paultiq Sep 15, 2025
03d5eca
chore: Remove unused section for Windows 3.14t builds.
paultiq Sep 15, 2025
70e70ae
chore: Add version check to only allow no-Pandas for 3.14, plus a TODO
paultiq Sep 15, 2025
0c20b89
chore: enable sccache for builds and disable unneeded actions
paultiq Sep 15, 2025
d276412
fix: disable coverage_test, not packaging_test
paultiq Sep 15, 2025
b81bcba
direct install
paultiq Sep 15, 2025
635d859
fix: set ARCH for sccache download
paultiq Sep 15, 2025
15d1e76
fix: set CMAKE_C_COMPILER_LAUNCHER to avoid double sccache
paultiq Sep 15, 2025
54f1e5e
chore: Add pytest modules
paultiq Sep 15, 2025
e28cb93
disable unused uv cache
paultiq Sep 15, 2025
4f40596
windows settings
paultiq Sep 15, 2025
456cb39
enable cp313
paultiq Sep 15, 2025
f0fab76
all branches
paultiq Sep 15, 2025
69e08ea
add workflow dispatch
paultiq Sep 15, 2025
591f812
continue-on-error: true
paultiq Sep 15, 2025
3939ff1
add a comment
paultiq Sep 16, 2025
3d253e4
chore: Add 3.14 and 3.14t builds: update GHA matrix, bump uv and cibu…
paultiq Sep 14, 2025
e315d53
chore: remove pandas 3.0 warnings -> instead, disable pandas for 3.14…
paultiq Sep 14, 2025
617b7bf
test: Disable Pandas for 3.14
paultiq Sep 14, 2025
88d3c15
test: disable failing test "Windows fatal exception: access violation"
paultiq Sep 15, 2025
650a10e
tests: skip, don't xfail
paultiq Sep 15, 2025
c4d4a27
exclude Windows
paultiq Sep 15, 2025
6889cc1
tests: revert the skip since we're excluding Windows 3.14t builds ent…
paultiq Sep 15, 2025
b5812b2
revert: import that was added, no longer needed
paultiq Sep 15, 2025
f909841
revert: exactly to original
paultiq Sep 15, 2025
7617f08
test: Mark test xfail
paultiq Sep 15, 2025
a18a1d3
test: mark test xfail
paultiq Sep 15, 2025
f636b37
chore: Add comments and todo's for workflow changes
paultiq Sep 15, 2025
3c22d7a
chore: Remove unused section for Windows 3.14t builds.
paultiq Sep 15, 2025
a0904f2
chore: Add version check to only allow no-Pandas for 3.14, plus a TODO
paultiq Sep 15, 2025
448cab4
chore: enable sccache for builds and disable unneeded actions
paultiq Sep 15, 2025
3f2c19c
fix: disable coverage_test, not packaging_test
paultiq Sep 15, 2025
7ea230b
direct install
paultiq Sep 15, 2025
9532ef4
fix: set ARCH for sccache download
paultiq Sep 15, 2025
d951f76
fix: set CMAKE_C_COMPILER_LAUNCHER to avoid double sccache
paultiq Sep 15, 2025
3546435
chore: Add pytest modules
paultiq Sep 15, 2025
08fba8c
disable unused uv cache
paultiq Sep 15, 2025
0b5b0ec
windows settings
paultiq Sep 15, 2025
bac920f
enable cp313
paultiq Sep 15, 2025
418f780
all branches
paultiq Sep 15, 2025
d29ba60
add workflow dispatch
paultiq Sep 15, 2025
1cf9ede
continue-on-error: true
paultiq Sep 15, 2025
f79d189
add a comment
paultiq Sep 16, 2025
1608a72
Merge branch 'ci314t_sccache' of https://github.com/paultiq/duckdb-py…
paultiq Sep 16, 2025
a3ff0ae
Make uv export quiet
paultiq Sep 16, 2025
149d58e
Remove randomly.
paultiq Sep 16, 2025
88354a1
xdist: Use tmp_path to avoid races.
paultiq Sep 16, 2025
bd5b24f
xdist: use tmp_path_factory
paultiq Sep 16, 2025
acefea1
pandas is not required to sniff objects
Tishj Sep 15, 2025
cc2be5b
Bumped submodule
evertlammerts Sep 15, 2025
45507b8
add 'py::is_operator()' where appropriate
Tishj Sep 10, 2025
d083056
detect the error and throw before trying to execute, removing the 'At…
Tishj Sep 9, 2025
a88c24f
update tests
Tishj Sep 9, 2025
8238b0d
fix the 'description' attribute, using DuckDBPyType
Tishj Sep 10, 2025
f2df9da
fix tests
Tishj Sep 10, 2025
912bcbd
add the remaining types, remove dead code
Tishj Sep 10, 2025
c800cda
Update duckdb/__init__.py
Tishj Sep 10, 2025
dd8f728
use constants, better __repr__ implementation
Tishj Sep 10, 2025
0bcb24a
use py::is_operator(), to keep the NotImplemented exception behavior,…
Tishj Sep 10, 2025
d474ecf
Make sure we set CIBW_ENVIRONMENT using bash or Windows will not see it
evertlammerts Sep 15, 2025
fc57930
submodule at v1.4.0
evertlammerts Sep 16, 2025
34fc4a8
set MAIN_BRANCH_VERSIONING to False for v1.4-andium
evertlammerts Sep 16, 2025
4228ddb
Re-enable nightlies for main
evertlammerts Sep 16, 2025
1136c9a
chore: Add 3.14 and 3.14t builds: update GHA matrix, bump uv and cibu…
paultiq Sep 14, 2025
30b0f0f
chore: remove pandas 3.0 warnings -> instead, disable pandas for 3.14…
paultiq Sep 14, 2025
86fce96
test: Disable Pandas for 3.14
paultiq Sep 14, 2025
5cc1389
test: disable failing test "Windows fatal exception: access violation"
paultiq Sep 15, 2025
1e7753a
tests: skip, don't xfail
paultiq Sep 15, 2025
d2db496
exclude Windows
paultiq Sep 15, 2025
d12367d
tests: revert the skip since we're excluding Windows 3.14t builds ent…
paultiq Sep 15, 2025
fd61ed1
revert: import that was added, no longer needed
paultiq Sep 15, 2025
60de2c5
revert: exactly to original
paultiq Sep 15, 2025
bb72486
test: Mark test xfail
paultiq Sep 15, 2025
e427725
test: mark test xfail
paultiq Sep 15, 2025
5d3fa3a
chore: Add comments and todo's for workflow changes
paultiq Sep 15, 2025
84d0a54
chore: Remove unused section for Windows 3.14t builds.
paultiq Sep 15, 2025
01b4ca1
chore: Add version check to only allow no-Pandas for 3.14, plus a TODO
paultiq Sep 15, 2025
22d1076
chore: enable sccache for builds and disable unneeded actions
paultiq Sep 15, 2025
c0be9b4
fix: disable coverage_test, not packaging_test
paultiq Sep 15, 2025
e0b72b1
direct install
paultiq Sep 15, 2025
bb52ac3
fix: set ARCH for sccache download
paultiq Sep 15, 2025
b2099e3
fix: set CMAKE_C_COMPILER_LAUNCHER to avoid double sccache
paultiq Sep 15, 2025
9d832dd
chore: Add pytest modules
paultiq Sep 15, 2025
eb9652c
disable unused uv cache
paultiq Sep 15, 2025
1d9768f
windows settings
paultiq Sep 15, 2025
a169069
enable cp313
paultiq Sep 15, 2025
f2e2a22
all branches
paultiq Sep 15, 2025
456a5ae
add workflow dispatch
paultiq Sep 15, 2025
53963b1
continue-on-error: true
paultiq Sep 15, 2025
907519a
add a comment
paultiq Sep 16, 2025
0e52f59
chore: Add 3.14 and 3.14t builds: update GHA matrix, bump uv and cibu…
paultiq Sep 14, 2025
954f1f1
chore: remove pandas 3.0 warnings -> instead, disable pandas for 3.14…
paultiq Sep 14, 2025
5580254
test: disable failing test "Windows fatal exception: access violation"
paultiq Sep 15, 2025
0009b98
tests: skip, don't xfail
paultiq Sep 15, 2025
efe376c
tests: revert the skip since we're excluding Windows 3.14t builds ent…
paultiq Sep 15, 2025
386e33a
revert: import that was added, no longer needed
paultiq Sep 15, 2025
e9397ca
revert: exactly to original
paultiq Sep 15, 2025
686fc80
test: Mark test xfail
paultiq Sep 15, 2025
e1962eb
test: mark test xfail
paultiq Sep 15, 2025
b10b9a6
chore: Add comments and todo's for workflow changes
paultiq Sep 15, 2025
5455656
chore: Add version check to only allow no-Pandas for 3.14, plus a TODO
paultiq Sep 15, 2025
a912bba
chore: enable sccache for builds and disable unneeded actions
paultiq Sep 15, 2025
804d53e
fix: disable coverage_test, not packaging_test
paultiq Sep 15, 2025
c1feff7
direct install
paultiq Sep 15, 2025
be83180
fix: set ARCH for sccache download
paultiq Sep 15, 2025
caacc10
fix: set CMAKE_C_COMPILER_LAUNCHER to avoid double sccache
paultiq Sep 15, 2025
402d2bf
disable unused uv cache
paultiq Sep 15, 2025
4289ea5
windows settings
paultiq Sep 15, 2025
9a61a61
enable cp313
paultiq Sep 15, 2025
25c3f58
continue-on-error: true
paultiq Sep 15, 2025
afa2ea7
add a comment
paultiq Sep 16, 2025
cbd9280
Make uv export quiet
paultiq Sep 16, 2025
debaf03
Remove randomly.
paultiq Sep 16, 2025
8cb0131
xdist: Use tmp_path to avoid races.
paultiq Sep 16, 2025
a2160d7
xdist: use tmp_path_factory
paultiq Sep 16, 2025
f5ce936
Merge branch 'ci314t_sccache' of https://github.com/paultiq/duckdb-py…
paultiq Sep 17, 2025
d378008
revert to match main
paultiq Sep 17, 2025
d6e6787
revert to match main
paultiq Sep 17, 2025
aa620e9
Merge branch 'main' into ci314t_sccache
paultiq Sep 17, 2025
21de8df
pass uv to CIBW
paultiq Sep 17, 2025
7d6cd12
revert
paultiq Sep 17, 2025
6a83849
cac
paultiq Sep 17, 2025
6a39c0f
disable tests and coverage
paultiq Sep 17, 2025
31c335a
remove on push coverage
paultiq Sep 17, 2025
9cd1806
add pytest-xdist
paultiq Sep 17, 2025
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
12 changes: 6 additions & 6 deletions .github/workflows/on_pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ name: Tests and builds on PR
on:
pull_request:
branches:
- main
- v*.*-*
- '**'
types: [opened, reopened, ready_for_review, converted_to_draft, synchronize]
paths-ignore:
- '**.md'
Expand All @@ -13,10 +12,11 @@ on:
- '.github//**'
- '!.github/workflows/on_push.yml'
- '!.github/workflows/coverage.yml'
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# concurrency:
# group: ${{ github.workflow }}-${{ github.ref }}
# cancel-in-progress: true

jobs:
submodule_sanity_guard:
Expand All @@ -38,7 +38,7 @@ jobs:
name: Run coverage tests
needs: submodule_sanity_guard
# Only run coverage test for draft PRs
if: ${{ github.event_name == 'pull_request' && github.event.pull_request.draft == true }}
if: false # ${{ github.event_name == 'pull_request' && github.event.pull_request.draft == true }}
uses: ./.github/workflows/coverage.yml
with:
duckdb_git_ref: ${{ github.base_ref }}
Expand Down
14 changes: 1 addition & 13 deletions .github/workflows/on_push.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,12 @@
name: Tests and coverage on push
on:
push:
branches-ignore:
- main
- v*.*-*
paths-ignore:
- '**.md'
- 'LICENSE'
- '.editorconfig'
- 'scripts/**'
- '.github//**'
- '!.github/workflows/on_push.yml'
- '!.github/workflows/coverage.yml'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
test:
if: false # ${{ github.event_name == 'pull_request' && github.event.pull_request.draft == true }}
name: Run coverage tests
uses: ./.github/workflows/coverage.yml
with:
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/packaging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,9 @@ on:
required: false
type: string

concurrency:
group: packaging-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# concurrency:
# group: packaging-${{ github.workflow }}-${{ github.ref }}
# cancel-in-progress: true

defaults:
run:
Expand All @@ -63,6 +63,7 @@ defaults:
jobs:
build_sdist:
name: Build an sdist and determine versions
if: false # disable for dev
uses: ./.github/workflows/packaging_sdist.yml
with:
testsuite: all
Expand Down
34 changes: 21 additions & 13 deletions .github/workflows/packaging_wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,14 @@ jobs:
strategy:
fail-fast: false
matrix:
python: [ cp39, cp310, cp311, cp312, cp313, cp314, cp314t ]
python: [ cp313, cp314t ] # cp39, cp310, cp311, cp312, cp313, cp314,
platform:
- { os: windows-2025, arch: amd64, cibw_system: win }
# - { os: windows-2025, arch: amd64, cibw_system: win }
- { os: ubuntu-24.04, arch: x86_64, cibw_system: manylinux }
- { os: ubuntu-24.04-arm, arch: aarch64, cibw_system: manylinux }
- { os: macos-15, arch: arm64, cibw_system: macosx }
- { os: macos-15, arch: universal2, cibw_system: macosx }
- { os: macos-13, arch: x86_64, cibw_system: macosx }
# - { os: ubuntu-24.04-arm, arch: aarch64, cibw_system: manylinux }
# - { os: macos-15, arch: arm64, cibw_system: macosx }
# - { os: macos-15, arch: universal2, cibw_system: macosx }
# - { os: macos-13, arch: x86_64, cibw_system: macosx }
minimal:
- ${{ inputs.minimal }}
exclude:
Expand All @@ -54,27 +54,35 @@ jobs:
CIBW_TEST_SKIP: ${{ inputs.testsuite == 'none' && '*' || '*-macosx_universal2' }}
CIBW_TEST_SOURCES: tests
CIBW_BEFORE_TEST: >
uv export --only-group test --no-emit-project --output-file pylock.toml --directory {project} &&
uv export --only-group test --no-emit-project --output-file pylock.toml --directory {project} --quiet &&
uv pip install -r pylock.toml
CIBW_TEST_COMMAND: >
uv run -v pytest ${{ inputs.testsuite == 'fast' && './tests/fast' || './tests' }} --verbose --ignore=./tests/stubs

uv run -v pytest -n auto ${{ inputs.testsuite == 'fast' && './tests/fast' || './tests' }} --verbose --ignore=./tests/stubs
SCCACHE_GHA_ENABLED: "on"
SCCACHE_C_CUSTOM_CACHE_BUSTER: ${{ toJSON(matrix) }}
ACTIONS_CACHE_SERVICE_V2: "1"
PYTHON_GIL: "1"
steps:
- name: Checkout DuckDB Python
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
ref: ${{ inputs.duckdb-python-sha }}
fetch-depth: 0
submodules: true

- name: Checkout DuckDB
shell: bash
continue-on-error: true # needed when we're merging into a branch
if: ${{ inputs.duckdb-sha }}
run: |
cd external/duckdb
git fetch origin
git checkout ${{ inputs.duckdb-sha }}

- name: Configure Cache Env
uses: actions/github-script@v7
with:
script: |
core.exportVariable('ACTIONS_RESULTS_URL', process.env.ACTIONS_RESULTS_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
# Make sure that OVERRIDE_GIT_DESCRIBE is propagated to cibuildwhel's env, also when it's running linux builds
- name: Set OVERRIDE_GIT_DESCRIBE
shell: bash
Expand All @@ -96,7 +104,7 @@ jobs:
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.platform.cibw_system }}_${{ matrix.platform.arch }}
# PYTHON_GIL=1: Suppresses the RuntimeWarning that the GIL is enabled on free-threaded builds.
# TODO: Remove PYTHON_GIL=1 when free-threaded is supported.
CIBW_ENVIRONMENT: PYTHON_GIL=1
CIBW_ENVIRONMENT: PYTHON_GIL=1 CMAKE_C_COMPILER_LAUNCHER="" CMAKE_CXX_COMPILER_LAUNCHER=""
- name: Upload wheel
uses: actions/upload-artifact@v4
with:
Expand Down
2 changes: 1 addition & 1 deletion external/duckdb
Submodule duckdb updated 413 files
33 changes: 30 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,7 @@ test = [ # dependencies used for running tests
"pytest",
"pytest-reraise",
"pytest-timeout",
"pytest-xdist",
"mypy",
"coverage",
"gcovr; python_version < '3.14'",
Expand Down Expand Up @@ -382,10 +383,36 @@ manylinux-pypy_aarch64-image = "manylinux_2_28"
enable = ["cpython-freethreading", "cpython-prerelease"]

[tool.cibuildwheel.linux]
before-build = ["yum install -y ccache"]
environment-pass = ["SCCACHE_GHA_ENABLED", "ACTIONS_RUNTIME_TOKEN", "ACTIONS_RESULTS_URL", "ACTIONS_CACHE_SERVICE_V2", "SCCACHE_C_CUSTOM_CACHE_BUSTER", "PYTHON_GIL"]
before-build = [
"if [ \"$(uname -m)\" = \"aarch64\" ]; then ARCH=aarch64; else ARCH=x86_64; fi",
"curl -L https://github.com/mozilla/sccache/releases/download/v0.10.0/sccache-v0.10.0-${ARCH}-unknown-linux-musl.tar.gz | tar xz",
"cp sccache-v0.10.0-${ARCH}-unknown-linux-musl/sccache /usr/bin",
"sccache --show-stats"]
before-test = ["sccache --show-stats"]

[tool.cibuildwheel.macos]
before-build = ["brew install ccache"]
environment-pass = ["SCCACHE_GHA_ENABLED", "ACTIONS_RUNTIME_TOKEN", "ACTIONS_RESULTS_URL", "ACTIONS_CACHE_SERVICE_V2", "SCCACHE_C_CUSTOM_CACHE_BUSTER", "PYTHON_GIL"]
before-build = ["brew install sccache"]

[tool.cibuildwheel.windows]
before-build = ["choco install ccache"]
environment-pass = ["SCCACHE_GHA_ENABLED", "ACTIONS_RUNTIME_TOKEN", "ACTIONS_RESULTS_URL", "ACTIONS_CACHE_SERVICE_V2", "SCCACHE_C_CUSTOM_CACHE_BUSTER", "PYTHON_GIL"]
before-build = [
"del \"C:\\Strawberry\\c\\bin\\ccache.exe\"",
"choco install sccache"]

[[tool.scikit-build.overrides]]
# Windows Free-Threading
if.platform-system = "^win32"
if.abi-flags = "t"
inherit.cmake.define = "append"
cmake.define.CMAKE_BUILD_TYPE=""
cmake.define.CMAKE_MSVC_DEBUG_INFORMATION_FORMAT="Embedded"
cmake.define.CMAKE_C_FLAGS="/Z7 /DPy_MOD_GIL_USED /DPy_GIL_DISABLED"
cmake.define.CMAKE_CXX_FLAGS="/Z7 /DPy_MOD_GIL_USED /DPy_GIL_DISABLED"
cmake.args = [
"-G", "Ninja",
"--log-level=DEBUG",
]
cmake.define.CMAKE_C_COMPILER_LAUNCHER=""
cmake.define.CMAKE_CXX_COMPILER_LAUNCHER=""