From 799a8a780d09615ef78a15ddea197181d432a186 Mon Sep 17 00:00:00 2001 From: Lars Pastewka Date: Tue, 2 Dec 2025 15:08:34 +0100 Subject: [PATCH 1/2] MAINT: Fixed pkg_resources deprecation --- dtoolcore/__init__.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/dtoolcore/__init__.py b/dtoolcore/__init__.py index 211aa30..d1d7f70 100644 --- a/dtoolcore/__init__.py +++ b/dtoolcore/__init__.py @@ -3,7 +3,6 @@ """ import os -import sys import datetime import logging @@ -60,16 +59,14 @@ def _generate_storage_broker_lookup(): logger.debug("In _generate_storage_broker_lookup...") storage_broker_lookup = dict() - if sys.version_info >= (3, 8): - from importlib.metadata import entry_points - eps = entry_points() - if sys.version_info >= (3, 10): - entrypoints = eps.select(group="dtool.storage_brokers") - else: - entrypoints = eps.get("dtool.storage_brokers", []) + from importlib.metadata import entry_points + eps = entry_points() + if hasattr(eps, 'select'): + # Python 3.10+ / importlib_metadata >= 3.6 + entrypoints = eps.select(group="dtool.storage_brokers") else: - from pkg_resources import iter_entry_points - entrypoints = iter_entry_points("dtool.storage_brokers") + # Python 3.9 and earlier - eps is a dict + entrypoints = eps.get("dtool.storage_brokers", []) for entrypoint in entrypoints: StorageBroker = entrypoint.load() From aebd1c64d8f3cf8eafec89686c48b7f77b4c62f2 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 13 Jun 2026 18:30:43 +0000 Subject: [PATCH 2/2] CI: drop Python 3.7/3.8 from test matrix, add 3.14 Python 3.7 and 3.8 cannot be provisioned by actions/setup-python on the current ubuntu-latest runner, and importlib.metadata (used for storage broker entry-point discovery) requires Python 3.8+. Drop both versions from the matrix, add 3.14, and remove the now-unused importlib-metadata backport install. --- .github/workflows/test.yml | 4 ++-- CHANGELOG.rst | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b767a42..8f50166 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,7 +15,7 @@ jobs: strategy: matrix: - python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13'] + python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] steps: - name: Git checkout @@ -29,7 +29,7 @@ jobs: - name: Install requirements run: | python -m pip install --upgrade pip - pip install --upgrade setuptools wheel setuptools-scm[toml] importlib-metadata + pip install --upgrade setuptools wheel setuptools-scm[toml] pip install flake8 pytest pytest-cov pytz if [ -f requirements.txt ]; then pip install -r requirements.txt; fi pip install . diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 23604d7..2ff034f 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,6 +5,25 @@ This project uses `semantic versioning `_. This change log uses principles from `keep a changelog `_. +[Unreleased] +------------ + + +Added +^^^^^ + +- Test with Python 3.14 in CI workflow + + +Removed +^^^^^^^ + +- Dropped support for Python 3.7 and 3.8 in CI workflow. ``importlib.metadata`` + (used for storage broker entry-point discovery) is only available in the + standard library from Python 3.8 onwards, and ``actions/setup-python`` no + longer provides 3.7/3.8 builds on ``ubuntu-latest`` + + [3.19.0] - 2024-12-16 ---------------------