Bug 1432570 - python-rosdep: python3-rosdep is missing Python 3 version of executables
Summary: python-rosdep: python3-rosdep is missing Python 3 version of executables
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: python-rosdep
Version: 27
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Rich Mattes
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: PY3PATCH-AVAILABLE PY3-EXECUTABLES
TreeView+ depends on / blocked
 
Reported: 2017-03-15 17:11 UTC by Iryna Shcherbina
Modified: 2018-05-27 17:36 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-05-27 17:36:27 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

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.


Note You need to log in before you can comment on or make changes to this bug.