1 |
Hello, everyone. |
2 |
|
3 |
Please review the following news item. The 'xx'-es will be replaced with |
4 |
the publication date, making the deadline appropriately pub + 1 month. |
5 |
|
6 |
--- |
7 |
Title: Python 3.6 to become the default target |
8 |
Author: Michał Górny <mgorny@g.o> |
9 |
Posted: 2018-05-xx |
10 |
Revision: 1 |
11 |
News-Item-Format: 2.0 |
12 |
Display-If-Installed: dev-lang/python:3.5 |
13 |
|
14 |
On 2018-06-xx, Python 3.6 will replace Python 3.5 in the default Python |
15 |
targets for Gentoo systems. The new default targets will be: |
16 |
|
17 |
PYTHON_TARGETS="python2_7 python3_6" |
18 |
PYTHON_SINGLE_TARGET="python3_6" |
19 |
|
20 |
If you have not overriden the value of those variables on your system, |
21 |
then your package manager will want to use the new targets immediately. |
22 |
In order to prevent dependency conflicts, please clean stray packages |
23 |
and rebuild/upgrade all packages with USE flag changes after the change, |
24 |
e.g.: |
25 |
|
26 |
emerge --depclean |
27 |
emerge -1vUD @world |
28 |
emerge --depclean |
29 |
|
30 |
Please note that upgrading dependencies in place may cause some |
31 |
of the package dependencies to be temporarily missing. While this |
32 |
should not affect scripts that are already fully loaded, it may cause |
33 |
ImportErrors while starting Python scripts or loading additional |
34 |
modules (only scripts running Python 3.5 are affected). |
35 |
|
36 |
In order to improve stability of the upgrade, you may choose to |
37 |
temporarily enable both targets, i.e. set in /etc/portage/make.conf |
38 |
or its equivalent: |
39 |
|
40 |
PYTHON_TARGETS="python2_7 python3_5 python3_6" |
41 |
PYTHON_SINGLE_TARGET="python3_5" |
42 |
|
43 |
This will cause the dependencies to include both Python 3.5 and 3.6 |
44 |
support on the next system upgrade. Once all packages are updated, |
45 |
you can restart your scripts, remove the custom setting and run another |
46 |
upgrade to remove support for Python 3.5. |
47 |
|
48 |
If you would like to postpone the switch to Python 3.6, you can copy |
49 |
the current value of PYTHON_TARGETS and/or PYTHON_SINGLE_TARGET |
50 |
to /etc/portage/make.conf or its equivalent: |
51 |
|
52 |
PYTHON_TARGETS="python2_7 python3_5" |
53 |
PYTHON_SINGLE_TARGET="python3_5" |
54 |
|
55 |
If you would like to migrate your systems earlier, you can do the same |
56 |
with the new value. |
57 |
|
58 |
If you are still using Python 3.4, please consider switching to a newer |
59 |
version as it is reaching its end-of-life. The end-of-life dates |
60 |
for the currently used versions are: |
61 |
|
62 |
Python 3.4 2019-03-16 |
63 |
Python 2.7 2020-01-01 |
64 |
Python 3.5 2020-09-13 [1] |
65 |
|
66 |
[1]:https://devguide.python.org/#status-of-python-branches |
67 |
|
68 |
-- |
69 |
Best regards, |
70 |
Michał Górny |