• Python distributions with multiple packages

    From c.buhtz@posteo.jp@21:1/5 to All on Fri Aug 26 13:20:01 2022
    Hello,

    today I found out that it is possible to create a Python "Distribution
    Package" [1] (e.g. a whl-file) that contain more then one "Importable
    Packages" [2].

    So you can do "pip3 install mydistropackage" and after that you can do
    "import mya" and "import myb".

    Are you aware of any packages in Debian that are related to upstream
    projects using that "technic"?

    And if so how do you (as debian distro maintainers) handle that? Do you
    create one deb-file for "mydistropackage" (e.g.
    "python3-mydistropackage.deb") or do you separate into "python3-mya.deb"
    and "python3-myb.deb"?

    Kind
    Christian Buhtz

    [1] -- <https://packaging.python.org/en/latest/glossary/#term-Distribution-Package> [2] --
    <https://packaging.python.org/en/latest/glossary/#term-Import-Package>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stefano Rivera@21:1/5 to All on Fri Aug 26 22:20:01 2022
    Hi c.buhtz (2022.08.26_11:10:03_+0000)
    today I found out that it is possible to create a Python "Distribution Package" [1] (e.g. a whl-file) that contain more then one "Importable Packages" [2].

    Are you aware of any packages in Debian that are related to upstream
    projects using that "technic"?

    This has always been somewhat frowned upon, but it's not that uncommon. Offhand, I can think of python3-configobj, which upstream is in the
    process of tidying up.

    And if so how do you (as debian distro maintainers) handle that? Do you create one deb-file for "mydistropackage" (e.g. "python3-mydistropackage.deb") or do you separate into "python3-mya.deb" and "python3-myb.deb"?

    Sometimes we do the one, sometimes the other. It depends.

    A famous example is pkg_resources, which is shipped in setuptools,
    upstream. We packaged it as a separate module, because it's a runtime dependency of many packages, but they don't need the whole of setuptools
    at runtime.

    When we split packages like this, it breaks our automatic dependency
    generation tools. They understand upstream's dependency declarations,
    so we have to manually add dependencies to packages that depend on split libraries.

    SR

    --
    Stefano Rivera
    http://tumbleweed.org.za/
    +1 415 683 3272

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)