Bug 1347624

Summary: python-oslo-concurrency: python2-oslo-concurrency requires both Python 2 and Python 3
Product: [Fedora] Fedora Reporter: Tomas Orsava <torsava>
Component: python-oslo-concurrencyAssignee: hguemar
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: apevec, hguemar, mrunge, pviktori
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: 2016-06-26 15:48:44 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:
Bug Depends On:    
Bug Blocks: 1285816, 1340802    

Description Tomas Orsava 2016-06-17 09:31:25 UTC
The python2-oslo-concurrency RPM requires both Python 2 and Python 3.

Except in very special circumstances, there is no need for one package
to drag in both Python stacks. Usually, this is a packaging error: for
example, a stray "/usr/bin/python" shebang in a Python 3 package can
introduce a Python 2 dependency.

Please split your package, or remove the stray dependencies.
There is a section on shebangs in the Python RPM Porting Guide [0]
which covers this issue.

It's ok to do this in Rawhide only, however, it would be greatly
appreciated if you could push it to Fedora 24 as well.


If anything is unclear, or if you need any kind of assistance, you can
ask on IRC (#fedora-python on Freenode), or reply here. We'll be happy
to help investigating or fixing this issue!


[0] http://python-rpm-porting.readthedocs.io/en/latest/application-modules.html#are-shebangs-dragging-you-down-to-python-2



PS: It would be great if you could also change the name of the subpackage `python-oslo-concurrency-tests` to start with `python2-`, so that it follows the naming convention. You can use the tags Provides: and Obsoletes: so that basically nothing will change for the users.

Comment 1 hguemar 2016-06-26 15:48:44 UTC
Fixed in rawhide, default binary is still python2 as python3 is not yet production-ready according upstream.

Comment 2 Petr Viktorin 2016-06-27 08:55:19 UTC
Thank you, Haïkel! 

We've been tracking https://wiki.openstack.org/wiki/Python3 where oslo-concurrency is green. Is there some better place where OpenStack upstream says if Python 3 support is ready?

Comment 3 hguemar 2016-06-28 13:39:09 UTC
Sadly, no. Victor Stinner has sent recently a message on the openstack-dev mailing list tracking efforts to convert core services but it's unlikely to be finished for Newton (release schedule for late october). Python3 support is not that well-tested for the other projects.
Regardless, I'll make sure that we ship all OpenStack clients with python3 variant so that we can help detecting flaws and get them fixed upstream.

During the Tokyo Summit, vendors agreed to target Python 3.5 as the min runtime for the big jump, but it's unlikely to happen before late 2017 so for the P release (Not N, nor O).
Fedora ships with latest stable (Mitaka) versions of oslo libs and clients, and considering upstream/downstream CI, I wouldn't try Newton as they're utterly broken.

The good news is that most OpenStack clients will drop their custom binary clients to ship plugins for the generic OpenStackClient and simple python libraries. So by then, we'll just have to fix python-openstackclient to use python3 variant by default.

For now, I'm reviewing the python3 tracker and will fix/close as many tickets as possible (OpenStack or non-OpenStack just for the sake of getting good karma :) ).

Comment 4 Petr Viktorin 2016-06-29 09:06:33 UTC
Alright! Thank you for the information, and for all your hard work!