Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minimal supported GEOS version ? #1000

Open
jorisvandenbossche opened this issue Oct 13, 2020 · 7 comments
Open

Minimal supported GEOS version ? #1000

jorisvandenbossche opened this issue Oct 13, 2020 · 7 comments
Labels
Milestone

Comments

@jorisvandenbossche
Copy link
Member

jorisvandenbossche commented Oct 13, 2020

What is the minimal GEOS version that Shapely still (aims to) supports?

At the moment, Shapely starts testing for GEOS 3.5 and up on CI, but actually has code in shapely/geos.py going back to GEOS 3.0, and requires GEOS 3.3 as a minimum in setup.py.

In PyGEOS, we also test (and have workarounds) going back to GEOS 3.5, and have certain functionality that only works for more recent GEOS versions (raises an error for older versions, see eg the decorator used here for get_z: https://github.com/pygeos/pygeos/blob/32397d998d2fc7fe3afef673539dace9fd8efe7f/pygeos/geometry.py#L251).
We did have some discussion related to this at pygeos/pygeos#116, and @caspervdw gave the argument of supporting at minimum GEOS 3.5 since this is the GEOS version included in Ubuntu 16.04 (which reaches end of life in April 2021). Supporting GEOS versions back to 3.5 is not that big of a burden, because we need the machinery for version checks anyway to support functionalities added in the latest GEOS versions anyway.

I don't think PyGEOS actively checks the used GEOS version and raises for older GEOS < 3.5 versions (@caspervdw is that correct?).

Are we fine to also have GEOS 3.5 as a minimum supported version in Shapely? And thus not have workarounds for older versions, as is the case now (and next year, we can then discuss moving to GEOS 3.6 as a minimum)

(I would say that in practice, this is the only option if we don't even test older versions)

@caspervdw
Copy link
Collaborator

I never actually tried compiling PyGEOS with GEOS 3.4, but there is a fat chance that there is at least one missing symbol in the CAPI. So I am 👎 on keeping GEOS <3.5 support.

@mwtoews
Copy link
Member

mwtoews commented Oct 13, 2020

A minimum GEOS 3.5 (released 2015-08-15) for shapely 2.0 is fine with me.

Users with older GEOS versions (e.g. find some packaged distros here) would need to stick to shapely<2.0 releases.

@jorisvandenbossche
Copy link
Member Author

Looking at the distros link, I already mentioned Ubuntu 16.04 that has GEOS 3.5 (16.04 is currently the oldest still supported version).
Some others: CentOS 7 includes GEOS 3.4 and is officially still supported (for maintenance updates) until June 30, 2024. CentOS 8 includes GEOS 3.7, though.
The oldest listed Debian version already includes GEOS 3.5.
Fedora only has a short life-cycle support, so oldest supported version has GEOS 3.7

Personally, I think using Ubuntu LTS as a benchmark what to support is fine (meaning, we can require GEOS 3.5).

@jorisvandenbossche
Copy link
Member Author

(and again, we are not even testing anything older than GEOS 3.5, also in Shapely, which is also a good reason to require GEOS 3.5 ..)

@mwtoews
Copy link
Member

mwtoews commented Nov 18, 2020

As an update, I think it would be sensible to set GEOS 3.6 as the minimum version from April 2021, when Ubuntu 16 is out of support. This is consistent with pygeos/pygeos#125

@jorisvandenbossche
Copy link
Member Author

In the end, we kept GEOS 3.5 as the minimum version for Shapely 2.0.

But going forward, we should drop that version for Shapely 2.1. Given that Ubuntu 18.04 LTS, which includes GEOS 3.6, is coming to end of life in April 2023, I would say that we could directly go to GEOS 3.7 (released 2018-09-10) as minimum version.

Ubuntu 20.04 includes GEOS 3.8.0, oldest listed Debian (10) has GEOS 3.7.1.

@mwtoews
Copy link
Member

mwtoews commented Apr 7, 2023

April 2024 here, with early shapely 2.1 planning. Currently the minimum GEOS version in main is still 3.5, but this should be lifted. I'll agree with @jorisvandenbossche to shift this to 3.7, which should be fine with (e.g.) Debian buster (3.7.1), Ubuntu 20.04 (3.8.0), and most other modern Linux distros have more recent versions. Unless I hear otherwise, I'll try to assemble a PR to increment versions in main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants