[Git][debian-gis-team/pyosmium][upstream] New upstream version 4.3.1

Bas Couwenberg (@sebastic) gitlab at salsa.debian.org
Thu Apr 2 04:32:02 BST 2026



Bas Couwenberg pushed to branch upstream at Debian GIS Project / pyosmium


Commits:
d6e45e11 by Bas Couwenberg at 2026-04-02T05:22:48+02:00
New upstream version 4.3.1
- - - - -


9 changed files:

- .github/workflows/build_wheels.yml
- .github/workflows/ci.yml
- CHANGELOG.md
- CMakeLists.txt
- README.md
- docs/man/pyosmium-get-changes.1
- docs/man/pyosmium-up-to-date.1
- pyproject.toml
- test/test_pyosmium_up-to-date.py


Changes:

=====================================
.github/workflows/build_wheels.yml
=====================================
@@ -21,9 +21,9 @@ jobs:
            vcpkg: 'C:/vcpkg/installed/arm64-windows'
 
     steps:
-      - uses: actions/checkout at v4
+      - uses: actions/checkout at v6
 
-      - uses: actions/setup-python at v5
+      - uses: actions/setup-python at v6
         with:
           python-version: '3.14'
 
@@ -50,7 +50,7 @@ jobs:
            CIBW_ENVIRONMENT_WINDOWS: 'CMAKE_TOOLCHAIN_FILE="C:/vcpkg/scripts/buildsystems/vcpkg.cmake"'
            CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: 'pipx run delvewheel repair --add-path ${{ matrix.vcpkg }}/bin/ --add-path ${{ matrix.vcpkg }}/debug/bin -w {dest_dir} {wheel}'
 
