Python 2 deprecation
- Imperf3kt
- Lemma-Class Veteran
- Posts: 3794
- Joined: Mon Dec 14, 2015 5:05 am
- itch: Imperf3kt
- Location: Your monitor
- Contact:
Python 2 deprecation
I know PyTom has previously stated that he does not wish to move Ren'Py to Python 3, but with most package managers actively removing Python 2, what will this mean for Ren'Py?
Python 2 has already been extended by 5 years with support to be fully removed by January 2020.
https://github.com/python/peps/blob/master/pep-0373.txt
https://www.python.org/dev/peps/pep-0404/
https://pythonclock.org/
https://python3statement.org/
Python 2 has already been extended by 5 years with support to be fully removed by January 2020.
https://github.com/python/peps/blob/master/pep-0373.txt
https://www.python.org/dev/peps/pep-0404/
https://pythonclock.org/
https://python3statement.org/
Warning: May contain trace amounts of gratuitous plot.
pro·gram·mer (noun) An organism capable of converting caffeine into code.
Current project: GGD Mentor
Twitter
pro·gram·mer (noun) An organism capable of converting caffeine into code.
Current project: GGD Mentor
- namastaii
- Eileen-Class Veteran
- Posts: 1350
- Joined: Mon Feb 02, 2015 8:35 pm
- Projects: Template Maker for Ren'Py, What Life
- Github: lunalucid
- Skype: Discord: lunalucid#1991
- Soundcloud: LunaLucidMusic
- itch: lunalucid
- Location: USA
- Contact:
Re: Python 2 deprecation
I know that you can only find python 2 in renpy files but.. renpy can still read python 3, can it not? I don't fully know or understand but I was pretty sure that syntax such as .format() was only introduced in python 3?
edit* ah I see that was back ported to 2.7
edit* ah I see that was back ported to 2.7
- Imperf3kt
- Lemma-Class Veteran
- Posts: 3794
- Joined: Mon Dec 14, 2015 5:05 am
- itch: Imperf3kt
- Location: Your monitor
- Contact:
Re: Python 2 deprecation
Nope, it currently runs on 2.7
with no intention of moving to Python 3 in order to keep backward compatibility.
Warning: May contain trace amounts of gratuitous plot.
pro·gram·mer (noun) An organism capable of converting caffeine into code.
Current project: GGD Mentor
Twitter
pro·gram·mer (noun) An organism capable of converting caffeine into code.
Current project: GGD Mentor
- Kia
- Eileen-Class Veteran
- Posts: 1040
- Joined: Fri Aug 01, 2014 7:49 am
- Deviantart: KiaAzad
- Discord: Kia#6810
- Contact:
Re: Python 2 deprecation
I do support moving to python 3, even if it means starting from the scratch, showing an image and a text to start with then adding the features on top. it would be an opportunity to build it better.
I know the compatibility is a huge issue, but the python 2 version doesn't have to change, a python 3 version can be started and exist alongside the old version.
The question is: would Tom consider creating a new repository and start us with the basics?
I know the compatibility is a huge issue, but the python 2 version doesn't have to change, a python 3 version can be started and exist alongside the old version.
The question is: would Tom consider creating a new repository and start us with the basics?
- isobellesophia
- Miko-Class Veteran
- Posts: 979
- Joined: Mon Jan 07, 2019 2:55 am
- Completed: None
- Projects: Maddox and Friends! (AI Teacher friend), Friendly Universities! (Soon)
- Organization: Friendly Teachers series
- Deviantart: SophBelle
- itch: Child Creation
- Location: Philippines, Mindanao
- Contact:
Re: Python 2 deprecation
I agree, Python 2 has been inside RenPy in a long time, i dont think it is really going to shut down Python 2, i guess when PyTom released Python 3, i am not sure if the RenPy launcher will gonna update the launcher itself if the Python 2 is removed. (It's gonna change alot isn't?)
- Imperf3kt
- Lemma-Class Veteran
- Posts: 3794
- Joined: Mon Dec 14, 2015 5:05 am
- itch: Imperf3kt
- Location: Your monitor
- Contact:
Re: Python 2 deprecation
Well, the only thing that will happen should renpy stay with Python 2 is that it won't be available in most Linux repositories, you'll have to source it elsewhere or compile it yourself.
It won't affect Windows or Mac.
It won't affect Windows or Mac.
Warning: May contain trace amounts of gratuitous plot.
pro·gram·mer (noun) An organism capable of converting caffeine into code.
Current project: GGD Mentor
Twitter
pro·gram·mer (noun) An organism capable of converting caffeine into code.
Current project: GGD Mentor
- PyTom
- Ren'Py Creator
- Posts: 16096
- Joined: Mon Feb 02, 2004 10:58 am
- Completed: Moonlight Walks
- Projects: Ren'Py
- IRC Nick: renpytom
- Github: renpytom
- itch: renpytom
- Location: Kings Park, NY
- Contact:
Re: Python 2 deprecation
I've never said this. I plan to support Python 3 - probably Python 2 in parallel with Python 3 for a few years, at least. I don't support sloppy ports that give up Python 2 compatibility to make Python3. That being said, there are other things that are higher priority. It's not like Python 2 will stop working, or there is a security boundary we need to worry about.
I wouldn't support some other project that calls itself Ren'Py. That being said, the current codebase should be able to be made Python 3 compatible with a month or so of work. (The open source NX port runs on python 3, but it isn't backwards compatible the way I'd like it to be.)
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom(When was the last time you backed up your game?)
Software > Drama • https://www.patreon.com/renpytom
- SleepKirby
- Veteran
- Posts: 255
- Joined: Mon Aug 09, 2010 10:02 pm
- Projects: Eastern Starlight Romance, Touhou Mecha
- Organization: Dai-Sukima Dan
- Location: California, USA
- Contact:
Re: Python 2 deprecation
For those who don't know, there are a lot of Python projects (on PyPI for example) which support Python 2 and 3 simultaneously on their latest version. To clarify, 'support' for Python 2 and 3, in Ren'Py's context, would mean that:
Once six takes care of that, a project like Ren'Py would use 'text_type' instead of 'str' or 'unicode', thus making that particular aspect of the Ren'Py code work on both Python 2 and 3. And so on.
So, using tools like six, it's absolutely not necessary to drop Python 2 support in order to support Python 3.
That said, there are benefits to dropping Python 2 eventually: Python 3 will add more and more convenient features which don't have an equivalent in Python 2. And having to support both Python 2 and 3 does add a bit of overhead to the code; for example, developers have to remember to use six's imports instead of the Python built-in names. So eventually, when the backward compatibility demand for Python 2 dies down, it should make sense to drop 2.
As PyTom indicated, the reason many other Python projects are being quicker to drop 2 is that their target applications - websites, for example - could end up with serious security holes if they continue to use software which no longer receives security patches. Thus, the demand for Python 2 compatibility in said applications would be a lot lower. Compare a website to a PC game you bought in the 2000s - that game's software packages are almost certainly no longer supported, but playing the game isn't much of a security risk unless you're using its network features.
- The Python version that runs when your game runs can be either Python 2 or 3. Presumably, Ren'Py would have to make the Python version an option, defined in the launcher or something.
- Your Ren'Py game's code can be written to support only Python 2, or only Python 3, and it should still work (provided that the aforementioned version option is selected correctly).
Code: Select all
if PY3:
string_types = str,
integer_types = int,
class_types = type,
text_type = str
...
else:
string_types = basestring,
integer_types = (int, long)
class_types = (type, types.ClassType)
text_type = unicode
...
So, using tools like six, it's absolutely not necessary to drop Python 2 support in order to support Python 3.
That said, there are benefits to dropping Python 2 eventually: Python 3 will add more and more convenient features which don't have an equivalent in Python 2. And having to support both Python 2 and 3 does add a bit of overhead to the code; for example, developers have to remember to use six's imports instead of the Python built-in names. So eventually, when the backward compatibility demand for Python 2 dies down, it should make sense to drop 2.
As PyTom indicated, the reason many other Python projects are being quicker to drop 2 is that their target applications - websites, for example - could end up with serious security holes if they continue to use software which no longer receives security patches. Thus, the demand for Python 2 compatibility in said applications would be a lot lower. Compare a website to a PC game you bought in the 2000s - that game's software packages are almost certainly no longer supported, but playing the game isn't much of a security risk unless you're using its network features.
Re: Python 2 deprecation
I was wondering if there have been any updates on this?
I think the issue is less about security and more about quality of life and possibly performance. Third-party packages are also starting to drop support for Python 2 (or never had it in the first place) and I think there are definitely Python 3 features that would benefit Ren'Py users. I can think of a few off the top of my head:
- dict preserves key insertion order
- f-string literals
- typing
- dataclasses - I've seen a lot of Ren'Py projects that create classes just for data storage!
- singledispatch and lru_cache
I think the issue is less about security and more about quality of life and possibly performance. Third-party packages are also starting to drop support for Python 2 (or never had it in the first place) and I think there are definitely Python 3 features that would benefit Ren'Py users. I can think of a few off the top of my head:
- dict preserves key insertion order
- f-string literals
- typing
- dataclasses - I've seen a lot of Ren'Py projects that create classes just for data storage!
- singledispatch and lru_cache
- PyTom
- Ren'Py Creator
- Posts: 16096
- Joined: Mon Feb 02, 2004 10:58 am
- Completed: Moonlight Walks
- Projects: Ren'Py
- IRC Nick: renpytom
- Github: renpytom
- itch: renpytom
- Location: Kings Park, NY
- Contact:
Re: Python 2 deprecation
I'm working on it. The new renpy-build systems was created so that I'll be able to build Ren'Py for Python 3, and 7.4 will be able to support that python2+python3 intersection. Once 7.4 is out, I'm planning to have Ren'Py 7.x that supports Python 2, and Ren'Py 8.x that supports Python 3.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom(When was the last time you backed up your game?)
Software > Drama • https://www.patreon.com/renpytom
Re: Python 2 deprecation
That sounds great! Looking forward to it!
Re: Python 2 deprecation
Hopefully this means that linux repos might still work.
Re: Python 2 deprecation
Any updates on this?
Looks like a ton of work done daily but no release yet...hopefully soon?
Looks like a ton of work done daily but no release yet...hopefully soon?
- PyTom
- Ren'Py Creator
- Posts: 16096
- Joined: Mon Feb 02, 2004 10:58 am
- Completed: Moonlight Walks
- Projects: Ren'Py
- IRC Nick: renpytom
- Github: renpytom
- itch: renpytom
- Location: Kings Park, NY
- Contact:
Re: Python 2 deprecation
While I don't give estimates, my current thinking is that once 7.4 is out (the prerelease is about to come out), the next release will be both the Python 2 based Ren'Py 7.5, and the Python 3 based Ren'Py 8.0. But that could change.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom(When was the last time you backed up your game?)
Software > Drama • https://www.patreon.com/renpytom
Who is online
Users browsing this forum: No registered users