Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-Shapely for openSUSE:Factory 
checked in at 2026-09-17 15:25:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Shapely (Old)
 and      /work/SRC/openSUSE:Factory/.python-Shapely.new.383539 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-Shapely"

Thu Sep 17 15:25:42 2026 rev:32 rq:1378613 version:2.1.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-Shapely/python-Shapely.changes    
2026-03-27 06:47:16.128435362 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-Shapely.new.383539/python-Shapely.changes    
    2026-09-17 15:25:56.905409894 +0200
@@ -1,0 +2,9 @@
+Wed Sep 16 22:14:02 UTC 2026 - Libor Pechacek <[email protected]>
+
+- Fix build tests after GEOS update to 3.15
+  Added patches
+    TST-change-test_remove_repeated_points_invalid_resul.patch
+    TST-fix-test_set_precision_collapse-with-normalized-.patch
+    TST_update_tests_for_GEOS_3_15.patch
+
+-------------------------------------------------------------------

New:
----
  TST-change-test_remove_repeated_points_invalid_resul.patch
  TST-fix-test_set_precision_collapse-with-normalized-.patch
  TST_update_tests_for_GEOS_3_15.patch

----------(New B)----------
  New:  Added patches
    TST-change-test_remove_repeated_points_invalid_resul.patch
    TST-fix-test_set_precision_collapse-with-normalized-.patch
  New:    TST-change-test_remove_repeated_points_invalid_resul.patch
    TST-fix-test_set_precision_collapse-with-normalized-.patch
    TST_update_tests_for_GEOS_3_15.patch
  New:    TST-fix-test_set_precision_collapse-with-normalized-.patch
    TST_update_tests_for_GEOS_3_15.patch
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-Shapely.spec ++++++
--- /var/tmp/diff_new_pack.DpijDe/_old  2026-09-17 15:25:57.697443126 +0200
+++ /var/tmp/diff_new_pack.DpijDe/_new  2026-09-17 15:25:57.700443252 +0200
@@ -24,6 +24,12 @@
 License:        BSD-3-Clause
 URL:            https://github.com/shapely/shapely
 Source:         
https://files.pythonhosted.org/packages/source/s/shapely/shapely-%{version}.tar.gz
+# PATCH-FIX-UPSTREAM TST_update_tests_for_GEOS_3_15.patch -- based on commit 
639ff48319ac008841f02be597fd5fae3ddb4f23
+Patch0:         TST_update_tests_for_GEOS_3_15.patch
+# PATCH-FIX-UPSTREAM 
TST-fix-test_set_precision_collapse-with-normalized-.patch -- based on commit 
703df27ec61bef4e2ebacfc791c0c01947ae47a8
+Patch1:         TST-fix-test_set_precision_collapse-with-normalized-.patch
+# PATCH-FIX-UPSTREAM 
TST-change-test_remove_repeated_points_invalid_resul.patch -- based on commit 
9cca2e074cd9f695a99e3c884919eb18f99328d6
+Patch2:         TST-change-test_remove_repeated_points_invalid_resul.patch
 BuildRequires:  %{python_module Cython}
 BuildRequires:  %{python_module devel >= 3.8}
 BuildRequires:  %{python_module numpy-devel >= 1.25}
@@ -58,7 +64,7 @@
 and pyproj.
 
 %prep
-%autosetup -n shapely-%{version}
+%autosetup -p 1 -n shapely-%{version}
 
 %build
 CFLAGS="%{optflags} `geos-config --cflags` LDFLAGS=`geos-config --clibs`"