-      - uses: actions/upload-artifact at v4
+      - uses: actions/upload-artifact at v7
         with:
           name: pyosmium-wheels-${{ matrix.os }}
           path: ./wheelhouse/*.whl


=====================================
.github/workflows/ci.yml
=====================================
@@ -7,7 +7,7 @@ jobs:
         runs-on: ubuntu-24.04
 
         steps:
-            - uses: actions/checkout at v4
+            - uses: actions/checkout at v6
 
             - name: Install packages
               run: |
@@ -24,7 +24,7 @@ jobs:
               run: mypy src
 
             - name: Set up Python 3.8
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: 3.8
 
@@ -35,7 +35,7 @@ jobs:
               shell: bash
 
             - name: Set up Python 3.9
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: 3.9
 
@@ -46,7 +46,7 @@ jobs:
               shell: bash
 
             - name: Set up Python 3.10
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: "3.10"
 
@@ -57,7 +57,7 @@ jobs:
               shell: bash
 
             - name: Set up Python 3.11
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: "3.11"
 
@@ -68,7 +68,7 @@ jobs:
               shell: bash
 
             - name: Set up Python 3.12
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: "3.12"
 
@@ -79,7 +79,7 @@ jobs:
               shell: bash
 
             - name: Set up Python 3.13
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: "3.13"
 
@@ -90,7 +90,7 @@ jobs:
               shell: bash
 
             - name: Set up Python 3.14
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: "3.14"
                   allow-prereleases: true
@@ -102,7 +102,7 @@ jobs:
               shell: bash
 
             - name: Upload Artifact
-              uses: actions/upload-artifact at v4
+              uses: actions/upload-artifact at v7
               with:
                   name: pyosmium-linux-x64-dist
                   path: dist
@@ -111,7 +111,7 @@ jobs:
         runs-on: ubuntu-24.04
 
         steps:
-            - uses: actions/checkout at v4
+            - uses: actions/checkout at v6
 
             - name: Install packages
               run: |
@@ -122,7 +122,7 @@ jobs:
                 pipx install flake8
 
             - name: Set up Python 3.13t
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: "3.13t"
 
@@ -133,7 +133,7 @@ jobs:
               shell: bash
 
             - name: Set up Python 3.14t
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: "3.14t"
                   allow-prereleases: true
@@ -145,7 +145,7 @@ jobs:
               shell: bash
 
             - name: Upload Artifact
-              uses: actions/upload-artifact at v4
+              uses: actions/upload-artifact at v7
               with:
                   name: pyosmium-linux-x64-dist-t
                   path: dist
@@ -161,15 +161,15 @@ jobs:
                 python-version: [3.8, 3.9, "3.10", "3.11", "3.12", "3.13"]
 
         steps:
-            - uses: actions/checkout at v4
+            - uses: actions/checkout at v6
 
             - name: Set up Python ${{ matrix.python-version }}
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: ${{ matrix.python-version }}
                   allow-prereleases: true
 
-            - uses: actions/download-artifact at v4
+            - uses: actions/download-artifact at v7
               with:
                   name: pyosmium-linux-x64-dist
 
@@ -197,15 +197,15 @@ jobs:
         needs: build-default
 
         steps:
-            - uses: actions/checkout at v4
+            - uses: actions/checkout at v6
 
             - name: Set up Python 3.14
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: 3.14
                   allow-prereleases: true
 
-            - uses: actions/download-artifact at v4
+            - uses: actions/download-artifact at v8
               with:
                   name: pyosmium-linux-x64-dist
 
@@ -237,15 +237,15 @@ jobs:
                 python-version: ["3.13t", "3.14t"]
 
         steps:
-            - uses: actions/checkout at v4
+            - uses: actions/checkout at v6
 
             - name: Set up Python ${{ matrix.python-version }}
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: ${{ matrix.python-version }}
                   allow-prereleases: true
 
-            - uses: actions/download-artifact at v4
+            - uses: actions/download-artifact at v8
               with:
                   name: pyosmium-linux-x64-dist-t
 
@@ -316,7 +316,7 @@ jobs:
             CXX: ${{ matrix.cxx }}
 
         steps:
-            - uses: actions/checkout at v4
+            - uses: actions/checkout at v6
 
             - name: Clean up build environment
               run: |
@@ -337,7 +337,7 @@ jobs:
               shell: bash
               if: ${{ matrix.flavour == 'macos' }}
 
-            - uses: actions/setup-python at v5
+            - uses: actions/setup-python at v6
               with:
                   python-version: "${{ matrix.python }}"
                   allow-prereleases: true
@@ -394,9 +394,9 @@ jobs:
             VCPKG_DEFAULT_BINARY_CACHE: C:/vcpkg_binary_cache
 
         steps:
-            - uses: actions/checkout at v4
+            - uses: actions/checkout at v6
 
-            - uses: actions/cache at v4
+            - uses: actions/cache at v5
               with:
                   path: |
                     C:/vcpkg_binary_cache
@@ -411,7 +411,7 @@ jobs:
               shell: bash
 
             - name: Set up Python 3.8
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: 3.8
 
@@ -424,7 +424,7 @@ jobs:
                   CMAKE_TOOLCHAIN_FILE: C:/vcpkg/scripts/buildsystems/vcpkg.cmake
 
             - name: Set up Python 3.9
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: 3.9
 
@@ -437,7 +437,7 @@ jobs:
                   CMAKE_TOOLCHAIN_FILE: C:/vcpkg/scripts/buildsystems/vcpkg.cmake
 
             - name: Set up Python 3.10
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: "3.10"
 
@@ -450,7 +450,7 @@ jobs:
                   CMAKE_TOOLCHAIN_FILE: C:/vcpkg/scripts/buildsystems/vcpkg.cmake
 
             - name: Set up Python 3.11
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: "3.11"
 
@@ -463,7 +463,7 @@ jobs:
                   CMAKE_TOOLCHAIN_FILE: C:/vcpkg/scripts/buildsystems/vcpkg.cmake
 
             - name: Set up Python 3.12
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: "3.12"
 
@@ -476,7 +476,7 @@ jobs:
                   CMAKE_TOOLCHAIN_FILE: C:/vcpkg/scripts/buildsystems/vcpkg.cmake
 
             - name: Set up Python 3.13
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: "3.13"
 
@@ -489,7 +489,7 @@ jobs:
                   CMAKE_TOOLCHAIN_FILE: C:/vcpkg/scripts/buildsystems/vcpkg.cmake
 
             - name: Set up Python 3.14
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: "3.14"
                   allow-prereleases: true
@@ -508,7 +508,7 @@ jobs:
                 delvewheel repair --add-path C:/vcpkg/installed/x64-windows/bin/ --add-path C:/vcpkg/installed/x64-windows/debug/bin dist/*.whl
 
             - name: 'Upload Artifact'
-              uses: actions/upload-artifact at v4
+              uses: actions/upload-artifact at v7
               with:
                   name: pyosmium-win64-dist
                   path: wheelhouse
@@ -520,9 +520,9 @@ jobs:
             VCPKG_DEFAULT_BINARY_CACHE: C:/vcpkg_binary_cache
 
         steps:
-            - uses: actions/checkout at v4
+            - uses: actions/checkout at v6
 
-            - uses: actions/cache at v4
+            - uses: actions/cache at v5
               with:
                   path: |
                     C:/vcpkg_binary_cache
@@ -538,7 +538,7 @@ jobs:
               shell: bash
 
             - name: Set up Python 3.13t
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: "3.13t"
 
@@ -551,7 +551,7 @@ jobs:
                   CMAKE_TOOLCHAIN_FILE: C:/vcpkg/scripts/buildsystems/vcpkg.cmake
 
             - name: Set up Python 3.14t
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: "3.14t"
                   allow-prereleases: true
@@ -570,7 +570,7 @@ jobs:
                 delvewheel repair --add-path C:/vcpkg/installed/x64-windows/bin/ --add-path C:/vcpkg/installed/x64-windows/debug/bin dist/*.whl
 
             - name: 'Upload Artifact'
-              uses: actions/upload-artifact at v4
+              uses: actions/upload-artifact at v7
               with:
                   name: pyosmium-win64-dist-t
                   path: wheelhouse
@@ -589,15 +589,15 @@ jobs:
             PYTEST_ADDOPTS: ${{ matrix.test-args }}
 
         steps:
-            - uses: actions/checkout at v4
+            - uses: actions/checkout at v6
 
             - name: Set up Python ${{ matrix.python-version }}
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: ${{ matrix.python-version }}
                   allow-prereleases: true
 
-            - uses: actions/download-artifact at v4
+            - uses: actions/download-artifact at v8
               with:
                   name: pyosmium-win64-dist
 
@@ -647,15 +647,15 @@ jobs:
             PYTEST_ADDOPTS: ${{ matrix.test-args }}
 
         steps:
-            - uses: actions/checkout at v4
+            - uses: actions/checkout at v6
 
             - name: Set up Python ${{ matrix.python-version }}
-              uses: actions/setup-python at v5
+              uses: actions/setup-python at v6
               with:
                   python-version: ${{ matrix.python-version }}
                   allow-prereleases: true
 
-            - uses: actions/download-artifact at v4
+            - uses: actions/download-artifact at v8
               with:
                   name: pyosmium-win64-dist-t
 


=====================================
CHANGELOG.md
=====================================
@@ -4,6 +4,18 @@
 All notable changes to this project will be documented in this file.
 This project adheres to [Semantic Versioning](http://semver.org/).
 
+## [4.3.1] - 2026-04-01
+
+### Fixed
+
+- regression in libosmium where deletions in extract diffs are not
+  handled correctly
+
+### Changed
+
+- updated to libosmium 2.23.1
+
+
 ## [4.3.0] - 2026-01-31
 
 ### Added


=====================================
CMakeLists.txt
=====================================
@@ -19,7 +19,7 @@ include(FetchContent)
 
 FetchContent_Declare(libosmium
                      GIT_REPOSITORY https://github.com/osmcode/libosmium
-                     GIT_TAG 9c49c960569c15dd09ff9eb9e9dce7f383ab6ed2 # release 2.23.0
+                     GIT_TAG 97dccf105391d410701ae8bd52170dc0ee041373 # release 2.23.1
                      SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/contrib/libosmium
                      SOURCE_SUBDIR cmake
                      GIT_SUBMODULES_RECURSE OFF)


=====================================
README.md
=====================================
@@ -38,6 +38,7 @@ command installs all required packages:
 pyosmium has the following dependencies:
 
  * [libosmium](https://github.com/osmcode/libosmium) >= 2.16.0
+   (versions 2.21.0 to 2.23.0 have a known issue when processing extract diffs)
  * [protozero](https://github.com/mapbox/protozero)
  * [cmake](https://cmake.org/)
  * [Pybind11](https://github.com/pybind/pybind11) >= 2.7


=====================================
docs/man/pyosmium-get-changes.1
=====================================
@@ -1,4 +1,4 @@
-.TH PYOSMIUM\-GET\-CHANGES "1" "2026\-01\-31" "pyosmium 4.3.0" "Generated Python Manual"
+.TH PYOSMIUM\-GET\-CHANGES "1" "2026\-04\-01" "pyosmium 4.3.1" "Generated Python Manual"
 .SH NAME
 pyosmium\-get\-changes
 .SH SYNOPSIS


=====================================
docs/man/pyosmium-up-to-date.1
=====================================
@@ -1,4 +1,4 @@
-.TH PYOSMIUM\-UP\-TO\-DATE "1" "2026\-01\-31" "pyosmium 4.3.0" "Generated Python Manual"
+.TH PYOSMIUM\-UP\-TO\-DATE "1" "2026\-04\-01" "pyosmium 4.3.1" "Generated Python Manual"
 .SH NAME
 pyosmium\-up\-to\-date
 .SH SYNOPSIS


=====================================
pyproject.toml
=====================================
@@ -4,7 +4,7 @@ build-backend = "scikit_build_core.build"
 
 [project]
 name = "osmium"
-version = "4.3.0"
+version = "4.3.1"
 description = "Python bindings for libosmium, the data processing library for OSM data"
 requires-python = ">=3.8"
 readme = "README.rst"


=====================================
test/test_pyosmium_up-to-date.py
=====================================
@@ -41,6 +41,23 @@ def replication_server(httpserver):
     return httpserver.url_for('')
 
 
+ at pytest.fixture
+def replication_server_delete(httpserver):
+    def _state(seq):
+        seqtime = REPLICATION_BASE_TIME + dt.timedelta(hours=seq - REPLICATION_CURRENT)
+        timestamp = seqtime.strftime('%Y-%m-%dT%H\\:%M\\:%SZ')
+        return f"sequenceNumber={seq}\ntimestamp={timestamp}\n"
+
+    httpserver.no_handler_status_code = 404
+    httpserver.expect_request('/state.txt').respond_with_data(_state(REPLICATION_CURRENT))
+    for i in range(REPLICATION_BASE_SEQ, REPLICATION_CURRENT + 1):
+        httpserver.expect_request(f'/000/000/{i}.opl')\
+                  .respond_with_data(f"n{i} v2 dD")
+        httpserver.expect_request(f'/000/000/{i}.state.txt').respond_with_data(_state(i))
+
+    return httpserver.url_for('')
+
+
 @pytest.fixture
 def runner(replication_server):
     def _run(*args):
@@ -79,6 +96,18 @@ def test_simple_update_override(runner, test_data):
     assert ids.relations == list(range(138, REPLICATION_CURRENT + 1))
 
 
+def test_simple_update_delete(replication_server_delete, test_data):
+    outfile = test_data("n138 v1 t2070-05-06T19:30:00Z x3 y5\nn139 v2 x3 y5\nn140 v3 x3 y5")
+
+    pyosmium_up_to_date(
+            ['--server', replication_server_delete, '--diff-type', 'opl', str(outfile)])
+
+    ids = IDCollector()
+    osmium.apply(outfile, ids)
+
+    assert ids.nodes == [140]
+
+
 def test_simple_update_new_file(runner, replication_server, test_data, tmp_path):
     outfile = test_data("n1 v1 t2070-05-06T19:30:00Z")
     newfile = tmp_path / f"{uuid.uuid4()}.pbf"



View it on GitLab: https://salsa.debian.org/debian-gis-team/pyosmium/-/commit/d6e45e11cc5d0dd30677008e597df49db7ce8806

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/pyosmium/-/commit/d6e45e11cc5d0dd30677008e597df49db7ce8806
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20260402/6b1933ba/attachment-0001.htm>


More information about the Pkg-grass-devel mailing list