AllYarnsAreBeautiful / ayab-desktop

The AYAB Software
http://ayab-knitting.com
GNU General Public License v3.0
58 stars 31 forks source link

Update to a more recent version of Python #555

Closed dl1com closed 6 months ago

dl1com commented 1 year ago

Currently, AYAB-Desktop is depending on Python 3.6, which is no longer maintained. We should evaluate to update to a more recent version of Python. Target should be 3.11, but perhaps we have to triage the complications caused by updating our dependencies (see requirements.txt) and stick to a version in between 3.6 and 3.11 for now.

t0mpr1c3 commented 1 year ago

What are the alternatives to fbs?

dl1com commented 1 year ago

What are the alternatives to fbs?

Don't know...but this might be a separate topic? I guess updating to a more recent version of Python a sensible thing to do, with or without fbs

t0mpr1c3 commented 1 year ago

The freeware version of fbs constrains us to Python 3.6

oskay commented 1 year ago

Wow. That's really not good.

Python 3.6 is past even the lifetime of security updates. There is a sense in which it's irresponsible to build, package, and distribute software based on it.

Some discussions about this issue and alternatives here: https://news.ycombinator.com/item?id=30819136

t0mpr1c3 commented 1 year ago

It isn't. But the issue has been raised a couple of times recently and I thought we had taken a decision to stick with freeware fbs for the time being.

dl1com commented 1 year ago

I continuously forget about the details of the constraints of fbs, sorry 😄 it's really a very unusual licensing model to me 🙃

So, as a soft target, in case somebody wants to try to run fbs on a higher Python version, feel free to do so. Apart from that we focus on getting AYAB 1.0 ready, although it will likely rely on Python 3.6 then.

After release of AYAB Desktop 1.0, we'll focus on the ESP32 webapp anyway. Additionally, we can look for fbs alternatives for AYAB then, so we don't need to abandon it completely (because it will become more and more tedious to rely on Python 3.6) and still can do bugfix releases.

oskay commented 1 year ago

it's really a very unusual licensing model to me

Yeah. The fbs version that supports python >3.6 is not open source.

My first reading is that even if it is technically allowed to release GPL software that has a commercial dependency, it's "worst practice" to do so-- a hobbyist wouldn't be able to make a small change to AYAB and compile a working version without purchasing a commercial license to do so.

t0mpr1c3 commented 1 year ago

My first reading is that even if it is technically allowed to release GPL software that has a commercial dependency, it's "worst practice" to do so-- a hobbyist wouldn't be able to make a small change to AYAB and compile a working version without purchasing a commercial license to do so.

From the discussion a couple of months ago, I think we can say there is universal agreement on this point.

t0mpr1c3 commented 1 year ago

So, as a soft target, in case somebody wants to try to run fbs on a higher Python version, feel free to do so. Apart from that we focus on getting AYAB 1.0 ready, although it will likely rely on Python 3.6 then.

How about 3.8? There was a security bugfix for Python 3.8 just last month. I believe it is also the base release for Ubuntu 20.04.

If we go this route we will have to revert to using a patched version of fbs. Which is fine by me.

t0mpr1c3 commented 1 year ago

Just to note -- we previously rolled back from Python 3.7 to 3.6 for fbs compatibility (#389). Python 3.7 is also past its end-of-life.

dl1com commented 1 year ago

Just to note -- we previously rolled back from Python 3.7 to 3.6 for fbs compatibility (#389). Python 3.7 is also past its end-of-life.

Oh, I see...feels a bit like groundhog day. Let's hope for the best. Did you try fbs run and freeze locally with 3.8?

t0mpr1c3 commented 1 year ago

No, I should try that on Windows and Ubuntu 20.04.

I think incremental changes are best. The further away we get from QtPy5==5.9, PyInstaller=3.4 the more problems we are likely to run into.

But it's encouraging that we didn't see any problems with Python 3.7, QtPy5==5.14.

t0mpr1c3 commented 7 months ago

Python 3.8 end of life is in October, 2024.

X-sam commented 6 months ago

Updated to 3.11 in #572