Subject: Migrating away from pkg_resources is difficult for namespace packages

From: Colin Watson <[email-masked]>
Date: Fri, 4 Oct 2024 11:22:32 +0100

While pkg_resources is indeed deprecated upstream, there's nothing that
we can sensibly do about it at the Debian level in lazr.* or zope.*, and
it's not even as clear as you might hope what to do upstream.  They all
do something like this in an __init__.py (with unimportant variations):

  __import__('pkg_resources').declare_namespace(__name__)

As
https://packaging.python.org/en/latest/guides/packaging-namespace-packages/#pkg-resources-style-namespace-packages
says:

  If you are creating a new distribution within an existing namespace
  package that uses this method then it’s recommended to continue using
  this as the different methods are not cross-compatible and it’s not
  advisable to try to migrate an existing package.

I know pkg_resources is deprecated for most other purposes, but even
upstream currently advises here not to try to migrate in this case.
Now, I know there've been some attempts to figure this out:
https://github.com/pypa/sample-namespace-packages thinks a migration may
be possible as long as developers are willing to accept some
limitations.  But it's still a difficult migration and upstream hasn't
really got going on it; for Zope, see
https://github.com/zopefoundation/meta/issues/194.

Please can you reconsider, and not force this for Debian trixie?  I
think we need to keep pkg_resources around for this use case until a
good deal more work has been done on migrating away from it for
namespace packages.

-- 
Colin Watson (he/him)                              [[email-masked]]

---

From: Matthias Klose <[email-masked]>
Date: Sat, 5 Oct 2024 04:34:54 +0200

> good deal more work has been done on migrating away from it for

I don't want to force it.  the separation of this module into it's own 
module is a Debian specific change to avoid runtime dependencies on 
pkg_resources.  So you'll find a lot of hard-coded dependencies that are 
just not used anymore. That's what I want to catch for the trixie release.

Matthias