Your message dated Thu, 22 May 2025 06:37:07 +0000
with message-id <e1uhzyb-0064c5...@respighi.debian.org>
and subject line unblock ipyparallel
has caused the Debian Bug report #1106252,
regarding unblock: ipyparallel/8.8.0-5
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
1106252: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1106252
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
X-Debbugs-Cc: ipyparal...@packages.debian.org
Control: affects -1 + src:ipyparallel
User: release.debian....@packages.debian.org
Usertags: unblock

Please unblock package ipyparallel

I'm tryng to get old python3-entrypoints
out of Trixie and we are almost there.

There's an AUTORM pending for a lot of other
packages and I'd like to get this settled.


[ Reason ]
ipyparallel autopkgtest is quite flaky as usual

[ Impact ]
(What is the impact for the user if the unblock isn't granted?)
One more confusing old library ends up in Trixie

[ Tests ]
autopkgtest succeeded for most architectures

[ Risks ]
Patch from upstream; 1 dependency dropped.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

[ Other info ]
python3-entrypoints reverse deps in Testing:
 python3-ipyparallel
 python3-papermill
 python3-testbook

unblock ipyparallel/8.8.0-5
diff -Nru ipyparallel-8.8.0/debian/changelog ipyparallel-8.8.0/debian/changelog
--- ipyparallel-8.8.0/debian/changelog  2024-10-30 15:15:26.000000000 +0100
+++ ipyparallel-8.8.0/debian/changelog  2025-05-14 00:45:36.000000000 +0200
@@ -1,3 +1,10 @@
+ipyparallel (8.8.0-5) unstable; urgency=medium
+
+  * Team upload.
+  * Remove usage of python3-entrypoints using upstream patch.
+
+ -- Alexandre Detiste <tc...@debian.org>  Wed, 14 May 2025 00:45:36 +0200
+
 ipyparallel (8.8.0-4) unstable; urgency=medium
 
   * Team upload.
diff -Nru ipyparallel-8.8.0/debian/control ipyparallel-8.8.0/debian/control
--- ipyparallel-8.8.0/debian/control    2024-10-30 13:10:18.000000000 +0100
+++ ipyparallel-8.8.0/debian/control    2025-05-14 00:45:36.000000000 +0200
@@ -17,7 +17,6 @@
  python3-dateutil,
  python3-decorator,
  python3-doc <!nodoc>,
- python3-entrypoints,
  python3-hatchling,
  python3-ipykernel,
  python3-ipython,
diff -Nru 
ipyparallel-8.8.0/debian/patches/7989cac274a8451dce05e9ff8f258d6da992a032.patch 
ipyparallel-8.8.0/debian/patches/7989cac274a8451dce05e9ff8f258d6da992a032.patch
--- 
ipyparallel-8.8.0/debian/patches/7989cac274a8451dce05e9ff8f258d6da992a032.patch 
    1970-01-01 01:00:00.000000000 +0100
+++ 
ipyparallel-8.8.0/debian/patches/7989cac274a8451dce05e9ff8f258d6da992a032.patch 
    2025-05-14 00:45:36.000000000 +0200
@@ -0,0 +1,169 @@
+From 7989cac274a8451dce05e9ff8f258d6da992a032 Mon Sep 17 00:00:00 2001
+From: Min RK <benjami...@gmail.com>
+Date: Tue, 2 Jul 2024 14:09:42 +0200
+Subject: [PATCH] trade entrypoints for importlib_metadata
+
+--- a/ipyparallel/cluster/app.py
++++ b/ipyparallel/cluster/app.py
+@@ -11,7 +11,6 @@
+ import sys
+ from functools import partial
+ 
+-import entrypoints
+ import zmq
+ from IPython.core.profiledir import ProfileDir
+ from traitlets import Bool, CaselessStrEnum, Dict, Integer, List, default
+@@ -20,6 +19,7 @@
+ from ipyparallel._version import __version__
+ from ipyparallel.apps.baseapp import BaseParallelApplication, base_aliases, 
base_flags
+ from ipyparallel.cluster import Cluster, ClusterManager, clean_cluster_files
++from ipyparallel.traitlets import entry_points
+ from ipyparallel.util import abbreviate_profile_dir
+ 
+ # 
-----------------------------------------------------------------------------
+@@ -339,13 +339,14 @@
+         launcher_classes = []
+         for kind in ('controller', 'engine'):
+             group_name = f'ipyparallel.{kind}_launchers'
+-            group = entrypoints.get_group_named(group_name)
+-            for key, value in group.items():
++            group = entry_points(group=group_name)
++            for entrypoint in group:
++                key = entrypoint.name
+                 try:
+-                    cls = value.load()
++                    cls = entrypoint.load()
+                 except Exception as e:
+                     self.log.error(
+-                        f"Failed to load entrypoint {group_name}: {key} = 
{value}\n{e}"
++                        f"Failed to load entrypoint {group_name}: {key} = 
{entrypoint.value}\n{e}"
+                     )
+                 else:
+                     launcher_classes.append(cls)
+--- a/ipyparallel/cluster/launcher.py
++++ b/ipyparallel/cluster/launcher.py
+@@ -23,7 +23,6 @@
+ from tempfile import TemporaryDirectory
+ from textwrap import indent
+ 
+-import entrypoints
+ import psutil
+ from IPython.utils.path import ensure_dir_exists, get_home_dir
+ from IPython.utils.text import EvalFormatter
+@@ -42,6 +41,7 @@
+ )
+ from traitlets.config.configurable import LoggingConfigurable
+ 
++from ..traitlets import entry_points
+ from ..util import shlex_join
+ from ._winhpcjob import IPControllerJob, IPControllerTask, IPEngineSetJob, 
IPEngineTask
+ 
+@@ -2533,16 +2533,16 @@
+         group_name = 'ipyparallel.controller_launchers'
+     else:
+         raise ValueError(f"kind must be 'engine' or 'controller', not 
{kind!r}")
+-    group = entrypoints.get_group_named(group_name)
++    group = entry_points(group=group_name)
+     # make it case-insensitive
+-    registry = {key.lower(): value for key, value in group.items()}
++    registry = {entrypoint.name.lower(): entrypoint for entrypoint in group}
+     return registry[name.lower()].load()
+ 
+ 
+ @lru_cache
+ def abbreviate_launcher_class(cls):
+     """Abbreviate a launcher class back to its entrypoint name"""
+-    cls_key = f"{cls.__module__}.{cls.__name__}"
++    cls_key = f"{cls.__module__}:{cls.__name__}"
+     # allow entrypoint_name attribute in case the definition module
+     # is not the same as the 'import' module
+     if getattr(cls, 'entrypoint_name', None):
+@@ -2550,8 +2550,8 @@
+ 
+     for kind in ('controller', 'engine'):
+         group_name = f'ipyparallel.{kind}_launchers'
+-        group = entrypoints.get_group_named(group_name)
+-        for key, value in group.items():
+-            if f"{value.module_name}.{value.object_name}" == cls_key:
+-                return key.lower()
++        group = entry_points(group=group_name)
++        for entrypoint in group:
++            if entrypoint.value == cls_key:
++                return entrypoint.name.lower()
+     return cls_key
+--- a/ipyparallel/tests/test_launcher.py
++++ b/ipyparallel/tests/test_launcher.py
+@@ -10,11 +10,11 @@
+ import time
+ from subprocess import Popen
+ 
+-import entrypoints
+ import pytest
+ from traitlets.config import Config
+ 
+ from ipyparallel.cluster import launcher as launcher_mod
++from ipyparallel.traitlets import entry_points
+ 
+ # 
-------------------------------------------------------------------------------
+ # TestCase Mixins
+@@ -156,9 +156,10 @@
+ @pytest.mark.parametrize("kind", ("controller", "engine"))
+ def test_entrypoints(kind):
+     group_name = f"ipyparallel.{kind}_launchers"
+-    group = entrypoints.get_group_named(group_name)
++    group = entry_points(group=group_name)
+     assert len(group) > 2
+-    for key, entrypoint in group.items():
++    for entrypoint in group:
++        key = entrypoint.name
+         # verify entrypoints are valid
+         cls = entrypoint.load()
+ 
+--- a/ipyparallel/traitlets.py
++++ b/ipyparallel/traitlets.py
+@@ -1,6 +1,8 @@
+ """Custom ipyparallel trait types"""
+ 
+-import entrypoints
++import sys
++from importlib.metadata import entry_points
++
+ from traitlets import List, TraitError, Type
+ 
+ 
+@@ -24,9 +26,7 @@
+         chunks = [self._original_help]
+         chunks.append("Currently installed: ")
+         for key, entry_point in self.load_entry_points().items():
+-            chunks.append(
+-                f"  - {key}: 
{entry_point.module_name}.{entry_point.object_name}"
+-            )
++            chunks.append(f"  - {key}: {entry_point.value}")
+         return '\n'.join(chunks)
+ 
+     @help.setter
+@@ -35,10 +35,10 @@
+ 
+     def load_entry_points(self):
+         """Load my entry point group"""
+-        # load the group
+-        group = entrypoints.get_group_named(self.entry_point_group)
+-        # make it case-insensitive
+-        return {key.lower(): value for key, value in group.items()}
++        return {
++            entry_point.name.lower(): entry_point
++            for entry_point in entry_points(group=self.entry_point_group)
++        }
+ 
+     def validate(self, obj, value):
+         if isinstance(value, str):
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -36,7 +36,6 @@
+ urls = {Homepage = "https://ipython.org"}
+ requires-python = ">=3.8"
+ dependencies = [
+-    "entrypoints",
+     "decorator",
+     "pyzmq>=18",
+     "traitlets>=4.3",
diff -Nru ipyparallel-8.8.0/debian/patches/series 
ipyparallel-8.8.0/debian/patches/series
--- ipyparallel-8.8.0/debian/patches/series     2024-10-30 15:14:49.000000000 
+0100
+++ ipyparallel-8.8.0/debian/patches/series     2025-05-14 00:45:36.000000000 
+0200
@@ -4,3 +4,4 @@
 mark_async_test_xfail.patch
 fix_docs
 0006-Define-asyncio_default_fixture_loop_scope-for-pytest.patch
+7989cac274a8451dce05e9ff8f258d6da992a032.patch

--- End Message ---
--- Begin Message ---
Unblocked.

--- End Message ---

Reply via email to