Blocked by: internetarchive/infogami#56, internetarchive/infogami#50
As discussed in #846 there is a lot of code on the Internet Archive Code base that is currently written in Python 2 and deprecated for Python 3.
The following link tells about the key differences from Python 2 to Python 3.
EDIT: Updated as per @cclauss's suggestions
At the risk of stating the obvious, priority should likely go to identifying those Python 2 features that both a) will break in Python 3 and b) are used in OL.
Thanks for creating a separate issue to track this. The task is definitely low priority, but neither easy, nor a good beginners project, so I've removed both of those labels.
Things like this are time sensitive, so 3-4 year old random blog post is not a good source of information. For planning purposes, things that are important are things like when required libraries will all support Python 3, when they'll drop Python 2 support, what the latest migration tooling looks like, etc.
BUT, since it's low priority, we've got more important things to think about for the immediate term.
Full agreement w/ @tfmorris on all fronts.
Thanks for organizing an issue for this, as eventually we'll need to figure out the path to maintain infogami
.
Hmm, there are "priorities" and then there are "priorities". What's important may not be urgent, and vice versa. I'd say this one is important but not urgent. Ignored long enough it will surely cause breakage.
@LeadSongDog Who are you disagreeing with? What would you like to see changed vis à vis priorities?
@tfmorris Not disagreeing with you exactly, but I'm saying that one-dimensional priorities lead to crisis management. Once something difficult is labeled as low priority it goes unattended or gets closed until it causes breakage and becomes urgent. Better to not priority it at all?
There is a Travis CI job to track our progress on this now, thanks to PR #1273
Hi, I'm new to OpenLibrary, but this looks like something I'd be interested in doing. Do you mind if I proceed with this, albeit slowly, even though this isn't a 'good first issue'?
NOTE: This list was moved to the top of this issue:
Also, I would suggest that we change the title of this issue to "__Run on both Python 2 and Python 3__" because it is clearly best practice to have a codebase that operates on both _before_ removing Python 2 support. 423 days until Python 2 end of life.
@cclauss with your permission, can I update your message above now that the title has been changed and the checklist has been updated? (to avoid 2 checklists getting out of sync)
Other than Infogami, any additional followup steps you can recommend would be extremely appreciated :bowing_man:
Thank you for being such a driving force in making this happen!
Feel free to make the edits that make sense to you. Let’s focus on getting Infogami to a point where it no longer blocks the Travis test. My focus has been elsewhere but hopefully I can reengage in the weeks to come.
Updated our task list above to celebrate 100 days until Python 2 end of life.
From the chatter here and the slack, I'm labeling this as a work in progress. However, there is no assignee. I'm assuming @cclauss and @salman-bhai would be the best candidates as they are the team leads for Python3.
@cclauss Is that emoticon a yes to being assignee? It looks like you and @hornc are responsible for nearly all the PRs in the breakdown of tasks.
Do we want to rehash the specific remaining steps / blockers for Python3?
I'm not sure why the priority got reduced. This doesn't need to be done by Jan. 1, but it does need to be done soon.
The main blocker right now is infogami, although getting it ported might reveal issues remaining other parts of the system. Rather than trying to track each infogami issue separately here, it might make more sense to point to an infogami top level Python 3 epic issue.
Looks like we got a few more months reprieve. At the end of December, the Python Software Foundation pushed the retirement date out (again!) to April 2020.
Yes but this project is the last major project that I know of that has not yet already gotten over the line.
The final Python 2 release has been made: https://stackoverflow.blog/2020/04/23/the-final-python-2-release-marks-the-end-of-an-era/ and it will receive no more updates of any kind, including critical security bugs.
Every day from now on (since a few months ago really) makes for increased exposure to unpatched vulnerabilities compromising OpenLibrary production systems.
Time to close this one! Thanks to everyone for helping to get us to Python 3!!
Most helpful comment
Thanks for creating a separate issue to track this. The task is definitely low priority, but neither easy, nor a good beginners project, so I've removed both of those labels.
Things like this are time sensitive, so 3-4 year old random blog post is not a good source of information. For planning purposes, things that are important are things like when required libraries will all support Python 3, when they'll drop Python 2 support, what the latest migration tooling looks like, etc.
BUT, since it's low priority, we've got more important things to think about for the immediate term.