Farama-Foundation / stable-retro

Retro games for Reinforcement Learning
https://stable-retro.farama.org/
MIT License
163 stars 34 forks source link

Python 3.10 Support #2

Closed onaclov2000 closed 1 year ago

onaclov2000 commented 1 year ago

Issue summary

The readme mentions only supporting python 3.6,7,8.

I have a windows build that supports 3.10. It might be nice to get that upgraded in this repo.

https://github.com/TwitchAIRacingLeague/retro/releases/tag/v0.9.0

The docker file https://github.com/TwitchAIRacingLeague/retro/blob/v0.9.0/docker/Dockerfile builds a windows (native) 3.10 for Windows 10 at least (that's what I've been using at this time).

I know I'm not using the 'latest' stable-retro as my basis, however I don't imagine any of the changes should prevent building.

System information

Status

pseudo-rnd-thoughts commented 1 year ago

Thanks, we would be really interested in adding 3.10 support but looking at the release, I'm a bit confused about how the changes add support for 3.10

onaclov2000 commented 1 year ago

https://github.com/TwitchAIRacingLeague/retro/blob/v0.9.0/docker/Dockerfile#L59

-DPYTHON_INCLUDE_DIR=/usr/include/python3.10

I built with python3.10 libraries, and I can run using python3.10 on my windows machine currently.

Sorry I didn't include that added context.

onaclov2000 commented 1 year ago

I haven't tried building for Linux, but assume it will be sufficiently similar.

pseudo-rnd-thoughts commented 1 year ago

Ok, I'm glad that it was nothing more complex. We are interested in adding wheels for all common operating systems, we should say that Gym and gymnasium don't explicitly support Windows but we try to support it when we can

onaclov2000 commented 1 year ago

As part of this I'd suggest updating this page: https://github.com/Farama-Foundation/stable-retro/blob/master/docs/developing.rst

There are references to windows. I would suggest we update this to point folks to the docker file.

onaclov2000 commented 1 year ago

Before closing this as we did merge in my changes. Did we want to support compiling all the versions of python we'd like to support (for windows)? This update only compiles for 3.10 in windows.

I suppose additionally I should/need to add 3.10 to compile support for linux (and mac?) but I haven't done that, maybe worthwhile keeping this issue open until we sort that out.

pseudo-rnd-thoughts commented 1 year ago

If we have CI testing for 3.10 then I think it is fine

onaclov2000 commented 1 year ago

What do you mean if we have CI testing for 3.10 it should be fine? I am not sure if that question is in regards to mine about adding support for other versions of python. I am largely meaning, if we reach a point where pip install stable-retro is an option for windows users, we might want other versions available. (I can't recall if we just upload .whl files to pypi or what, it's been a while).

I also might just not know how it works well enough.

pseudo-rnd-thoughts commented 1 year ago

I thought you were talking about CI not wheels, yes, we should investigate building wheels in CI. In gymnasium we have the following code that will upload all of the build files to PyPI on github releases - https://github.com/Farama-Foundation/Gymnasium/blob/main/.github/workflows/build-publish.yml

zbeucler2018 commented 1 year ago

Python3.10 on Linux works. And I think we dropped support for python3.6

pseudo-rnd-thoughts commented 1 year ago

Python 3.10 support work, we are missing 3.11 due to c++ errors