Re: [gentoo-dev] [PATCH news] Add Python 3.9 news item
On Thu, 2021-04-29 at 21:07 -0400, Wolfgang E. Sanyer wrote: > On Thu, Apr 29, 2021 at 5:00 PM Michał Górny wrote: > > > > On Thu, 2021-04-29 at 14:44 +0200, Ulrich Mueller wrote: > > > > > > > > On Thu, 29 Apr 2021, Michał Górny wrote: > > > > > > > +Title: Python 3.9 to become the default target on 2021-06-01 > > > > > > Title is longer than the maximum allowed by GLEP 42 (50 chars). > > > > > > > [...] > > > > > > > +If you have PYTHON_TARGETS or PYTHON_SINGLE_TARGET declared > > > > +in make.conf, it is strongly recommended to remove the declarations > > > > +and use package.use as presented above. Use of make.conf to set > > > > flags > > > > +is strongly discouraged as it does not respect package defaults. > > > > > > These sentences are somewhat redundant with each other, at least the > > > "strongly recommended" / "strongly discouraged" part. > > > > Done and done. The second sentence is meant to explain why it is > > discouraged. > > > > -- > > Best regards, > > Michał Górny > > > > Is this strongly discouraged across-the-board, or strictly for this > python stuff? The same issue applies to all uses of USE_EXPAND, though not all of them are using package defaults today. But if you move one of them, why not move them all? > How strongly is it discouraged? The handbook doesn't seem to mention > anything about discouraging this practice, and indeed seems to > encourage it: > https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Base#Configuring_the_USE_variable > The times when Gentoo had great documentation are long gone. Handbook is barely maintained these days. -- Best regards, Michał Górny
Re: [gentoo-dev] [PATCH news] Add Python 3.9 news item
On Thu, Apr 29, 2021 at 5:00 PM Michał Górny wrote: > > On Thu, 2021-04-29 at 14:44 +0200, Ulrich Mueller wrote: > > > > > > > On Thu, 29 Apr 2021, Michał Górny wrote: > > > > > +Title: Python 3.9 to become the default target on 2021-06-01 > > > > Title is longer than the maximum allowed by GLEP 42 (50 chars). > > > > > [...] > > > > > +If you have PYTHON_TARGETS or PYTHON_SINGLE_TARGET declared > > > +in make.conf, it is strongly recommended to remove the declarations > > > +and use package.use as presented above. Use of make.conf to set > > > flags > > > +is strongly discouraged as it does not respect package defaults. > > > > These sentences are somewhat redundant with each other, at least the > > "strongly recommended" / "strongly discouraged" part. > > Done and done. The second sentence is meant to explain why it is > discouraged. > > -- > Best regards, > Michał Górny > Is this strongly discouraged across-the-board, or strictly for this python stuff? How strongly is it discouraged? The handbook doesn't seem to mention anything about discouraging this practice, and indeed seems to encourage it: https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Base#Configuring_the_USE_variable
Re: [gentoo-dev] [PATCH news] Add Python 3.9 news item
On Thu, 2021-04-29 at 09:08 -0700, Christopher Head wrote: > On Thu, 29 Apr 2021 13:43:41 +0200 > Michał Górny wrote: > > > +If you wish to use a safer approach to the migration and temporarily > > +preserve the support for Python 3.7 and Python 3.8 simultaneously, > > +set /etc/portage/package.use to: > > This should be talking about preserving support for 3.8 while adding > 3.9, right? (likewise the next handful of lines) > > > +You can also switch to Python 3.8 earlier by setting: > > Likewise, 3.9 here? > > > +The Python 3.7 cleanup requires that Python 3.7 is removed from > > 3.8 here? Good catch. I've fixed all the versions now, I think. -- Best regards, Michał Górny
Re: [gentoo-dev] [PATCH news] Add Python 3.9 news item
On Thu, 2021-04-29 at 14:44 +0200, Ulrich Mueller wrote: > > > > > > On Thu, 29 Apr 2021, Michał Górny wrote: > > > +Title: Python 3.9 to become the default target on 2021-06-01 > > Title is longer than the maximum allowed by GLEP 42 (50 chars). > > > [...] > > > +If you have PYTHON_TARGETS or PYTHON_SINGLE_TARGET declared > > +in make.conf, it is strongly recommended to remove the declarations > > +and use package.use as presented above. Use of make.conf to set > > flags > > +is strongly discouraged as it does not respect package defaults. > > These sentences are somewhat redundant with each other, at least the > "strongly recommended" / "strongly discouraged" part. Done and done. The second sentence is meant to explain why it is discouraged. -- Best regards, Michał Górny
Re: [gentoo-dev] [PATCH news] Add Python 3.9 news item
On Thu, 29 Apr 2021 13:43:41 +0200 Michał Górny wrote: > +If you wish to use a safer approach to the migration and temporarily > +preserve the support for Python 3.7 and Python 3.8 simultaneously, > +set /etc/portage/package.use to: This should be talking about preserving support for 3.8 while adding 3.9, right? (likewise the next handful of lines) > +You can also switch to Python 3.8 earlier by setting: Likewise, 3.9 here? > +The Python 3.7 cleanup requires that Python 3.7 is removed from 3.8 here? -- Christopher Head pgp_6ql8obmSt.pgp Description: OpenPGP digital signature
Re: [gentoo-dev] [PATCH news] Add Python 3.9 news item
> On Thu, 29 Apr 2021, Michał Górny wrote: > +Title: Python 3.9 to become the default target on 2021-06-01 Title is longer than the maximum allowed by GLEP 42 (50 chars). > [...] > +If you have PYTHON_TARGETS or PYTHON_SINGLE_TARGET declared > +in make.conf, it is strongly recommended to remove the declarations > +and use package.use as presented above. Use of make.conf to set flags > +is strongly discouraged as it does not respect package defaults. These sentences are somewhat redundant with each other, at least the "strongly recommended" / "strongly discouraged" part. signature.asc Description: PGP signature
[gentoo-dev] [PATCH news] Add Python 3.9 news item
Signed-off-by: Michał Górny --- .../2021-04-29-python3-9.en.txt | 92 +++ 1 file changed, 92 insertions(+) create mode 100644 2021-04-29-python3-9/2021-04-29-python3-9.en.txt diff --git a/2021-04-29-python3-9/2021-04-29-python3-9.en.txt b/2021-04-29-python3-9/2021-04-29-python3-9.en.txt new file mode 100644 index 000..29fdc9d --- /dev/null +++ b/2021-04-29-python3-9/2021-04-29-python3-9.en.txt @@ -0,0 +1,92 @@ +Title: Python 3.9 to become the default target on 2021-06-01 +Author: Michał Górny +Posted: 2021-04-29 +Revision: 1 +News-Item-Format: 2.0 +Display-If-Installed: dev-lang/python:3.7 +Display-If-Installed: dev-lang/python:3.8 + +We are planning to switch the default Python target of Gentoo systems +on 2021-06-01, from Python 3.8 to Python 3.9. If you have not changed +the values of PYTHON_TARGETS or PYTHON_SINGLE_TARGET, the change will +have immediate effect on your system and the package manager will try +to switch automatically on the next upgrade following the change. +If you did change the values, prefer a safer approach or have problems +with the update, read on. + +Please note that the default upgrade method switches packages to the new +Python versions as they are rebuilt. This means that all interdependent +packages have to support the new version for the upgrade to proceed, +and that some programs may temporarily fail to find their dependencies +throughout the upgrade (although programs that are already started +are unlikely to be affected). + + +If you wish to avoid changing Python targets at this moment, you can +force the old targets by setting your /etc/portage/package.use to e.g.: + +*/* PYTHON_TARGETS: -* python3_8 +*/* PYTHON_SINGLE_TARGET: -* python3_8 + +This will enforce Python 3.8 as the current target choice and block +any future updates. However, please note that this solution will only +be suitable for a few more months and you will eventually need to +perform the migration. + + +If you wish to use a safer approach to the migration and temporarily +preserve the support for Python 3.7 and Python 3.8 simultaneously, +set /etc/portage/package.use to: + +*/* PYTHON_TARGETS: -* python3_7 python3_8 +*/* PYTHON_SINGLE_TARGET: -* python3_7 + +Afterwards, rebuild your system with emerge's --changed-use option or +equivalent. This will cause your packages to gain Python 3.8 support +while preserving Python 3.7 support whenever possible. Then, change +the second line to: + +*/* PYTHON_SINGLE_TARGET: -* python3_8 + +This will switch packages that can not support two Python versions +simultaneously, to use Python 3.8. Rebuild again. Finally, switch +the first line to the final form: + +*/* PYTHON_TARGETS: -* python3_8 + +The next --changed-use rebuild will remove Python 3.7 support from your +packages. + + +You can also switch to Python 3.8 earlier by setting: + +*/* PYTHON_TARGETS: -* python3_8 +*/* PYTHON_SINGLE_TARGET: -* python3_8 + +If you choose to follow this or the previous approach, you may want to +remove the package.use overrides after the switch or just leave them +in place to protect your system from the next automatic upgrade +of Python. + + +The Python 3.7 cleanup requires that Python 3.7 is removed from complete +dependency trees in batch. If some of the installed packages using +an older Python version are not triaged for the upgrade, the package +manager will throw dependency conflicts. This makes it important that +the upgrade is carried via a --deep --changed-use @world upgrade, +as well as that any stray packages are removed prior to it, e.g.: + +emerge --depclean +emerge -1vUD @world +emerge --depclean + + +By the time of the switch, it is quite probable that Python 3.10 will +already be available in ~arch Gentoo. Users wishing a more bleeding +edge experience may wish to switch to python3_10 target instead. + + +If you have PYTHON_TARGETS or PYTHON_SINGLE_TARGET declared +in make.conf, it is strongly recommended to remove the declarations +and use package.use as presented above. Use of make.conf to set flags +is strongly discouraged as it does not respect package defaults. -- 2.31.1