Pinned geospatial dependencies have no wheels for Python 3.14 (CKAN 2.12); fiona has none in any release
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
Research direction
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.
Written by the indexing model from the issue text.
Description
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);
mainhas the same four pins - qsv 5.1.0
Steps to reproduce
- Start from
ckan/ckan-base:2.12-py3.14. pip install -r requirements.txtfrom 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
- 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.)
- 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.
- Dominant language
- Python
- Stars
- 47
- Forks
- 33
- Avg merge
- 2h 28m
- Merged PRs (30d)
- 10
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from dathere/datapusher-plus
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
dathere/datapusher-plus#359 ·
Maintainers usually reply within 1 day
-
"Total elapsed time" in the JOB DONE line is ~1.79 billion seconds (perf_counter overwrites the time.time() start)Possibly taken @tino097 claimed this 14 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 35/100
dathere/datapusher-plus#355 ·
Maintainers usually reply within 1 day
-
FormulaProcessing stage always skipped on CKAN 2.10+: ckan.plugins is a list, stage calls .split() on itPossibly taken @tino097 claimed this 14 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 25/100
dathere/datapusher-plus#354 ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 53/100
dathere/datapusher-plus#338 ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 68/100
dathere/datapusher-plus#337 · 1 comment ·
Maintainers usually reply within 1 day
All issues in dathere/datapusher-plus
Similar issues
-
documentation good first issue priority: P2 status: ready
Difficulty 1/5 Under an hour Newbie friendliness 88/100
RhinoLink-Tech/data-fabric#500 ·
Maintainers usually reply within 1 day
-
backlog
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
EchoTools/nevr-runtime#2384 ·
Maintainers usually reply within 1 day
-
[Bug]: The H2 series' and the H3C's fan 3 is labelled "Chamber Fan", Bambu calls it the exhaust fanOpenarea:ui
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
btclib-org/btclib#3062 ·
Maintainers usually reply within 1 day
-
area:evals area:infra enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
jse-avl/support-bot#4 · 1 comment ·