Hello,

Investigating some output issues in DNF last week I ended up
researching the theoretical possibility of moving to Python 3
there. I wrote down the main points on the DNF wiki[1]. Even
though that Python 2.7 is sufficient in every way, on a long
enough time scale everybody will migrate to Python 3 and so will
our entire packaging stack. That doesn't mean we should do it
this year or the next year but maybe we should start preparing
some kind of a plan for the transition. So to get the ball
rolling:

What I understand from what I've seen so far [2] it is not always
possible to have a particular piece of code run under both Python
2.7 and Python 3, e.g. for a program that runs under both one
usually ends up with parts like:

if const.PYTHON_3:
  ...
else:
  ...

Also, it is not possible to switch component A (DNF) depending on
component B (urlgrabber, rpm, hawkey, ...) to Python 3 until the
depended upon component has made the switch too. It is also
preferable to have any component C (Anaconda) that depends on A
be ready for the switch and not stay broken once A switches. What
I therefore think should work the best is:

1) Everyone makes his component as compatible with python 3 as
   possible without explicit version-dependent forking.

2) Make the component compatible with both Pythons just before
   all Bs and Cs are ready. (Note I would prefer staying as
   little time there as possible.)

3) Once there are are no significant users under Python 2.x
   remove the 2.x branches ("the switch").

Note there are alternatives described in [2], mentioning for
instance having separate branches for 2.7 and 3.x. At this point
I am considering (having someone) taking DNF through at least the
first step and then become smarter seeing where that leads. And
as always I am a strong believer this is not going to be as
painful as it looks right now.

Ales

[1] https://github.com/akozumpl/dnf/wiki/Python-3
[2] mainly http://python3porting.com/
_______________________________________________
Yum-devel mailing list
Yum-devel@lists.baseurl.org
http://lists.baseurl.org/mailman/listinfo/yum-devel

Reply via email to