Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deprecate future #5303

Open
a-detiste opened this issue Jan 24, 2024 · 12 comments
Open

deprecate future #5303

a-detiste opened this issue Jan 24, 2024 · 12 comments
Labels
task Something that isn't an issue or an enhancement, but still needs to be done.

Comments

@a-detiste
Copy link
Contributor

futurewill be removed from Debian anytime soon and won't be in Ubuntu 24.04
sixwill linger for a few years more.

If python 2+3 compatibility is still needed, please move what could be to six library instead

I can provide a PR

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1059934

$ grep ' future' -r | grep 'import '
launcher/game/choose_theme.rpy:    import future.utils
module/setup.py:import future
module/generate_styles.py:from future import standard_library
renpy/common/00updater.rpy:    import future.utils
renpy/loadsave.py:from future.utils import reraise
renpy/compat/__init__.py:import future.standard_library
renpy/compat/__init__.py:import future.utils
renpy/compat/__init__.py:from future.builtins import chr
renpy/execution.py:from future.utils import reraise
renpy/audio/audio.py:from future.utils import raise_
distribute.py:import future.standard_library
distribute.py:import future.utils
@renpytom renpytom added this to the Python 3 Required milestone Jan 24, 2024
@renpytom
Copy link
Member

We can do this after Ren'Py drops Python 2 support (after May).

@renpytom renpytom added the task Something that isn't an issue or an enhancement, but still needs to be done. label Jan 24, 2024
@a-detiste
Copy link
Contributor Author

OK ... I'm waiting for a 8.2.1 ...

@renpytom
Copy link
Member

Almost certainly 8.3 or 8.4.

@a-detiste
Copy link
Contributor Author

a-detiste commented Jan 24, 2024

I mean I'm waiting for a 8.2.1 where I would patch-out future and replace renpy/compat/__init__.py by a stub.

@a-detiste
Copy link
Contributor Author

Hinting me some games that actually require this compatibility would help me greatly

@renpytom
Copy link
Member

Ren'Py will still support Python 2 until May, so we can't patch it out until then.

@a-detiste
Copy link
Contributor Author

a-detiste commented Jan 24, 2024

I know and I understand your release planing, I mean it will be patched out in Debian (and Ubuntu etc...)

I even propose to replace future with six to have smallest diff

@renpytom
Copy link
Member

Sure, you can probably patch it out soon. You may also have problems with the distutils deprecation - I hope to get that taken care of in 8.3, if possible. (I may also merge pygame_sdl2 into Ren'Py.)

@eli-schwartz
Copy link

@renpytom the issue is not actually about python2 at all.

The issue is that the renpy project made the decision some time back to replace the use of six with renpy.compat and future. Unfortunately, future doesn't actually work with python 3.12 which means that renpy cannot be installed on systems that use python 3.12, which is rather problematic since the entire original point of using future was supposed to be enabling python3 to work and now it turns out that that's not particularly reliable.

What would be appreciated is a commitment to repeal this mistake, and switch back from future to six. The six library supports both python 2.7 and 3.12 (and 3.13 if you need that).

@renpytom
Copy link
Member

renpytom commented Feb 2, 2024

I don't plan to make that change, as future was the key to enabling a port to Python 3 that didn't make me want to vomit, like six did.

There seems to be a Python 3.12 compatible version of future at PythonCharmers/python-future#632 . That being said, I will probably drop future entirely after May.

There are also several Python 3.12 constructs that Ren'Py doesn't analyze correctly yet, so right now it's not a supported version.

@Gouvernathor
Copy link
Member

future doesn't actually work with python 3.12 which means that renpy cannot be installed on systems that use python 3.12

I think you mean that renpy-build cannot be installed, and renpy cannot be built, under those systems, right ?
Creators and players should still be fine on any platform since we ship python and our modules in, and from may on we can get rid of both modules and use py3-only features instead.

@lanodan
Copy link
Contributor

lanodan commented Mar 3, 2024

@renpytom

There seems to be a Python 3.12 compatible version of future at PythonCharmers/python-future#632 .

Doesn't seems to actually work as the testsuite of future-1.0.0 doesn't passes with 3.12. (You can see the errors at PythonCharmers/python-future#635 )
But yeah, it's a bit moot if RenPy itself doesn't supports py3.12 anyway.

@Gouvernathor

Creators and players should still be fine on any platform since we ship python and our modules in, and from may on we can get rid of both modules and use py3-only features instead.

Creators yeah, players not really given that old build of renpy don't always work. And Linux builds aren't always made available together with the games.
Meanwhile RenPy currently allows to play pretty much any RenPy 8.x-7.x game (not sure how that will fare with removal of future though).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
task Something that isn't an issue or an enhancement, but still needs to be done.
Projects
None yet
Development

No branches or pull requests

5 participants