From 0c94f39db8fa172f8fa260ede1c298f81fea4d48 Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Fri, 7 Nov 2025 21:35:45 +0100 Subject: [PATCH] Drop support for Python 3.9 EOL 2025-10-31 --- .github/workflows/test.yml | 10 +++++----- .github/workflows/wheels.yml | 2 +- METADATA.in | 2 +- README.rst | 2 +- meson.build | 2 +- pyproject.toml | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9d25ff8b..f770dac2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -68,7 +68,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14', 'pypy-3.10', 'pypy-3.11'] + python-version: ['3.10', '3.11', '3.12', '3.13', '3.14', 'pypy-3.10', 'pypy-3.11'] steps: - uses: actions/checkout@v4 @@ -126,17 +126,17 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14', 'pypy-3.10', 'pypy-3.11'] + python-version: ['3.10', '3.11', '3.12', '3.13', '3.14', 'pypy-3.10', 'pypy-3.11'] architecture: ['x64'] os: ['windows-2022'] include: - - python-version: '3.9' + - python-version: '3.10' architecture: 'x86' os: 'windows-2022' - - python-version: '3.13' + - python-version: '3.14' architecture: 'x86' os: 'windows-2022' - - python-version: '3.13' + - python-version: '3.14' architecture: 'arm64' os: 'windows-11-arm' steps: diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index f0048374..4013a339 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -59,7 +59,7 @@ jobs: env: CFLAGS: "-DCAIRO_WIN32_STATIC_BUILD=1" CIBW_BEFORE_BUILD: "python {package}/.ci/download-cairo-win32.py ${{ matrix.arch }}" - CIBW_BUILD: cp39-${{ matrix.platform_id }} cp310-${{ matrix.platform_id }} cp311-${{ matrix.platform_id }} cp312-${{ matrix.platform_id }} cp313-${{ matrix.platform_id }} cp314-${{ matrix.platform_id }} + CIBW_BUILD: cp310-${{ matrix.platform_id }} cp311-${{ matrix.platform_id }} cp312-${{ matrix.platform_id }} cp313-${{ matrix.platform_id }} cp314-${{ matrix.platform_id }} CIBW_TEST_REQUIRES: pytest==8.3.5 CIBW_TEST_COMMAND: bash {package}/.ci/test-wheels.sh {package} CIBW_ENVIRONMENT_WINDOWS: PKG_CONFIG_PATH='${{ github.workspace }}/cairo-prebuild/lib/pkgconfig' PKG_CONFIG='${{ github.workspace }}/cairo-prebuild/bin/pkgconf.exe' diff --git a/METADATA.in b/METADATA.in index 4ed337d2..e0aed6dc 100644 --- a/METADATA.in +++ b/METADATA.in @@ -6,4 +6,4 @@ Maintainer-Email: Christoph Reiter License: LGPL-2.1-only OR MPL-1.1 Project-URL: Homepage, https://pycairo.readthedocs.io Project-URL: Source, https://github.com/pygobject/pycairo -Requires-Python: >=3.9 +Requires-Python: >=3.10 diff --git a/README.rst b/README.rst index f25aa2ec..9c170cdf 100644 --- a/README.rst +++ b/README.rst @@ -6,7 +6,7 @@ Pycairo is a Python module providing bindings for the `cairo graphics library `__. It depends on **cairo >= 1.15.10** and works -with **Python 3.9+** and **PyPy3**. Pycairo, including this documentation, is +with **Python 3.10+** and **PyPy3**. Pycairo, including this documentation, is licensed under the `LGPL-2.1-only OR MPL-1.1 `__. The Pycairo bindings are designed to match the cairo C API as closely as diff --git a/meson.build b/meson.build index 46ee58f3..243d74e2 100644 --- a/meson.build +++ b/meson.build @@ -10,7 +10,7 @@ project( ) cair_version_req = '>=1.15.10' -python_version_req = '>=3.9' +python_version_req = '>=3.10' pymod = import('python') python = pymod.find_installation(get_option('python'), pure: false) diff --git a/pyproject.toml b/pyproject.toml index e99c4d1c..af56c207 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "pycairo" version = "1.28.1" description = "Python interface for cairo" readme = "README.rst" -requires-python = ">=3.9" +requires-python = ">=3.10" license = {text = "LGPL-2.1-only OR MPL-1.1"} maintainers = [{name = "Christoph Reiter", email = "reiter.christoph@gmail.com"}] urls = {Homepage = "https://pycairo.readthedocs.io", Source = "https://github.com/pygobject/pycairo"}