Bug 1432570

Summary: python-rosdep: python3-rosdep is missing Python 3 version of executables
Product: [Fedora] Fedora Reporter: Iryna Shcherbina <ishcherb>
Component: python-rosdepAssignee: Rich Mattes <richmattes>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 27CC: jberan, logans, mhroncok, pviktori, richmattes
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: 2018-05-27 17:36:27 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:
Bug Depends On:    
Bug Blocks: 1312032, 1432186    

Description Iryna Shcherbina 2017-03-15 17:11:12 UTC
The Python 3 subpackage python3-rosdep is missing executables available in the Python 2 subpackage.

According to the Fedora Packaging guidelines for Python [0], if a Python package that supports Python 3 installs executables into /usr/bin,  then either both Python versions of the executables should be packaged, or only the Python 3 version, depending on the functionality they provide.
(Note the "should": having Python 2-only executables is permitted, but strongly discouraged.)

Is it intentional for this particular package?

In case it is not intentional, please provide a Python 3 version of executable, or you can just switch to Python 3 if the functionality is the same regardless of the Python version. The guide for porting Python-based RPMs is available here [1] and you may refer to it for more instructions.

It's ok to do this in Rawhide only, however, it would be greatly
appreciated if you could push it to Fedora 26 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 the issue!

[0] https://fedoraproject.org/wiki/Packaging:Python#Avoiding_collisions_between_the_python_2_and_python_3_stacks
[1] http://python-rpm-porting.readthedocs.io/

Comment 1 Jan Kurik 2017-08-15 08:30:28 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 27 development cycle.
Changing version to '27'.

Comment 2 Jan Beran 2017-08-30 12:28:57 UTC
I created a Pagure PR that fixes the missing Python 3 version of executables:

https://src.fedoraproject.org/rpms/python-rosdep/pull-request/1

May I ask to review and make the new package?

Thanks.

Comment 3 Jan Beran 2017-09-18 13:27:34 UTC
Hello Rich, please, may I ask for your feedback?

Comment 4 Miro Hrončok 2017-10-12 13:26:14 UTC
I don't know what rosdep is, but is there a user facing difference between the Python 2 and Python 3 executables? Because if it isn't, the Python 2 executables should go away.

Comment 5 Jan Beran 2017-10-13 11:47:49 UTC
Hi Miro, thanks for your review, the updated patch is here: https://src.fedoraproject.org/rpms/python-rosdep/pull-request/2

Comment 6 Rich Mattes 2017-10-14 16:57:21 UTC
Is  "python_provide" on rawhide set up such that installing "python-rosdep" from dnf  will install python3-rosdep?  Do we need to add an obsoletes python-rosdep < x.y.z to python3-rosdep to ensure that python3-rosdep will be installed on distro upgrade?

I don't mind switching over to python3 by default, but the binaries are the important part of the package and we need to make sure that the upgradepath ensures that the binaries don't get removed.

Comment 7 Miro Hrončok 2017-10-14 20:01:20 UTC
(In reply to Rich Mattes from comment #6)
> Is  "python_provide" on rawhide set up such that installing "python-rosdep"
> from dnf  will install python3-rosdep?

Not yet (and still not for a couple of releases). BTW see https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3

> Do we need to add an obsoletes
> python-rosdep < x.y.z to python3-rosdep to ensure that python3-rosdep will
> be installed on distro upgrade?

If that's desired, than yes, but see bellow.

> I don't mind switching over to python3 by default, but the binaries are the
> important part of the package and we need to make sure that the upgradepath
> ensures that the binaries don't get removed.

In that case, the preferred way is to switch to python3 only and drop the python2 package completely. Appropriate Provides and Obsoletes need to be added to ensure clean upgrade path.

Comment 8 Jan Beran 2018-01-18 13:57:55 UTC
Hello Rich,

may I ask about your feedback to Miro's answer? Would be the patch [1] sufficient for you?

Note, we have explicitly added Robot Operating System Packages Group [2] in Python 3 Porting Database for Fedora to monitor a progress of ROS packages in Python 3. I would be able to help with other "mispackaged" packages as well to make them green.

[1] https://src.fedoraproject.org/rpms/python-rosdep/pull-request/2
[2] http://fedora.portingdb.xyz/grp/ros/

Comment 9 Jan Beran 2018-03-19 09:29:04 UTC
Hello Rich,

I created the updated Pagure PR that fixes the missing Python 3 version of executables:

https://src.fedoraproject.org/rpms/python-rosdep/pull-request/4

May I ask to review and make the new package?

Comment 10 Rich Mattes 2018-05-27 17:36:27 UTC
Looks good, merged and built in rawhide.