Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [News item review v4] Python preference to follow PYTHON_TARGETS
Date: Sat, 30 Jan 2021 12:13:58
Message-Id: 695d24f507381eac83b78b3402faf224a35c65e8.camel@gentoo.org
In Reply to: Re: [gentoo-dev] [News item review v4] Python preference to follow PYTHON_TARGETS by Philip Webb
1 On Tue, 2021-01-26 at 01:39 -0500, Philip Webb wrote:
2 > 210125 Michał Górny wrote:
3 > > Changed eselect-python dep removal date to July 2021.
4 > > Not sure if there's a reason to display it to stable users today,
5 > > or delay until the stable request is actually filed.
6 >
7 > I've been using Gentoo since 2003 , happily enough most of the time ;
8 > I'm an ordinary desktop user without any special requirements.
9 > Python versions have been one of the reasons for the exceptions.
10 > I finally managed to remove 2.7 from my system yesterday.
11 >
12 > I do appreciate your work in this area,
13 > but I can make no sense of the news item below.
14
15 Thank you for your kind words. However, I don't really know if I can
16 help you. The news item is supposed to tell what's new. If I were to
17 keep explaining the basics, it'd become too long (and people are already
18 complaining that my items are getting too long). I think this falls
19 into 'if you don't know whether you need to read on, don't'.
20
21 >
22 > > Title: Python preference to follow PYTHON_TARGETS
23 > > Author: Michał Górny <mgorny@g.o>
24 > > Posted: 2021-01-24
25 > > Revision: 1
26 > > News-Item-Format: 2.0
27 > >
28 > > On 2021-02-01 stable users will switch to a new method of updating
29 > > the preferred Python versions that employs the configuration update
30 > > mechanism in order to follow PYTHON_TARGETS.
31 >
32 > What are "preferred Python versions" ? Why are they multiple, not one ?
33
34 It's the order in which the Python version used to run stuff are used.
35 There are multiple because not all impls are actually supported by
36 everything -- so if your top preference doesn't work, it goes for
37 the second top, etc.
38
39 > What is the "configuration update mechanism",
40
41 CONFIG_PROTECT / etc-update / dispatch-conf.
42
43 > how does it "follow PYTHON_TARGETS" & why are they both needed ?
44
45 I think this is explained below -- it generates python-exec.conf based
46 on PYTHON_TARGETS. Both are needed because we can't technically combine
47 both without putting a lot of effort to implement stuff that's going to
48 be slow and unreliable.
49
50 >
51 > > We will also deprecate app-eselect/eselect-python,
52 > > and it will stop being installed by default after 2021-07-01.
53 >
54 > Why has there been this 3rd method of managing Python versions ?
55 > Why might it still be needed by users ?
56
57 Historical reasons, as always. Backwards compatibility.
58
59 > > If you wish to use the newest Python version present
60 > > in your PYTHON_TARGETS, you only have to accept configuration changes.
61 >
62 > Why doesn't Python behave like most other packages,
63 > ie use the latest installed version ? Why does PYTHON_TARGETS exist ?
64 > Why are the "targets" ? -- it sounds as if they may not be achieved.
65
66 Because Python versions are not ABI-compatible, and old packages are
67 usually broken with new major Python releases. It takes a lot of
68 testing, patching, bumping to support it.
69
70 > What are the "configuration changes" ?
71 > Do you mean those in /etc/python-exec ?
72
73 Yes.
74
75 >
76 > > If you wish to customize the behavior, read on.
77 >
78 > I have no wish to customise Python. I don't use it to develop programs ;
79 > it is installed only as a requirement for other packages, eg Portage.
80 > I do use it for a small script to work as a CLI calculator.
81 > Given this, I won't comment on the rest of the news item,
82 > but it makes even less sense to me than the section above.
83
84 Then you don't have to do anything.
85
86 --
87 Best regards,
88 Michał Górny