Skip to content

Commit df4567f

Browse files
smpratherclaude
andcommitted
docs: correct duckdb cp314 status — wheels available since v1.4.2
duckdb/duckdb-python added Python 3.14 support in v1.4.2 (Nov 2025, duckdb/duckdb-python#116). Standard pip download with manylinux_2_28_x86_64 works. Removes the erroneous source-build procedure for duckdb. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 125c83b commit df4567f

1 file changed

Lines changed: 6 additions & 40 deletions

File tree

pre_built/ADDING_BINARIES.md

Lines changed: 6 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -625,49 +625,15 @@ ships as manylinux_2_27 minimum; `--platform manylinux2014_x86_64` won't find it
625625
If `pip download` fails even with `manylinux_2_28_x86_64 --only-binary :all:`, the package
626626
has no pre-built cp314 wheel compatible with EL8 and must be built from source (see below).
627627
628-
### duckdb — pending cp314 wheel (blocker for pygwalker)
628+
### duckdb cp314 status — resolved in 1.4.2
629629
630-
**Status:** duckdb ≥ 1.1 does not ship cp314 (Python 3.14) wheels on PyPI as of 2026-05.
631-
Only cp313 and earlier are available. This blocks `pygwalker` installation (duckdb is
632-
a hard dep of pygwalker).
630+
**Status (verified 2026-05-27):** duckdb added Python 3.14 support in **v1.4.2** (November 2025,
631+
via duckdb/duckdb-python#116). cp314 wheels are available on PyPI for duckdb ≥ 1.4.2.
633632
634-
**Resolution path A — wait for upstream:**
635-
duckdb is actively maintained. Check for cp314 wheels in new releases:
633+
The standard `pip download` command works:
636634
```bash
637635
pip3.14 download duckdb --platform manylinux_2_28_x86_64 --python-version 3.14 \
638-
--only-binary :all: -d /tmp/test-wheels/
636+
--only-binary :all: -d pre_built/el8.x86_64.glibc2p28/wheels/
639637
```
640-
Once a cp314 wheel appears, run the full pygwalker wheel download and commit.
641638
642-
**Resolution path B — build duckdb wheel from source on EL8:**
643-
duckdb uses a bundled CMake build that links nothing from the system (self-contained).
644-
The resulting wheel will be tagged `linux_x86_64` (not manylinux), which uv accepts
645-
for local install via `--find-links`:
646-
647-
```bash
648-
source /opt/rh/gcc-toolset-14/enable
649-
sudo dnf install -y cmake ninja-build python3-devel
650-
651-
# Clone at latest stable tag
652-
git clone --depth 1 --branch v1.3.0 https://github.com/duckdb/duckdb.git
653-
cd duckdb
654-
655-
# Build Python extension
656-
pip3.14 install build
657-
python3.14 -m build --wheel
658-
659-
# Resulting wheel in dist/
660-
ls dist/duckdb-*.whl # tagged cp314-cp314-linux_x86_64
661-
662-
# Verify glibc requirement (should be ≤ 2.28):
663-
readelf -V dist/duckdb-*.whl | grep -oE 'GLIBC_[0-9]+\.[0-9]+' | sort -V | tail -1
664-
665-
cp dist/duckdb-*.whl pre_built/el8.x86_64.glibc2p28/wheels/
666-
./strip_all_elf_binaries
667-
git add pre_built/ .strip-manifest
668-
git commit -m "feat(pygwalker): bundle duckdb cp314 wheel (source build)"
669-
```
670-
671-
Note: `python3.14 -m build` builds against the current environment's glibc (2.28).
672-
The wheel will NOT be portable to glibc < 2.28 systems, but all EL8 systems have glibc 2.28
673-
exactly, so this is fine for the loadout's fleet target.
639+
No source build required. pygwalker's duckdb dep is not a blocker.

0 commit comments

Comments
 (0)