++++++ TST-change-test_remove_repeated_points_invalid_resul.patch ++++++
>From 9cca2e074cd9f695a99e3c884919eb18f99328d6 Mon Sep 17 00:00:00 2001
From: Mike Taves <[email protected]>
Date: Fri, 12 Dec 2025 20:53:06 +1300
Subject: [PATCH] TST: change test_remove_repeated_points_invalid_result for
 GEOS 3.15 (#2366)

---
 shapely/tests/test_constructive.py | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

--- a/shapely/tests/test_constructive.py
+++ b/shapely/tests/test_constructive.py
@@ -474,8 +474,12 @@ def test_remove_repeated_points(geom, ex
 def test_remove_repeated_points_invalid_result(geom, tolerance):
     # Requiring GEOS 3.12 instead of 3.11
     # (GEOS 3.11 had a bug causing this to intermittently not fail)
-    with pytest.raises(shapely.GEOSException, match="Invalid number of 
points"):
-        shapely.remove_repeated_points(geom, tolerance)
+    if shapely.geos_version >= (3, 15, 0):
+        result = shapely.remove_repeated_points(geom, tolerance)
+        assert result.wkt == "POLYGON EMPTY"
+    else:
+        with pytest.raises(shapely.GEOSException, match="Invalid number of 
points"):
+            shapely.remove_repeated_points(geom, tolerance)
 
 
 @pytest.mark.skipif(shapely.geos_version < (3, 11, 0), reason="GEOS < 3.11")

++++++ TST-fix-test_set_precision_collapse-with-normalized-.patch ++++++
>From 703df27ec61bef4e2ebacfc791c0c01947ae47a8 Mon Sep 17 00:00:00 2001
From: Mike Taves <[email protected]>
Date: Mon, 13 Apr 2026 20:30:54 +1200
Subject: [PATCH] TST: fix test_set_precision_collapse with normalized
 geometries (#2433)

---
 shapely/tests/test_geometry.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/shapely/tests/test_geometry.py
+++ b/shapely/tests/test_geometry.py
@@ -612,12 +612,8 @@ def test_set_precision_grid_size_nan():
 def test_set_precision_collapse(geometry, mode, expected):
     """Lines and polygons collapse to empty geometries if vertices are too 
close"""
     actual = shapely.set_precision(geometry, 1, mode=mode)
-    assert_geometries_equal(
-        # force to 2D because of various dimension issues; GEOS GH-1152
-        shapely.force_2d(actual),
-        expected,
-        normalize=shapely.geos_version == (3, 9, 0),
-    )
+    # force to 2D because of various dimension issues; GEOS GH-1152
+    assert_geometries_equal(shapely.force_2d(actual), expected, normalize=True)
 
 
 def test_set_precision_intersection():

++++++ TST_update_tests_for_GEOS_3_15.patch ++++++
>From 639ff48319ac008841f02be597fd5fae3ddb4f23 Mon Sep 17 00:00:00 2001
From: Joris Van den Bossche <[email protected]>
Date: Wed, 29 Jul 2026 08:40:41 +0200
Subject: [PATCH] TST: update tests for upstream changes in GEOS 3.15 (#2473)

---
 shapely/tests/legacy/test_split.py | 13 +++++++++++++
 shapely/tests/test_constructive.py |  6 ++++--
 2 files changed, 17 insertions(+), 2 deletions(-)

--- a/shapely/tests/legacy/test_split.py
+++ b/shapely/tests/legacy/test_split.py
@@ -2,6 +2,7 @@ import unittest
 
 import pytest
 
+from shapely import geos_version
 from shapely.errors import GeometryTypeError
 from shapely.geometry import (
     LineString,
@@ -146,6 +147,9 @@ class TestSplitLine(TestSplitGeometry):
         splitter = MultiPoint([(1, 1), (1.5, 1.5), (1, 1)])
         self.helper(self.ls, splitter, 3)
 
+    @pytest.mark.xfail(
+        geos_version >= (3, 15, 0), reason="TODO split with line broken in 
GEOS 3.15"
+    )
     def test_split_line_with_line(self):
         # crosses at one point --> return 2 segments
         splitter = LineString([(0, 1), (1, 0)])
@@ -174,6 +178,9 @@ class TestSplitLine(TestSplitGeometry):
         assert splitter.touches(self.ls)
         self.helper(self.ls, splitter, 2)
 
+    @pytest.mark.xfail(
+        geos_version >= (3, 15, 0), reason="TODO split with line broken in 
GEOS 3.15"
+    )
     def test_split_line_with_multiline(self):
         # crosses at one point --> return 2 segments
         splitter = MultiLineString([[(0, 1), (1, 0)], [(0, 0), (2, -2)]])
@@ -196,6 +203,9 @@ class TestSplitLine(TestSplitGeometry):
         splitter = MultiLineString([[(0, 1), (0, 2)], [(1, 0), (2, 0)]])
         self.helper(self.ls, splitter, 1)
 
+    @pytest.mark.xfail(
+        geos_version >= (3, 15, 0), reason="TODO split with line broken in 
GEOS 3.15"
+    )
     def test_split_line_with_polygon(self):
         # crosses at two points --> return 3 segments
         splitter = Polygon([(1, 0), (1, 2), (2, 2), (2, 0), (1, 0)])
@@ -213,6 +223,9 @@ class TestSplitLine(TestSplitGeometry):
         )
         self.helper(self.ls, splitter, 4)
 
+    @pytest.mark.xfail(
+        geos_version >= (3, 15, 0), reason="TODO split with line broken in 
GEOS 3.15"
+    )
     def test_split_line_with_multipolygon(self):
         poly1 = Polygon(
             [(0, 0), (2, 0), (2, 2), (0, 2), (0, 0)]
--- a/shapely/tests/test_constructive.py
+++ b/shapely/tests/test_constructive.py
@@ -199,10 +199,12 @@ def test_make_valid_none():
     "geom,expected",
     [
         (point, point),  # a valid geometry stays the same (but is copied)
-        # an L shaped polygon without area is converted to a multilinestring
+        # an L shaped polygon without area is converted to a (multi)linestring
         (
             Polygon([(0, 0), (1, 1), (1, 2), (1, 1), (0, 0)]),
-            MultiLineString([((1, 1), (1, 2)), ((0, 0), (1, 1))]),
+            LineString([(0, 0), (1, 1), (1, 2)])
+            if shapely.geos_version >= (3, 15, 0)
+            else MultiLineString([((1, 1), (1, 2)), ((0, 0), (1, 1))]),
         ),
         # a polygon with self-intersection (bowtie) is converted into polygons
         (

Reply via email to