1 |
Hi, |
2 |
|
3 |
It's finally time to move away from 3.6. The news item is roughly based |
4 |
on the one for 3.6, with some grammar fixes and removal of the EOL part. |
5 |
|
6 |
Please also note that this is the *last* call to port packages to Python |
7 |
3.7 *and* 3.8. Python 3.6 is no longer receiving bugfixes for a long |
8 |
time now, and 3.7 will stop receiving them in June. That's how far |
9 |
behind we are. I would personally prefer going straight to 3.8 if that |
10 |
was realistically possible in less than 2 years. |
11 |
|
12 |
--- |
13 |
|
14 |
Title: Python 3.7 to become the default target |
15 |
Author: Michał Górny <mgorny@g.o> |
16 |
Posted: 2020-04-19 |
17 |
Revision: 1 |
18 |
News-Item-Format: 2.0 |
19 |
Display-If-Installed: dev-lang/python:3.6 |
20 |
|
21 |
On 2020-05-04, Python 3.7 will replace Python 3.6 as one of the default |
22 |
Python target for Gentoo systems. The new default targets will be: |
23 |
|
24 |
PYTHON_TARGETS="python2_7 python3_7" |
25 |
PYTHON_SINGLE_TARGET="python3_7" |
26 |
|
27 |
If you have not overriden the value of those variables on your system, |
28 |
then your package manager will switch to the new targets immediately. |
29 |
In order to prevent dependency conflicts, please clean stray packages |
30 |
and rebuild/upgrade all packages with USE flag changes after the change, |
31 |
e.g.: |
32 |
|
33 |
emerge --depclean |
34 |
emerge -1vUD @world |
35 |
emerge --depclean |
36 |
|
37 |
Please note that upgrading dependencies in place may cause some |
38 |
of the package dependencies to be temporarily missing. While this |
39 |
should not affect scripts that are already fully loaded, it may cause |
40 |
ImportErrors while starting Python scripts or loading additional |
41 |
modules (only scripts running Python 3.6 are affected). |
42 |
|
43 |
In order to improve stability of the upgrade, you may choose to |
44 |
temporarily enable both targets, i.e. set in /etc/portage/make.conf |
45 |
or its equivalent: |
46 |
|
47 |
PYTHON_TARGETS="python2_7 python3_6 python3_7" |
48 |
PYTHON_SINGLE_TARGET="python3_6" |
49 |
|
50 |
This will cause the dependencies to include both Python 3.6 and 3.7 |
51 |
support on the next system upgrade. Once all packages are updated, |
52 |
you can restart your scripts, remove the custom setting and run another |
53 |
upgrade to remove support for Python 3.6. |
54 |
|
55 |
If you would like to postpone the switch to Python 3.7, you can copy |
56 |
the current value of PYTHON_TARGETS and/or PYTHON_SINGLE_TARGET |
57 |
to /etc/portage/make.conf or its equivalent: |
58 |
|
59 |
PYTHON_TARGETS="python2_7 python3_6" |
60 |
PYTHON_SINGLE_TARGET="python3_6" |
61 |
|
62 |
If you would like to migrate your systems earlier, you can do the same |
63 |
with the new value. |
64 |
|
65 |
Please note that the switch is long overdue. Python 3.6 is no longer |
66 |
receiving bug fixes. Its planned end-of-life is 2021-12-23 but we will |
67 |
probably remove it earlier than that. [1] |
68 |
|
69 |
[1]:https://devguide.python.org/#status-of-python-branches |
70 |
|
71 |
|
72 |
-- |
73 |
Best regards, |
74 |
Michał Górny |