Replies: 7 comments 19 replies
-
Thanks for bringing this up @Borda. We would really appreciate your help in bumping Python to minimum version 3.9. Please feel free to create pull requests. |
Beta Was this translation helpful? Give feedback.
-
DO NOT WANT!!! Some of us are stuck on python 3.8. Systems that work perfectly fine have no need to upgrade their python system just because python devs can't be bothered to support it anymore. What does end of lifecycle even mean for python??? Not like it needs critical fixes much. Apple still ships with python 2.7 by default (3 also available but not default). How about nicegui requires the version of python with features it needs, instead of some arbitrary cutoff? If you want to recommend version 3.9+, sure. No problem. But don't break things that work just because you don't like a digit somewhere. The endless upgrade treadmill is the bane of modern computing. |
Beta Was this translation helpful? Give feedback.
-
I'm all in favor of warnings. It would be great for nicegui to output a console message that says "warning: python 3.8 is no longer being updated. consider upgrading to a supported python version." What I object to is nicegui refusing to run when python < 3.9. It's not any library's business what python version the user chooses to run. Library doesn't know the user's environment or limitations. Sometimes unsupported versions are ok. It's the user's choice to make, no one else's. Version requirements should only be for technical reasons, such as: python 3.9 introduced feature X which nicegui really needs, and there are no suitable alternatives to X in lower versions. |
Beta Was this translation helpful? Give feedback.
-
Thanks, everybody, for this interesting discussion! We didn't think this would be such a hot topic. But apparently Python 3.8 is still widely used. I think, we can agree that NiceGUI would need to drop support for Python 3.8 if there were solid reasons to do so. At the moment, when looking into the code base, we don't think there are any. Some type hints here and there could be simplified, Let's use this opportunity to discuss critical reasons for which it would be necessary to move on to Python 3.9. What would be the decisive factor for dropping an old Python version? |
Beta Was this translation helpful? Give feedback.
-
Stumbled across https://pypistats.org/packages/nicegui Apparently 3.8 still accounts for quite a few percentages of downloads. Although it's in the single-digit, it's not nothing. In fact, the download percentage of 3.8 is round the same ballpark of magnitude as 3.13 (quite surprising to learn). On some days 3.8 downloads are more than 3.13, even. Let's keep this in the back of our minds when we want to make decisions of any kind. |
Beta Was this translation helpful? Give feedback.
-
Was scrolling through GitHub and the internet, when I had 3 important realizations: Past poll on Python 3.7There was a poll in #982 for Python 3.7. For that, the results were overwhelmingly in favor (81%) of timely deprecation of Python 3.7 when the End-Of-Life hits. Besides the daily download percentage and global usage percentage, Let's bear this poll in mind for 3.8, for:
Which OSes held on to which Python version?Talking about major OSes and their Python compatibility: Python 3.8 is a watershed version for Windows 7, where on Windows acceptance on building Python from scratch is much lower, though there is unofficial build up to 3.13. We should also bear this in mind.
a. @Alyxion By "Windows Vista notebook which would also still support Python 3.9", do you include unofficial builds? I can't find an official build of Python 3.9 which supports Windows 7 let alone Windows Vista. b. @ed2050 Though it's likely a Yes, I want to confirm if you are on Windows, or speaking on behalf of Windows users. I'd like to know if we can accept the compromise, if we have (albeit from someone else) unofficial build of Python up to 3.13 for Windows 7. Action statistics from the main VS my branch, and what we can learn from themConsider Action runs of the main branch, https://github.com/zauberzeug/nicegui/actions/metrics/performance?sort=failureRate&tab=jobs, actually the failure rate of Python 3.12 (6%) is highest for some reason, then 3.9 (3%), then 3.11 (3%), as of writing. We know @falkoschindler* and @rodja* always check their code against a working type-checker. Meanwhile consider Action runs of my branch https://github.com/evnchn/nicegui/actions/metrics/performance?sort=failureRate&tab=jobs, it's 3.8 (22%), 3.9 (21%) and 3.10 (16%), and I let GitHub Copilot free-style the code, push and check the action results and correct my code from there
Overall, though, since as new as Python 3.13 is available unofficially for Windows 7, and I'd imagine Linux (as old as Bullseye) people are fine with compiling CPython themselves & they have the backport of 3.10 at the very least, that I would personally recommend not only dropping 3.8 for the upcoming 3.0 release due some time, but potentially going one step further by dropping Python 3.9 as well, aligning with NumPy and other Python 3.10+ libraries, so that:
Action items:
*mention is sort of intentional because I'd like you two to check if what I am writing here is correct. This feels like big deal. |
Beta Was this translation helpful? Give feedback.
-
Note that there are two Dependabot alerts that don't seem to be resolvable for Python 3.8:
Both require updating to urllib3 version 2.5+, but version 2.3 dropped Python 3.8 support. Also, consolidating pip and poetry might require Python 3.9: #4872 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Description
Since python 3.8 is not actively maintained any more, would it be good idea to bump it to 3.9? I am happy to help and likely split it into two PRs, one with package and requirement update and second with liner update (which will be likely larger diff).
Update: my apologies for starting this big argument...
Beta Was this translation helpful? Give feedback.
All reactions