#34686 closed New feature (fixed)

Confirm/Add support for GEOS 3.12.

Reported by: Mariusz Felisiak Owned by: Olivier Tabone
Component: GIS Version: dev
Severity: Normal Keywords:
Cc: Claude Paroz, David Smith Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

GEOS 3.12 was released on 2023-06-27, see ​blog post.

Change History (11)

comment:1 by David Smith, 11 months ago

Triage Stage: UnreviewedAccepted

comment:2 by Olivier Tabone, 10 months ago

Owner: changed from nobody to Olivier Tabone
Status: newassigned

I'l have a look

comment:3 by Mariusz Felisiak, 10 months ago

We can see some failures with GEOS 3.12:

======================================================================
FAIL: test_union_filter (gis_tests.relatedapp.tests.RelatedGeoModelTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/django/django/test/testcases.py", line 1428, in skip_wrapper
    return test_func(*args, **kwargs)
  File "/django/tests/gis_tests/relatedapp/tests.py", line 408, in test_union_filter
    self.assertIn(
AssertionError: 'MULTIPOINT ((12.75 10.05), (3.7128 -5.006))' not found in ['MULTIPOINT (12.75 10.05, 3.7128 -5.006)', 'MULTIPOINT (3.7128 -5.006, 12.
75 10.05)']

======================================================================
FAIL: test02_wktwriter (gis_tests.geos_tests.test_io.GEOSIOTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/django/tests/gis_tests/geos_tests/test_io.py", line 44, in test02_wktwriter 
    self.assertEqual(ref_wkt, wkt_w.write(ref).decode())
AssertionError: 'POINT (5.0000000000000000 23.0000000000000000)' != 'POINT (5 23)'
- POINT (5.0000000000000000 23.0000000000000000)
+ POINT (5 23)

======================================================================
FAIL: test_wkt_writer_trim (gis_tests.geos_tests.test_io.GEOSIOTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/django/tests/gis_tests/geos_tests/test_io.py", line 137, in test_wkt_writer_trim
    self.assertEqual(
AssertionError: b'POINT (1 1)' != b'POINT (1.0000000000000000 1.0000000000000000)'

======================================================================
ERROR: test_make_valid (gis_tests.geoapp.test_functions.GISFunctionsTests.test_make_valid)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/django/tests/gis_tests/geoapp/test_functions.py", line 489, in test_make_valid
    self.assertIs(invalid.repaired.valid, True)
    ^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'valid'

======================================================================
ERROR: test_make_valid_multipolygon (gis_tests.geoapp.test_functions.GISFunctionsTests.test_make_valid_multipolygon)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/django/tests/gis_tests/geoapp/test_functions.py", line 509, in test_make_valid_multipolygon
    self.assertIs(invalid.repaired.valid, True)
    ^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'valid'

======================================================================
FAIL: test_collect_filter (gis_tests.relatedapp.tests.RelatedGeoModelTest.test_collect_filter)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/django/tests/gis_tests/relatedapp/tests.py", line 325, in test_collect_filter
    self.assertEqual(

AssertionError: 'MULTIPOINT ((1.7128 -2.006), (4.7128 5.006))' != 'MULTIPOINT (1.7128 -2.006, 4.7128 5.006)'
- MULTIPOINT ((1.7128 -2.006), (4.7128 5.006))
?            -              -  -             -
+ MULTIPOINT (1.7128 -2.006, 4.7128 5.006)

comment:4 by Olivier Tabone, 10 months ago

Hi

I made some progress on failed tests, fixed on my branch

I'll have a look at the other failing tests in the coming days

cheers

comment:5 by Olivier Tabone, 10 months ago

Has patch: set

Remaining tests are a pass on my setup (mac os, postgres 15). Will have a look at pr's checks upon completion

PR

comment:6 by Mariusz Felisiak, 10 months ago

Needs documentation: set
Patch needs improvement: set

comment:7 by Olivier Tabone, 10 months ago

found a regression in gis_tests.geoapp.tests.GeoModelTest.test_empty_geometries because of https://github.com/libgeos/geos/pull/887 (GEOS now considers some empty geometries as 3 dimensional geometries)

the PR has been updated.

comment:8 by Olivier Tabone, 10 months ago

Update on this topic:

spatialite 5.1.0 will support GEOS 3.12. There is a release candidate available.

Will update the PR upon spatialite public release.

comment:9 by Olivier Tabone, 10 months ago

Needs documentation: unset
Patch needs improvement: unset

Hi, the PR has been synced with master and last code suggestions added.

The remaining issue when using libspatialite 5.1

FAIL: test_asgml (gis_tests.geoapp.test_functions.GISFunctionsTests.test_asgml)

is not related to GEOS and should be fixed in a separate ticket in my opinion.

comment:10 by Mariusz Felisiak, 10 months ago

Triage Stage: AcceptedReady for checkin

comment:11 by Mariusz Felisiak <felisiak.mariusz@…>, 10 months ago

Resolution: fixed
Status: assignedclosed

In f46a6b28:

Fixed #34686 -- Added support for GEOS 3.12.

Note: See TracTickets for help on using tickets.
Back to Top