From 90900ab6196caa01da6a7e825f3223893a92a0bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dylan=20A=C3=AFssi?= <dylan.aissi@collabora.com> Date: Tue, 25 Feb 2025 09:45:39 +0100 Subject: [PATCH 1/2] import-debian-package: stop using a PosixPath object as context manager MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is no longer supported since Python 3.13 and leads to the following error: Traceback (most recent call last): File "/builds/pkg/apertis-dev-tools/tests/import-debian-package/../../tools/import-debian-package", line 681, in <module> main(sys.argv) ~~~~^^^^^^^^^^ File "/builds/pkg/apertis-dev-tools/tests/import-debian-package/../../tools/import-debian-package", line 666, in main do_import(args) ~~~~~~~~~^^^^^^ File "/builds/pkg/apertis-dev-tools/tests/import-debian-package/../../tools/import-debian-package", line 396, in do_import with ensure_dir_or_none(args.cache_dir) or TemporaryDirectory() as downloaddir: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: 'PosixPath' object does not support the context manager protocol Signed-off-by: Dylan Aïssi <dylan.aissi@collabora.com> --- tools/import-debian-package | 54 ++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/tools/import-debian-package b/tools/import-debian-package index bad0725..eda6a47 100755 --- a/tools/import-debian-package +++ b/tools/import-debian-package @@ -19,7 +19,7 @@ import sys from functools import lru_cache from gettext import gettext as _ from pathlib import Path -from tempfile import TemporaryDirectory +from tempfile import TemporaryDirectory, mkdtemp from typing import Mapping, Optional from urllib.error import HTTPError, URLError from urllib.parse import quote @@ -393,32 +393,36 @@ def do_import(args): if parse_ref(apertis_tag): raise Abort(f"Apertis tag {apertis_tag} already exists, cannot continue") - with ensure_dir_or_none(args.cache_dir) or TemporaryDirectory() as downloaddir: - if args.import_local_dsc: - logging.info(f"Overlaying Apertis package version {version}") - downloaded = args.import_local_dsc.name - else: - logging.info("Fetching the package information") + downloaddir = ( + ensure_dir_or_none(args.cache_dir) + if ensure_dir_or_none(args.cache_dir) is not None + else mkdtemp() + ) + if args.import_local_dsc: + logging.info(f"Overlaying Apertis package version {version}") + downloaded = args.import_local_dsc.name + else: + logging.info("Fetching the package information") - cached_dsc = get_cached_dsc(package, version, args.cache_dir) + cached_dsc = get_cached_dsc(package, version, args.cache_dir) - try: - url = args.mirror.rstrip("/") + get_debian_dsc_path(package, version) - except KeyboardInterrupt: - raise - except (KeyError, HTTPError, URLError): - if not cached_dsc: - raise Abort( - f"Unable to download source package {package} version {version}" - ) - else: - logging.warning( - f"Unable to download source package {package} version {version}, but found cached .dsc" - ) - url = cached_dsc - - downloaded = fetch(package, version, url, downloaddir, cached_dsc) - import_debian_dsc(args, downloaded, upstream, downstream, version) + try: + url = args.mirror.rstrip("/") + get_debian_dsc_path(package, version) + except KeyboardInterrupt: + raise + except (KeyError, HTTPError, URLError): + if not cached_dsc: + raise Abort( + f"Unable to download source package {package} version {version}" + ) + else: + logging.warning( + f"Unable to download source package {package} version {version}, but found cached .dsc" + ) + url = cached_dsc + + downloaded = fetch(package, version, url, downloaddir, cached_dsc) + import_debian_dsc(args, downloaded, upstream, downstream, version) if args.dsc: d = deb822.Dsc(args.dsc) -- GitLab From 16703947b09f3ff79ae256bb233810b12cda6a46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dylan=20A=C3=AFssi?= <dylan.aissi@collabora.com> Date: Tue, 25 Feb 2025 09:48:50 +0100 Subject: [PATCH 2/2] Release apertis-dev-tools version 0.2026.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Dylan Aïssi <dylan.aissi@collabora.com> --- debian/changelog | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/debian/changelog b/debian/changelog index 577acc8..89e9125 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +apertis-dev-tools (0.2026.1) apertis; urgency=medium + + * import-debian-package: stop using a PosixPath object as context manager. + This is no longer supported since Python 3.13 and triggers an error. + + -- Dylan Aïssi <dylan.aissi@collabora.com> Tue, 25 Feb 2025 09:47:11 +0100 + apertis-dev-tools (0.2026.0) apertis; urgency=medium * apertis-pkg-merge-upstream-to-downstreams: -- GitLab