Skip to content

Update entries to use system packages over PyPI ones to prevent shadowing #48237

@BlueberryCatt

Description

@BlueberryCatt

A bunch of Python packages that were previously available only on PyPI have been added as native system libraries in major Linux distributions (e.g., Ubuntu and Debian). According to the contributing guidelines, system packages should be preferred over PyPI ones. This practice helps prevent conflicts that arise when PyPI-installed packages shadow system libraries. In addition, packages built by the ROS buildfarm are prohibited from depending on pip-only keys.

A similar case was discussed in #19058, where PyPI packages were replaced with system libraries once the latter became available.

The following table summarizes several entries that still install packages from PyPI even though equivalent system libraries now exist in Ubuntu and Debian (more exists for other distributions). For each entry, one example package is shown, preferring Ubuntu when available.

Click to show/hide table of entries that now have corresponding system packages
Entry Key Example Platform New System Package
python3-flake8-black Ubuntu Noble python3-flake8-black
python3-mongomock Debian Bookworm python3-mongomock
python3-xmlschema Ubuntu Noble python3-xmlschema
python3-fpdf2-pip Ubuntu Noble python3-fpdf
python3-anytree-pip Debian Trixie python3-anytree
python3-lingua-franca-pip Ubuntu Noble python3-lingua-franca
python3-marshmallow-dataclass-pip Ubuntu Noble python3-marshmallow-dataclass
python3-openai-pip Ubuntu Noble python3-openai
python3-sense-hat-pip Ubuntu Noble python3-sense-hat
python3-aio-pika-pip Ubuntu Noble python3-aio-pika
python3-ansible-runner-pip Ubuntu Noble python3-ansible-runner
python3-backoff-pip Ubuntu Noble python3-backoff
python3-fasteners-pip Ubuntu Noble python3-fasteners
python3-mapbox-earcut-pip Ubuntu Noble python3-mapbox-earcut
python3-padaos-pip Ubuntu Noble python3-padaos
python3-spidev-pip Ubuntu Noble python3-spidev

Proposed Action:
Update the corresponding entries to prefer system libraries over PyPI packages wherever possible.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions