Re: [gentoo-dev] [PATCH news] Add Python 3.9 news item

2021-04-30 Thread Michał Górny
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

2021-04-29 Thread Wolfgang E. Sanyer
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

2021-04-29 Thread Michał Górny
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

2021-04-29 Thread Michał Górny
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

2021-04-29 Thread Christopher Head
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

2021-04-29 Thread Ulrich Mueller
> 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

2021-04-29 Thread Michał Górny
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