Project

Profile

Help

Feature #128

Switch to Python 3

Added by Vincent Le Goff over 1 year ago. Updated 8 months ago.

Status:
Closed
Priority:
High
Category:
MUD client
Sprint/Milestone:
% Done:

100%

Company:
-
Contact person:
-
Additional contact persons:
-

Description

Let's move to Python 3!

Now that Twisted is mostly ported to Python 3, there's nothing holding us back to move to Python 3. This would have several advantages in terms of reactivity, interfacing, and portability. The drawbacks (in code and pre-set configurations) aren't too important yet, but they will increase the more we wait. So let's do it!


Checklist

History

#1 Updated by Vincent Le Goff 11 months ago

  • Status changed from Open to In Progress
  • Assignee set to Vincent Le Goff

Begin the work to port to Python 3.6.

#2 Updated by Vincent Le Goff 11 months ago

The client now is partially running on Python 3.6. However, the dependency to pycrypto, required to store character information (like username and password) could not be satisfied for Python 3.6. It will be necessary to find another library to do the job or to change encryption, although that's not an ideal solution.

#3 Updated by Vincent Le Goff 11 months ago

  • Checklist item Do a pre-set of CocoMUD code, checking interactions with dependencies set to Done

The client is now mostly stable under Python 3.6 in commit de07fb3307f04547d33a982004e19a8d7d438595.

Also, pycrypto which was used for encrypting passwords using the AES algorithm couldn't be compiled for Python 3.6. The maintainers state that this package is not maintained for Python higher than 3.3. I had to switch to pyaes instead, which preserves compatibility with the stored information.

#4 Updated by Vincent Le Goff 10 months ago

  • Sprint/Milestone set to 16

#5 Updated by Vincent Le Goff 9 months ago

The branch i128 was merged into master and mostly functional at commit f7900bcd00514b15259fac934d0fe49455a0dc27 . Bugs might subsist. Among the most notable issues:

- The shift in unicode handling still might need updating while performing file operations.
- An adequate library to play audio files wasn't yet found, although different suggestions were made and some of them are not tested yet.

#6 Updated by Vincent Le Goff 8 months ago

  • Checklist item Check the process to update, upload/download documentation and new releases set to Done

#7 Updated by Vincent Le Goff 8 months ago

  • Status changed from In Progress to Closed

Fixed in commit 3b0c82a9dbce6b6f354a29c20bca0d8040c84467. To note: some tasks (see the download task in source:src/task/download.py) may suffer from the same problem. With urllib having shifted a little in Python 3, this might need to be readjusted.

Please register to edit this issue

Also available in: Atom PDF Tracking page