Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev <gentoo-dev@l.g.o>
Subject: [gentoo-dev] News item v2: Python 3.7 to become the default target
Date: Tue, 21 Apr 2020 05:56:26
Message-Id: a7d5bd2854a082af4366eb209bccd894f4d04761.camel@gentoo.org
1 Hi,
2
3 Here's v2 following IRC feedback and some rereading.
4
5 Changes:
6
7 - pushed the date forward (it will be 2 weeks after publishing the news
8 item) and indicated that it may happen later.
9
10 - did some more grammar improvements.
11
12 - switched snippets to use package.use as make.conf breaks IUSE
13 defaults. Also added a little explanation about that to the end but
14 without getting into technical details.
15
16 - indicated that not all packages support py3.7.
17
18 - indicated that ~arch users may prefer py3.8.
19
20 Please review.
21
22 ---
23 Title: Python 3.7 to become the default target
24 Author: Michał Górny <mgorny@g.o>
25 Posted: 2020-04-21
26 Revision: 1
27 News-Item-Format: 2.0
28 Display-If-Installed: dev-lang/python:3.6
29
30 On 2020-05-06 (or later), Python 3.7 will replace Python 3.6 as one
31 of the default Python targets for Gentoo systems. The new default
32 values will be:
33
34 PYTHON_TARGETS="python2_7 python3_7"
35 PYTHON_SINGLE_TARGET="python3_7"
36
37 If you have not overriden these variables on your system, then your
38 package manager will switch to the new targets immediately. In order
39 to avoid dependency conflicts, please clean stray packages up
40 and rebuild/upgrade all packages with USE flag changes after the change,
41 e.g.:
42
43 emerge --depclean
44 emerge -1vUD @world
45 emerge --depclean
46
47 Please note that during the system upgrade some of the package
48 dependencies may temporarily become missing. While this should not
49 should not affect programs that are already fully loaded, it may cause
50 ImportErrors while starting Python scripts or loading additional
51 modules (only scripts running Python 3.6 are affected).
52
53 In order to improve stability of the upgrade, you may choose to
54 temporarily enable both targets, i.e. set in /etc/portage/package.use
55 or its equivalent:
56
57 PYTHON_TARGETS: python3_6 python3_7
58 PYTHON_SINGLE_TARGET: -* python3_6
59
60 This will cause the dependencies to include both Python 3.6 and 3.7
61 support whenever possible, throughout the next system upgrade. Once all
62 packages are updated, you can restart your scripts, remove the setting
63 and start another upgrade in order to cleanly remove Python 3.6.
64
65 There are still some Gentoo packages that do not support Python 3.7.
66 We will be pushing updates to these packages as time permits. However,
67 some of them will probably be removed instead.
68
69 If you would like to postpone the switch to Python 3.7, you can copy
70 the current value of PYTHON_TARGETS and/or PYTHON_SINGLE_TARGET
71 to /etc/portage/package.use or its equivalent:
72
73 PYTHON_TARGETS: -python3_7 python3_6
74 PYTHON_SINGLE_TARGET: -* python3_6
75
76 If you would like to migrate your systems earlier, you can do
77 the opposite. Note that if you are running ~arch, you may want to go
78 straight for Python 3.8 at this point.
79
80 Please note that this switch is long overdue. Python 3.6 is no longer
81 receiving bug fixes. Its planned end-of-life is 2021-12-23 but we will
82 probably remove it earlier than that. [1]
83
84 All above snippets assume using package.use to control USE flags.
85 If you still have make.conf entries for these targets, you need
86 to remove them. While using make.conf is possible, it is strongly
87 discouraged as it does not respect package defaults. The latter
88 can help you keep some of Python 3.6 packages without the need to
89 explicitly toggle flags per-package.
90
91 [1] https://devguide.python.org/#status-of-python-branches
92
93 --
94 Best regards,
95 Michał Górny

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies