Bug 1802771

Summary: No longer provides python3-networkx-core
Product: [Fedora] Fedora Reporter: Ankur Sinha (FranciscoD) <sanjay.ankur>
Component: python-networkxAssignee: Jerry James <loganjerry>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 32CC: loganjerry
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-02-13 22:50:41 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Ankur Sinha (FranciscoD) 2020-02-13 19:44:15 UTC
Description of problem:
The package no longer provides python3-networkx-core

Version-Release number of selected component (if applicable):
python-networkx-2.4-2.fc32


Additional info:
https://koji.fedoraproject.org/koji/buildinfo?buildID=1449967

I only caught this because now python3-scikit-image, which depends on python3-networkx-core cannot be installed and this causes the Comp_Neuro Lab image to fail.

I don't see anything in the spec that explicitly removes this Provides, by the way, so I don't know if this is intentional or somehow just got dropped in the latest build. If it's intentional, please let me know and I'll inform the python-scikit-image folks to update their deps.

Comment 1 Jerry James 2020-02-13 21:09:12 UTC
It was intentional.  When the 2.x series was released, the old way of splitting up subpackages that we used for 1.x stopped working.  More specifically, none of it would work at all unless you installed all of the packages, due to python trying to load files that weren't there.  That seemed useless, so I merged everything back into a single package again.  See the Oct 13 2018 and Apr  27 2019 changelog entries.

Note that upstream knows that not all dependencies may be available, so they check for existence before trying to use them.  That's why the dependencies are almost all Recommends, rather than Requires.  Choose which ones you want and don't install the rest, and Everything Just Works (unless you try to invoke functionality that needs a missing dependency, of course).

If this isn't good enough for you, I'm open to discussing ways of improving the situation.

Comment 2 Ankur Sinha (FranciscoD) 2020-02-13 22:18:18 UTC
Sure, that makes sense. There are at least two packages that require the previously available sub-packages, for example python3-networkx-core:

$ sudo dnf --releasever 32 repoquery --whatrequires python3-networkx-core
python3-scikit-image-0:0.16.2-2.fc32.x86_64
python3-taskflow-0:3.7.1-2.fc32.noarch

I've opened PRs for both:

https://src.fedoraproject.org/rpms/python-scikit-image/pull-request/4
https://src.fedoraproject.org/rpms/python-taskflow/pull-request/2

I don't think there are any other packages that depended on this one.

(I seem to remember that the removal of sub-packages require the addition of Provides/Obsoletes in the spec to ensure that the upgrade path doesn't break. I just cant seem to find documentation on this at the moment, though.)

Please feel free to close this bug when you think fit.

Cheers,

Comment 3 Jerry James 2020-02-13 22:50:04 UTC
Actually, it did have Provides/Obsoletes up until the mass rebuild, which is why you didn't notice it until now.  The Fedora 30 and 31 packages still have them.  I removed them because I mistakenly thought they weren't useful anymore.  I clearly didn't check closely enough.  Sorry about that.