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

Please don't remove support early for python versions when possible #714

Closed
jkterry1 opened this issue Dec 15, 2020 · 3 comments
Closed

Comments

@jkterry1
Copy link
Contributor

Hey, I'm the maintainer of PettingZoo, one of the larger libraries that depends on python-chess.

When you released 1.0.0, you removed support for Python 3.6. PettingZoo inherently has to support python versions through their full life cycle for many reasons. The two big ones are that the deep learning libraries take a very long time to add new versions (e.g. PyTorch only recently added 3.8), and because because people often use our library on older versions of linux that ship with older python versions (e.g. ubuntu 18.04, which ships with python 3.6). That last one is because of people using shared academic GPU clusters that aren't updated super often, and because Nvidia often takes a long time to add CUDA support to the new releases of Linux, and when they do they do it with new CUDA versions, which in turn take deep learning libraries in turn take a long time to support. All this means that we have to have full python 3.6 support for at long as it's officially supported (about another year), or longer.

When you released 1.0.0, you removed support for python 3.6. Because of this, we can't depend on a newer version of python chess than 0.31.4 for another year, which isn't ideal.

@jkterry1
Copy link
Contributor Author

Also, does 0.31.4 fully support 3.9? It looks like it doesn't be I'm not certain.

@niklasf
Copy link
Owner

niklasf commented Dec 15, 2020

Thanks, that's a useful perspective.

Older versions were not tested on Python 3.9, but I think they should still work. test.py has pretty much full coverage, so running it should catch any potential issue.

The reason to abandon 3.6 was the chess.engine module. It requires some newer asyncio features, so that I had to implement workarounds for Python 3.6 that relied on implementation details of asyncio. Those were/are fine, but I couldn't really commit to supporting that for v1.0.0. So it was either dropping 3.6 or postponing v1.0.0 for another year.

In the future, I don't see myself dropping Python versions before their end of life, although I like to keep an eye on the things that would enable (#463, #464, ...).

@jkterry1
Copy link
Contributor Author

Thanks for the fast response.

But ya, as long as no game logic bugs following 0.31.4 are found, it shouldn't be a huge problem. It's just something I wanted you to be aware of.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants