Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [News item review v2] Python preference to follow PYTHON_TARGETS
Date: Sun, 24 Jan 2021 19:04:41
Message-Id: 272dbc5846f642f867f4c45683dd82f58dbf8750.camel@gentoo.org
In Reply to: Re: [gentoo-dev] [News item review v2] Python preference to follow PYTHON_TARGETS by Aisha Tammy
1 On Sun, 2021-01-24 at 10:16 -0500, Aisha Tammy wrote:
2 > On 1/24/21 7:59 AM, Michał Górny wrote:
3 > > Here's v2 with extra 'tl;dr' instructions in first para:
4 > >
5 > > ```
6 > > Title: Python preference to follow PYTHON_TARGETS
7 > > Author: Michał Górny <mgorny@g.o>
8 > > Posted: 2021-01-24
9 > > Revision: 1
10 > > News-Item-Format: 2.0
11 > >
12 > > On 2021-02-01 stable users will switch to a new method of updating
13 > > the preferred Python versions that employs the configuration update
14 > > mechanism in order to follow PYTHON_TARGETS. We will also deprecate
15 > > and stop installing app-eselect/eselect-python by default. If you wish
16 > > to use the newest Python version present in your PYTHON_TARGETS, you
17 > > only have to accept configuration changes. If you wish need
18 > > to customize the behavior, read on.
19 > >
20 > > Since 2017, /usr/bin/python and the related non-versioned symlinks
21 > > are wrapped through dev-lang/python-exec. The list of preferred Python
22 > > implementations is stored in /etc/python-exec/python-exec.conf and/or
23 > > per-program /etc/python-exec/<basename>.conf configuration files.
24 > > To preserve backwards compatibility, app-eselect/eselect-python remained
25 > > a wrapper that updated this file.
26 > >
27 > > However, this mechanism alone has proven inconvenient to end users who
28 > > had to update python-exec.conf whenever the default PYTHON_TARGETS
29 > > changed. Thanks to the fallback logic, this was not a major problem
30 > > for software installed via Gentoo packages that always ensure that
31 > > a supported implementation is used. However, users have reported that
32 > > whenever the preference for /usr/bin/python mismatched their
33 > > PYTHON_TARGETS, their custom scripts would break due to unsatisfied
34 > > dependencies. This does not follow the principle of least surprise.
35 > >
36 > > For this reason, we have decided to change the default python-exec
37 > > configuration to match PYTHON_TARGETS by default, in the eclass
38 > > preference order, that is from the newest CPython version to oldest,
39 > > with alternative Python implementations coming afterwards. This change
40 > > will be propagated via the configuration protection mechanism whenever
41 > > dev-lang/python-exec-conf is installed or rebuilt due to PYTHON_TARGETS
42 > > changes. This will permit the users to interactively confirm
43 > > the updates.
44 > >
45 > > If the new default is not correct for you, please use your preferred
46 > > configuration update tool to discard or edit the new configuration file.
47 > >
48 > > Furthermore, dev-lang/python will no longer attempt to automatically
49 > > update the Python interpreter preference, or pull in eselect-python
50 > > automatically. If you wish to continue using it, please install it
51 > > manually to ensure that it is not unmerged.
52 > >
53 > > ```
54 > >
55 >
56 > Has this change already been pushed for unstable? I am running an unstable
57 > system but I still have eselect-python, so I assume not (unless due to my side
58 > error).
59
60 dev-lang/python-exec-conf is available in ~arch already but app-
61 eselect/eselect-python is still pulled in unconditionally.
62
63
64 --
65 Best regards,
66 Michał Górny