[Django] #34686: Confirm/Add support for GEOS 3.12.

28 views
Skip to first unread message

Django

unread,
Jun 29, 2023, 1:29:03 AM6/29/23
to django-...@googlegroups.com
#34686: Confirm/Add support for GEOS 3.12.
--------------------------------------------+------------------------
Reporter: Mariusz Felisiak | Owner: nobody
Type: New feature | Status: new
Component: GIS | Version: dev
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
--------------------------------------------+------------------------
GEOS 3.12 was released on 2023-06-27, see
​[https://libgeos.org/posts/2023-06-27-geos-3-12-released/ blog post].

--
Ticket URL: <https://code.djangoproject.com/ticket/34686>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Jun 29, 2023, 11:02:16 AM6/29/23
to django-...@googlegroups.com
#34686: Confirm/Add support for GEOS 3.12.
----------------------------------+------------------------------------

Reporter: Mariusz Felisiak | Owner: nobody
Type: New feature | Status: new
Component: GIS | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted

Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
----------------------------------+------------------------------------
Changes (by David Smith):

* stage: Unreviewed => Accepted


--
Ticket URL: <https://code.djangoproject.com/ticket/34686#comment:1>

Django

unread,
Jul 7, 2023, 5:03:48 AM7/7/23
to django-...@googlegroups.com
#34686: Confirm/Add support for GEOS 3.12.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Olivier
| Tabone
Type: New feature | Status: assigned

Component: GIS | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Olivier Tabone):

* owner: nobody => Olivier Tabone
* status: new => assigned


Comment:

I'l have a look

--
Ticket URL: <https://code.djangoproject.com/ticket/34686#comment:2>

Django

unread,
Jul 7, 2023, 5:10:47 AM7/7/23
to django-...@googlegroups.com
#34686: Confirm/Add support for GEOS 3.12.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Olivier
| Tabone
Type: New feature | Status: assigned
Component: GIS | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by Mariusz Felisiak):

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)
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/34686#comment:3>

Django

unread,
Jul 10, 2023, 11:28:36 AM7/10/23
to django-...@googlegroups.com
#34686: Confirm/Add support for GEOS 3.12.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Olivier
| Tabone
Type: New feature | Status: assigned
Component: GIS | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by Olivier Tabone):

Hi

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


- test_union_filter / test_collect_filter fails because of
https://github.com/libgeos/geos/pull/903
- test_wkt_writer_trim / test02_wktwriter fails because of
https://github.com/libgeos/geos/pull/915

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

cheers

--
Ticket URL: <https://code.djangoproject.com/ticket/34686#comment:4>

Django

unread,
Jul 10, 2023, 11:56:34 AM7/10/23
to django-...@googlegroups.com
#34686: Confirm/Add support for GEOS 3.12.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Olivier
| Tabone
Type: New feature | Status: assigned
Component: GIS | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Olivier Tabone):

* has_patch: 0 => 1


Comment:

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

[https://github.com/django/django/pull/17061 PR]

--
Ticket URL: <https://code.djangoproject.com/ticket/34686#comment:5>

Django

unread,
Jul 11, 2023, 6:36:17 AM7/11/23
to django-...@googlegroups.com
#34686: Confirm/Add support for GEOS 3.12.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Olivier
| Tabone
Type: New feature | Status: assigned
Component: GIS | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 1
Needs tests: 0 | Patch needs improvement: 1

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak):

* needs_better_patch: 0 => 1
* needs_docs: 0 => 1


--
Ticket URL: <https://code.djangoproject.com/ticket/34686#comment:6>

Django

unread,
Jul 11, 2023, 11:46:59 AM7/11/23
to django-...@googlegroups.com
#34686: Confirm/Add support for GEOS 3.12.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Olivier
| Tabone
Type: New feature | Status: assigned
Component: GIS | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 1
Needs tests: 0 | Patch needs improvement: 1
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by Olivier Tabone):

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.

--
Ticket URL: <https://code.djangoproject.com/ticket/34686#comment:7>

Django

unread,
Jul 24, 2023, 4:31:06 PM7/24/23
to django-...@googlegroups.com
#34686: Confirm/Add support for GEOS 3.12.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Olivier
| Tabone
Type: New feature | Status: assigned
Component: GIS | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 1
Needs tests: 0 | Patch needs improvement: 1
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by Olivier Tabone):

Update on this topic:

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

- https://groups.google.com/g/spatialite-
users/c/hAJ2SgitN4M/m/VnuR2l1sBAAJ

Will update the PR upon spatialite public release.

--
Ticket URL: <https://code.djangoproject.com/ticket/34686#comment:8>

Django

unread,
Aug 2, 2023, 8:16:01 AM8/2/23
to django-...@googlegroups.com
#34686: Confirm/Add support for GEOS 3.12.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Olivier
| Tabone
Type: New feature | Status: assigned
Component: GIS | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Olivier Tabone):

* needs_better_patch: 1 => 0
* needs_docs: 1 => 0


Comment:

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.

--
Ticket URL: <https://code.djangoproject.com/ticket/34686#comment:9>

Django

unread,
Aug 3, 2023, 12:14:48 AM8/3/23
to django-...@googlegroups.com
#34686: Confirm/Add support for GEOS 3.12.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Olivier
| Tabone
Type: New feature | Status: assigned
Component: GIS | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Ready for
| checkin

Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak):

* stage: Accepted => Ready for checkin


--
Ticket URL: <https://code.djangoproject.com/ticket/34686#comment:10>

Django

unread,
Aug 4, 2023, 12:23:13 AM8/4/23
to django-...@googlegroups.com
#34686: Confirm/Add support for GEOS 3.12.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Olivier
| Tabone
Type: New feature | Status: closed
Component: GIS | Version: dev
Severity: Normal | Resolution: fixed

Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak <felisiak.mariusz@…>):

* status: assigned => closed
* resolution: => fixed


Comment:

In [changeset:"f46a6b2816819ed12d4d0150c99d66920070ca15" f46a6b28]:
{{{
#!CommitTicketReference repository=""
revision="f46a6b2816819ed12d4d0150c99d66920070ca15"
Fixed #34686 -- Added support for GEOS 3.12.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/34686#comment:11>

Reply all
Reply to author
Forward
0 new messages