Bug 1024806 - python-decoratortools: Support Python 3
Summary: python-decoratortools: Support Python 3
Alias: None
Product: Fedora
Classification: Fedora
Component: python-decoratortools
Version: rawhide
Hardware: Unspecified
OS: Unspecified
Target Milestone: ---
Assignee: Luke Macken
QA Contact: Fedora Extras Quality Assurance
Depends On:
Blocks: 1024805
TreeView+ depends on / blocked
Reported: 2013-10-30 13:17 UTC by Miro Hrončok
Modified: 2016-09-20 02:45 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2013-10-30 22:06:17 UTC
Type: Bug

Attachments (Terms of Use)

Description Miro Hrončok 2013-10-30 13:17:21 UTC
Hi, we would like to use Python 3 on the default installation instead of Python 2 on Fedora 22.


While this package is not in minimal buildroot, it belongs to fedora-packager stack. We would like to switch to Python 3 there as well.

The goal here is, that at least for F22 you should provide python3- prefixed subpackage.

Please, help us update to Python 3 flawlessly.

Check if upstream already support Python 3, if yes, use it and add the support to the package.

If upstream doesn't support Python 3 yet, encourage it to do so by sending patches and offering your help.

When upstream is dead or unwilling to support Python 3, say so and we can solve the problem together.

Chances are, that you ARE the upstream. In that case, everything is easier, just do it yourself.

There is a table on wiki, that should list your package. Chances are, that you can see an upstream link that covers the problem. Anyway, please update the table with information you know.


I offer my help with this task, so if you have no idea, how to work on this, or it is just not your priority, don't hesitate to ask for help.

(As you've already realized, this is a bulk text, so if something is not quite exact about your package, sorry for that, just ask)

Comment 1 Toshio Ernie Kuratomi 2013-10-30 21:36:19 UTC
Researched this a little this morning:

Strategy: Porting to Python3:

* Upstream does not support python3 at the moment.
* There's a thread in March from a person who was attempting to port peak-rules (whose dependency chain included decoratortools) to python3.
  : http://www.eby-sarna.com/pipermail/peak/2013-March/thread.html
  * They got hung up on unittests (peak-rules unittests) not passing
  * Their approach was to run 2to3 on the code and then manually fix remaining errors.  Their approach doesn't look like it will run on both python2 and python3.
  : https://bitbucket.org/Alzakath/peak-py3/src/56f051cad0eebfacb226f28d80195c65c21d44da/DecoratorTools-1.8?at=default
  * Upstream's stated goal is to bring decorators to python-2.3 so that will almost certainly make it harder to write python3 code that is also compatible with the range of supported python releases.

Strategy: Port mock to not use decoratortools:

* mock uses python-decoratortools in five locations in one file.
  : py/mockbuild/trace_decorator.py

Four of those are in unittests.  Those uses could likely be replaced with python-decorator which does have an upstream python3 version: http://micheles.googlecode.com/hg/decorator/documentation3.html

Shifting to python-decorator will change the minimum required  python version from python2.3 to python2.4 and require some minor changes to the code.

I would recommend porting mock as the better path here.

Comment 2 Miro Hrončok 2013-10-30 22:03:35 UTC
Seems reasonable.

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