Skip to content

Automatic reverse-dependency checks in every Fedora PR #2889

@frenzymadness

Description

@frenzymadness

Description

I'm experimenting with a Python tool that takes a component (SRPM) name and a version, analyzes reverse dependencies, and detects whether an upgrade to that version would break something in Fedora (currently rawhide). It takes into account all RPMs produced from that SRPM and all provides of all those RPMs. It works with locally cached repository metadata so it's fast even for thousands of relations between packages. The result looks like this:

$ fedora-revdep-check.py jupyterlab 5
Initializing DNF and loading repository metadata...
Enabled 2 repository/repositories
Loading repository metadata (this may take a moment)...
Repository metadata loaded and cached.

Analyzing impact of updating jupyterlab to version 5...

Found 1 binary package(s) from jupyterlab:
  - jupyterlab-4.5.0-1.fc44

Found 13 unique provides (excluding bundled)

================================================================================
REVERSE DEPENDENCY ANALYSIS
================================================================================
Source Package: jupyterlab
New Version: 5
Binary Packages: jupyterlab-4.5.0-1.fc44

✗ Found 5 potential conflict(s):

  Package: python-ipyparallel-9.0.2-1.fc44
  Issues:
    - Requires: (python3dist(jupyterlab) >= 4 with python3dist(jupyterlab) < 5)
      Failed:   python3dist(jupyterlab) < 5
      New version 5 does not satisfy this requirement

  Package: python-jupyterlab-widgets-3.0.16-1.fc44
  Issues:
    - Requires: (python3dist(jupyterlab) >= 4 with python3dist(jupyterlab) < 5)
      Failed:   python3dist(jupyterlab) < 5
      New version 5 does not satisfy this requirement

  Package: python-nbdime-4.0.2-9.fc44
  Issues:
    - Requires: (python3dist(jupyterlab) < 5~~ with python3dist(jupyterlab) >= 4)
      Failed:   python3dist(jupyterlab) < 5~~
      New version 5 does not satisfy this requirement

  Package: python-notebook-7.5.0-1.fc44
  Issues:
    - Requires: (python3dist(jupyterlab) < 4.6~~ with python3dist(jupyterlab) >= 4.5~rc0)
      Failed:   python3dist(jupyterlab) < 4.6~~
      New version 5 does not satisfy this requirement

  Package: python3-notebook-7.5.0-1.fc44
  Source:  python-notebook
  Issues:
    - Requires: (python3.14dist(jupyterlab) < 4.6~~ with python3.14dist(jupyterlab) >= 4.5~rc0)
      Failed:   python3.14dist(jupyterlab) < 4.6~~
      New version 5 does not satisfy this requirement

================================================================================

We (Python maintenance team) do this check one way or another for almost all our updates to make them safe but not all Fedora maintainers have this habit (or knowledge).
Is it possible to add this as a job to Packit CI and enable it for all pull requests? If so, how can I do it (propose it)?

Importance

Important. I believe it would improve Fedora maintainers' lives a lot.

Workaround

  • There is an existing workaround that can be used until this is implemented.

Metadata

Metadata

Assignees

Labels

area/fedora-ciRelated to the Fedora CI service

Type

No type

Projects

Status

new

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions