Pinned geospatial dependencies have no wheels for Python 3.14 (CKAN 2.12); fiona has none in any release

Đang mở
#340 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
48/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
pandas, python
Lĩnh vực
backend, databases

Hướng nghiên cứu

Start with requirements.txt and inspect the four pinned geospatial dependencies against Python 3.14 wheel availability. The issue proposes relaxing pins and replacing Fiona with Pyogrio, but asks whether that change is welcome; first confirm the CKAN 2.12/Python 3.14 support direction with maintainers. Done should include an agreed dependency approach and CI coverage, with spatial file handling validated rather than assuming installation proves runtime compatibility.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Summary

Installing datapusher-plus on CKAN 2.12 fails at dependency resolution. Upstream ships 2.12 only as ckan/ckan-base:2.12-py3.14, and the exact pins in requirements.txt predate Python 3.14 wheels, so pip builds each from source and stops at the first one that needs native headers.

This is the same root cause as #334 (pandas 2.2.3 from source on 3.15), one interpreter version earlier. The pins are unchanged on main, so it applies to both the 2.x and 3.x lines.

Environment

  • CKAN 2.12.0 on ckan/ckan-base:2.12.0-py3.14 (Debian, Python 3.14)
  • datapusher-plus at 1825d62 (2.x line); main has the same four pins
  • qsv 5.1.0

Steps to reproduce

  1. Start from ckan/ckan-base:2.12-py3.14.
  2. pip install -r requirements.txt from datapusher-plus.

Expected behaviour

Dependencies resolve to wheels, as they do on Python 3.10-3.13.

Actual behaviour

pip downloads source tarballs and fails building them. First pyproj==3.7.1 (proj executable not found), and with PROJ present, fiona==1.10.1 (gdal-config not found; then cannot execute 'cc1plus' for fiona/_transform.cpp).

Wheel availability for the four pins, checked against PyPI on 15 September 2026:

pin cp312 cp313 cp314 earliest release with a cp314 wheel
fiona==1.10.1 yes yes no none - no fiona release has one
pandas==2.2.3 yes yes no 2.3.3
shapely==2.1.0 yes yes no 2.1.2
pyproj==3.7.1 yes yes no 3.7.2

What does install

With pandas==2.3.3, shapely==2.1.2 and pyproj==3.8.0 (all wheels), libgdal-dev and g++ in the image so fiona==1.10.1 compiles, and datapusher-plus installed with --no-deps, the image builds: datapusher-plus 2.0.0 alongside CKAN 2.12.0. I have not run it yet, so this shows only that the dependency set can resolve, not that datapusher-plus works on 2.12.

Questions

  1. Is CKAN 2.12 / Python 3.14 on the roadmap, and on which line? #329 and #338 suggest 3.x is the one that pairs with 2.12's SQLAlchemy 2, while CI currently targets 2.11 on 3.10 only. (#336 would also make 3.x runnable without Prefect, which changes the picture for deployments like ours that run an RQ-style worker today.)
  2. Would a pull request be welcome that relaxes the four pins to minimums (>=) and replaces fiona with pyogrio, which does ship cp314 wheels? The pin change is trivial. The pyogrio change touches the spatial file handling, so I would rather ask first. It would come with a CI matrix entry for 2.12/3.14, since the existing workflows would not otherwise exercise it.

Beyond installability, the change I expect to matter most on 2.12 is reading uploaded resources through the new configurable storage layer rather than a local filesystem path, since that is what lets datapusher-plus work when the filestore is not on local disk. Happy to contribute towards that as well if it is not already underway.

Ngôn ngữ chính
Python
Star
47
Fork
33
Merge trung bình
2 giờ 28 phút
Pull request đã merge (30 ngày)
10

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của dathere/datapusher-plus

Tất cả issue của dathere/datapusher-plus

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.