Port pykolab to Python 3
Open, NormalPublic


Python 2 is being phased out in all major distros; it's time to jump on the Python 3 bandwagon.

I started working on this a few months back, but Python's dynamic nature and the lack of self-contained unit tests for pykolab make it somewhat hard to move forward without the fear of possibly breaking something. So all I have for now is a bunch of commits that are presumably a step in the right direction but still need proper review and testing.

Since Phabricator doesn't seem to support the forking of Git repositories, I have pushed my commits to GitHub:


Ticket Type

Event Timeline

sicherha created this task.Thu, Jan 6, 10:46 AM
sicherha raised the priority of this task from Wishlist to Normal.
sicherha added subscribers: mollekopf, machniak.

Note that all changes I have made so far should™ be backward-compatible with Python >= 2.6, so they wouldn't necessitate any changes to our existing packaging.

Could you create differential(s)? It should be possible to do this having patches via Or just by using arc diff on your git clone.

Submitted D3190, which has ended up being sort of... bulky. There are several commits in this differential; does Phabricator offer no option to review these commits individually like Git{Hu,La}b do, without the author having to create a separate differential per commit?

I have abandoned D3190 and submitted the individual commits in D3223, D3226, D3229, D3232, D3235, D3241 and D3244.

Thanks for the excellent work @sicherha!

Thanks for the review! I tried to arc land the changes but seem to lack permission to do so:

Exception: You do not have permission to push to this repository.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Apparently I need to be added to the PyKolab Developers group to be able to land changes.

Apparently I need to be added to the PyKolab Developers group to be able to land changes.