[LyX/ next] Prepare the removal of Python 2 support

José Matos jaomatos at gmail.com
Fri May 31 11:19:53 UTC 2024


On Fri, 2024-05-31 at 11:47 +0200, Pavel Sanda wrote:
> On Fri, May 31, 2024 at 01:51:31AM +0100, José Matos wrote:
> 
> 
> By *old* LTS I meant something like 16.04/18.04.
> 
> > In October of 2026 Python 3.10 will no longer be supported even in
> > terms of security releases:
> 
> Sure, but LTS distros tend to have independent stream of important
> security patches even when upstream stopped the support.
> 

It is important to distinguish in this conversation two aspects of LTS:

* servers;
* desktop computers.

Or else with the last round of supports we will feel bounded to support
+15 year distributions. :-(

By now the experience tells me that, for example, RHEL 8 is becoming
more and more difficult to build updated graphical applications. And
most of the work is moving to RHEL 9.

Another important distinction to make here is in these arguments are if
the issues are related to the users or to the developers?

Because sometimes in the conversations they are mixed and they clearly
correspond to different concerns.

For developers the releases correspond to what exists now, while for
users the concern are the distributions that will be available when the
first stable version is released.

> > On the other hand if you want to build for older systems it is
> > possible to use new tools to build and run.
> 
> I am hesitant to push users for tinkering with python installs just
> to run lyx.

One interesting tidbit that I found when searching for this. On Fedora:

[jamatos at griffin ~]$ rpm -q --queryformat '%{SIZE}   \t%{NAME} \n'
$(rpm -qa | grep python3.10) | sort -n
33319           python3.10 
1692348         python3.10-tkinter 
32617346        python3.10-libs 
[jamatos at griffin ~]$ rpm -q --queryformat '%{SIZE}   \t%{NAME} \n'
$(rpm -qa | grep lyx) | sort -n
284894          lyx-fonts 
14937413        lyx 
63453371        lyx-common 

So that means that Python 3.10 corresponds to 33 MiB while LyX
corresponds to 75 MiB. Honestly I had no idea, I had suspicions but I
did not know. :-)

> Anyway, my breakdown would be:
> 
> LyX 2.4 requires GCC 4.9, Python 2.7/3.5, Qt 5.4 (>=5.6 suggested)
> 
> This is what I see wrt ubuntu:
> focal/20.04 (sec support till 2030): GCC 9.3, Qt 5.12, Python 3.8.2
> Older do not ship python 3 / Qt 5, end of story.
> 
> Redhat world:
> RHEL 7 is dead, Searching RHEL 8 (sec support till 2029) packages
> seems behind redhats login wall but when I look on pkgs.org (sorry if
> I mess up, not expert in redhats ecosystem) I see GCC 8.5, Qt 5.15, I
> don't see python3 packages, but when login on nearby rocky 8.9
> machine I see:
> $ python3 --version
> Python 3.6.8
> 
> 
> The lower intersection gives GCC 8.5, Qt 5.12, Python 3.6, if, as you
> say, is easy to update python3 in rhel, maybe 3.8 then.

I can work with 3.8 with the walrus operator, that is also quite
helpful for our code:
https://docs.python.org/3/whatsnew/3.8.html#assignment-expressions

One advantage of 3.9 for our code is the support of Type Hinting
Generics in Standard Collections:
https://docs.python.org/3/whatsnew/3.9.html#type-hinting-generics-in-standard-collections

This will help us to better document our code and to advantage of
static analysis to find problems.

> All in all, if we have incentive, we could bump some deps for master
> right away, kill python 2.7, but python 3.10 seems premature for 
> lyx 2.5 in my opinion.

> As said it will break even on machine I am still using for active
> development and that system did not even switch to LTS (yet :).
> Not a good sign...

As I have told you above I am a lot more sensitive to this argument
than to say that the reasons not change are related to our users when
we have not a reasonable estimate for release.

> Pavel

-- 
José Abílio


More information about the lyx-devel mailing list