geopandas / pyogrio

Vectorized vector I/O using OGR
https://pyogrio.readthedocs.io
MIT License
276 stars 24 forks source link

BLD/RLS: Update wheels to include GDAL 3.9.2 and add manylinux_2_28 wheels #466

Closed brendan-ward closed 2 months ago

brendan-ward commented 3 months ago

supersedes #451 , resolves #454

Uses GDAL 3.9.2 from VCPKG, which requires bumping this to the next minor release (0.10.0), ~and enables the libkml features (https://github.com/geopandas/pyogrio/issues/447)~. Also adds tests for GDAL 3.9.2 to CI.

This switches to pulling the Arm64 MacOS wheel when testing on the macos-latest runner, which is MacOS / Arm64 (resolves https://github.com/geopandas/pyogrio/issues/454) and uses --no-index flag to uv pip install to ensure it doesn't silently fall back to using an Arm64 wheel from PyPI.

This switches to uv for installing Python dependencies, in line with https://github.com/geopandas/pyogrio/pull/438, which also gets around issues with Python 3.12 requiring a virtual environment (needed for testing the sdist using the gdal:ubuntu-small-3.9.2 base image which has Python 3.12).

(unlike #451 this does not drop manylinux2014)

brendan-ward commented 3 months ago

The failure on wheel building on Linux appears to be version conflicts with minizip (used by libkml) and zlib (installed via custom port). Looks like we need to add a custom port here for minizip at the same version as zlib.

brendan-ward commented 3 months ago

Unfortunately, libkml 1.3.0 requires zlib / minizip >= 1.2.8. 1.3.0 was released in 2015, so already very old, and going for previous versions means not using cmake to build, which will likely be a pain to get working.

So - we have a couple of paths forward:

I think we should go with the first option; it allows us to upgrade GDAL in wheels, but is otherwise no worse than the wheels we're currently building.