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

Make Python 3.7 the minimal required Python version for the worker? #2143

Open
vdbergh opened this issue Dec 11, 2024 · 13 comments
Open

Make Python 3.7 the minimal required Python version for the worker? #2143

vdbergh opened this issue Dec 11, 2024 · 13 comments

Comments

@vdbergh
Copy link
Contributor

vdbergh commented Dec 11, 2024

These days it is strongly recommended that Python packages are properly type annotated so that static type checkers such as mypy can catch bugs at compile time. However it is virtually impossible to work with type annotations in Python <= 3.6 - even if they are not checked.

For example the crucial from __future__ import annotations which makes it possible to use forward references in type annotations only exists in Python >= 3.7. So I believe it is time to move on, and raise the minimal required Python version in the worker.

@Disservin
Copy link
Member

Only a few workers from noob are using 3.6.8 not sure how easy it is to upgrade for him

@vdbergh
Copy link
Contributor Author

vdbergh commented Dec 11, 2024

@noobpwnftw Any comments?

@ppigazzini
Copy link
Collaborator

ppigazzini commented Dec 18, 2024

https://devguide.python.org/versions/
Status of python versions, 3.8 end of life since October 2024, so if we are dropping the support for 3.6 better to consider the move to 3.9 or higher after asking to the user base affected from the change. With pyenv, conda etc it should be easy to have an up-to-date python on Linux workers. Windows/msys2 workers can be updated easily running the update script.

@vdbergh
Copy link
Contributor Author

vdbergh commented Dec 18, 2024

You won't hear any objections from me...

@vdbergh
Copy link
Contributor Author

vdbergh commented Dec 19, 2024

We need to be able to contact @noobpwnftw ...

@vdbergh
Copy link
Contributor Author

vdbergh commented Dec 23, 2024

What actually triggered this issue is that I enhanced the OpenLock library (the locking library used by the worker) with type annotations. See https://www.cantate.be/openlock for documentation. Sadly OpenLock is now no longer compatible with Python 3.6, so the latest version cannot be used by the current worker.

@peregrineshahin
Copy link
Contributor

We need to be able to contact @noobpwnftw ...

I wonder when will the project grow and become serious enough to the point where it would stop waiting clients to comply instead of begging them to update.

@peregrineshahin
Copy link
Contributor

plot twist there is no hope for that to happen with this re-assuring behavior (on the wrong) that even copy pastes python packages inside our repo.

@vdbergh
Copy link
Contributor Author

vdbergh commented Dec 26, 2024

We need to be able to contact @noobpwnftw ...

I wonder when will the project grow and become serious enough to the point where it would stop waiting clients to comply instead of begging them to update.

Well if somebody provides a sizable fraction of the Fishtest resources he cannot be simply called a client IMHO...

@vdbergh
Copy link
Contributor Author

vdbergh commented Dec 26, 2024

plot twist there is no hope for that to happen with this re-assuring behavior (on the wrong) that even copy pastes python packages inside our repo.

I don't understand what you are trying to say here...

@peregrineshahin
Copy link
Contributor

There is a simple solution, whoever wants to contribute will not stop contributing just because you want to update the code to better form.
it's a simple equation, about who should fix issues on their part, I don't see the project named as noobtest.
the respect should be mutual.
Whoever contributes to the project even with big resources is not your or my boss.
To this day, changing stuff on your side and forcing the matters hasn't been tried to see if anyone will comply afterwards, even though the OpenBench instances does it with success on getting an interaction.

Are we really grasping at straws just so HW contributors doesn't leave, by harming the project itself?
I don't think that's even how any HW contributor thinks.

@vdbergh
Copy link
Contributor Author

vdbergh commented Dec 26, 2024

In principle I agree with you but I believe that it is best to handle such issues in a friendly way - if that's at all possible...

@Disservin
Copy link
Member

Disservin commented Dec 26, 2024

other instances very much dependent on a few hw contributor's and their engagement with the instance.. it's just that other instances are much more shortlived or setup fairly recently, meaning they don't have any legacy worker versions to care about..

I recently came across xmake (make alternative) and saw that it is able to pull any required toolchain, which could potentially be nice to use for Stockfish, since we can manage the used toolchain without any user interactivity https://xmake.io/#/toolchain/remote_toolchain (just some thoughts)

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

4 participants