From 10572f040d29d0f953a33a9dddb1a760d168f9bf Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 18 Oct 2026 08:08:03 +0000 Subject: [PATCH] build!: drop Python 3.10 support Python 3.10 reaches its end of life this month (October 2026), and dependencies already move on: pgserviceparser 3 requires Python >= 3.11. Raise the floor to 3.11: - pyproject.toml: requires-python ">=3.11, <4", 3.10 classifier removed, ruff target-version py311; - pre-commit: pyupgrade --py311-plus; - CI: 3.10 removed from the Ubuntu test matrix (Windows already started at 3.11, for lack of a cp310 GDAL wheel), Linux executables and docs built with 3.11 instead of 3.10, like the Windows executables already were; - SonarCloud analyzed Python versions, and the development setup docs. BREAKING CHANGE: DicoGIS no longer installs on Python 3.10. AI-Level: 7 (human specced, bots coded) AI-Model: claude-opus-5-5 Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Dwmm8jY9WWvgUJt9WQ7QWZ --- .github/workflows/builder_releaser.yml | 2 +- .github/workflows/docs_builder.yml | 2 +- .github/workflows/tester.yml | 2 -- .pre-commit-config.yaml | 2 +- docs/development/ubuntu.md | 2 +- docs/development/windows.md | 6 +++--- pyproject.toml | 5 ++--- sonar-project.properties | 2 +- 8 files changed, 10 insertions(+), 13 deletions(-) diff --git a/.github/workflows/builder_releaser.yml b/.github/workflows/builder_releaser.yml index b596edd5..385b134c 100644 --- a/.github/workflows/builder_releaser.yml +++ b/.github/workflows/builder_releaser.yml @@ -22,7 +22,7 @@ on: # Globals env: PROJECT_FOLDER: "dicogis" - PYTHON_VERSION: "3.10" + PYTHON_VERSION: "3.11" PYINSTALLER_LOG_LEVEL: "DEBUG" USE_PATH_FOR_GDAL_PYTHON: yes diff --git a/.github/workflows/docs_builder.yml b/.github/workflows/docs_builder.yml index 0284801c..37807edd 100644 --- a/.github/workflows/docs_builder.yml +++ b/.github/workflows/docs_builder.yml @@ -34,7 +34,7 @@ concurrency: env: GDAL_VERSION: 3.* - PYTHON_VERSION: "3.10" + PYTHON_VERSION: "3.11" jobs: build-docs: diff --git a/.github/workflows/tester.yml b/.github/workflows/tester.yml index 8f8e6b67..988172ff 100644 --- a/.github/workflows/tester.yml +++ b/.github/workflows/tester.yml @@ -33,7 +33,6 @@ jobs: fail-fast: false matrix: python-version: - - "3.10" - "3.11" - "3.12" - "3.13" @@ -141,7 +140,6 @@ jobs: strategy: fail-fast: false matrix: - # no cp310 wheel published in the pinned geospatial-wheels release python-version: - "3.11" - "3.12" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e71eb895..0ca9186d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -27,7 +27,7 @@ repos: hooks: - id: pyupgrade args: - - --py310-plus + - --py311-plus - repo: https://github.com/astral-sh/ruff-pre-commit rev: "v0.16.10" diff --git a/docs/development/ubuntu.md b/docs/development/ubuntu.md index 3782e7c8..b797a8d4 100644 --- a/docs/development/ubuntu.md +++ b/docs/development/ubuntu.md @@ -7,7 +7,7 @@ Tested on: ## Requirements - GDAL >= 3.4.1 -- Python >= 3.10 +- Python >= 3.11 - Network access to: - Python Package Index: diff --git a/docs/development/windows.md b/docs/development/windows.md index bf371c37..8c6ce609 100644 --- a/docs/development/windows.md +++ b/docs/development/windows.md @@ -22,7 +22,7 @@ Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser ### Requirements -- Python 3.10+ installed with the Windows MSI installer (version from the Windows store is not working) +- Python 3.11+ installed with the Windows MSI installer (version from the Windows store is not working) ### Download GDAL wheel @@ -30,7 +30,7 @@ Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser > letting pip pull one from the package index used in "Install project" below. 1. Go to or to -1. Download the appropriate package for the Python environment (version, type...). For example: `GDAL-3.8.4-cp310-cp310-win_amd64` +1. Download the appropriate package for the Python environment (version, type...). For example: `gdal-3.11.1-cp311-cp311-win_amd64` 1. Move downloaded wheel to the `lib` subfolder 1. Make sure there is only one wheel of GDAL in the `lib` subfolder @@ -40,7 +40,7 @@ Typically, you can run these commands: ```powershell # create a virtual env - change with your Python version -py -3.10 -m venv .venv +py -3.11 -m venv .venv # enable virtual env .\.venv\Scripts\activate diff --git a/pyproject.toml b/pyproject.toml index 53499d30..9c804c75 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ dynamic = ["version"] description = "Create Excel spreadsheet describing geographical data from a PostGIS Database or a file tree structure." readme = "README.md" license = "Apache-2.0" -requires-python = ">=3.10, <4" +requires-python = ">=3.11, <4" authors = [{ name = "Julien Moura", email = "dev@ingeoveritas.com" }] keywords = ["GDAL", "GIS", "INSPIRE", "OGR", "data management", "metadata"] classifiers = [ @@ -21,7 +21,6 @@ classifiers = [ "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: Implementation :: CPython", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", @@ -117,7 +116,7 @@ testpaths = ["tests"] [tool.ruff] line-length = 88 -target-version = "py310" +target-version = "py311" exclude = [".git", "__pycache__", "old", "build", "dist", "tests/dev", ".venv*"] [tool.ruff.format] diff --git a/sonar-project.properties b/sonar-project.properties index 08235544..de815b0e 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -6,7 +6,7 @@ sonar.projectKey=Guts_DicoGIS # only=main # Python versions -sonar.python.version=3.10, 3.11, 3.12, 3.13,3.14 +sonar.python.version=3.11, 3.12, 3.13, 3.14 # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows. sonar.sources=dicogis