-
Notifications
You must be signed in to change notification settings - Fork 7
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
Due to manylinux
deprecations, drop support for Python versions <= 3.6
#39
Comments
Why 3.6 specifically? (eg. as opposed to <= 3.7 ) Is there more than the "supported" status of manylinux images? I am reluctant to drop support for py2.7.
How so? Is it worth trying to distinguish between doing a build, and uploading the resulting wheel? To my mind, the dynamic nature of python means if it isn't tested, then assuming it is broken will save time since it eventually will be. This would mean updating |
The main reason behind this was down to the oldest currently supported
Can I ask why you are reluctant to drop py2.7?
For clarification, are you suggesting we still do the builds to test these older versions of Python, but just don't upload the wheels to PyPi? And then just stating in the |
For the reference I'm still using py2.7 because py3 really broke backward compatibility and it is hard, sometimes very hard, to port large applications from py2 to py3. |
Hi @navytux , I understand your situation but we can't keep supporting py2.7 forever. At the end of the day, it has been well over 4 years since py2.7 was fully deprecated, so there's been plenty of time to start looking into the upgrades. I also know the pain with updating scripts to py3 (we have many old packages around Diamond Light Source I have manually been updating), but the pay-off is worth it; Neater scripts, better performance, type hinting.... You would obviously still be able to use the older versions of |
@OCopping, thanks for feedback. While CPython dropped py2 support, PyPy does still support both py3 and py2 as of today - see e.g. this recent announcement https://pypy.org/posts/2024/08/pypy-v7317-release.html . In my view it is a clear indicator that py2 is still being used and supported at least by some people. Also unfortunately while there are indeed many good things in py3, it did break compatibility in major ways with respect to strings, and, in turn, it did break its documented promise that "The pickle serialization format is guaranteed to be backwards compatible across Python releases". That promise was there from 2001 (see python/cpython@f595fd975da6#diff-87dd7a103ad224116646b52862b9b744e9158c5e977fb098839e5f6d4dd2f62fR85), but loading string pickle data saved by py2 does not generally work which affects projects in around ZODB in major ways. I have a solution for that in the works (https://lab.nexedi.com/nexedi/pygolang/-/merge_requests/21), but my main point with respect to setuptools_dso is this: In my view whether to keep support for py2.7 or not is a matter of cost. If it only adds some small overhead, then continuing to support py2.7 is worth it as there are clear signs that it is still being used. However if supporting py2.7 adds some non-small cost, then it could be understandable the desire to drop support for it. In my view, in the context of setuptools_dso, continuing providing support for py2.7 is likely not hard. Kirill |
@OCopping I propose the following conditions for ending py2.7 support:
I can't predict when 1) will happen. Maybe tomorrow, maybe 10 years. As for 2) please call out if you suspect a py2.7 specific issue with a PR. I hope that @navytux or myself will be able to help within a reasonable time. |
I propose we finally drop support for Python versions <= 3.6.
The argument for this is that now all
manylinux
piparch images that support Python <= 3.6 have been deprecated (as seen in https://github.com/pypa/manylinux), so supporting these is becoming untenable. This includesmanylinux1
andmanylinux2010
, where the remaining non-deprecated and non-EOLmanylinux
images (manylinux2014
andmanylinux_x_y
) only support from Python 3.7 and above.The text was updated successfully, but these errors were encountered: