public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] [PATCH news] Add Python 3.9 news item
@ 2021-04-29 11:43 Michał Górny
  2021-04-29 12:44 ` Ulrich Mueller
                   ` (3 more replies)
  0 siblings, 4 replies; 21+ messages in thread
From: Michał Górny @ 2021-04-29 11:43 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 .../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 0000000..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 <mgorny@gentoo.org>
+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



^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [gentoo-dev] [PATCH news] Add Python 3.9 news item
  2021-04-29 11:43 [gentoo-dev] [PATCH news] Add Python 3.9 news item Michał Górny
@ 2021-04-29 12:44 ` Ulrich Mueller
  2021-04-29 21:00   ` Michał Górny
  2021-04-29 16:08 ` Christopher Head
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 21+ messages in thread
From: Ulrich Mueller @ 2021-04-29 12:44 UTC (permalink / raw
  To: Michał Górny; +Cc: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 604 bytes --]

>>>>> 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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 507 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [gentoo-dev] [PATCH news] Add Python 3.9 news item
  2021-04-29 11:43 [gentoo-dev] [PATCH news] Add Python 3.9 news item Michał Górny
  2021-04-29 12:44 ` Ulrich Mueller
@ 2021-04-29 16:08 ` Christopher Head
  2021-04-29 21:00   ` Michał Górny
  2021-04-29 21:01 ` [gentoo-dev] [PATCH news v2] " Michał Górny
  2021-05-02 22:04 ` [gentoo-dev] [PATCH news v3] " Michał Górny
  3 siblings, 1 reply; 21+ messages in thread
From: Christopher Head @ 2021-04-29 16:08 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 573 bytes --]

On Thu, 29 Apr 2021 13:43:41 +0200
Michał Górny <mgorny@gentoo.org> 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

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [gentoo-dev] [PATCH news] Add Python 3.9 news item
  2021-04-29 12:44 ` Ulrich Mueller
@ 2021-04-29 21:00   ` Michał Górny
  2021-04-30  1:07     ` Wolfgang E. Sanyer
  0 siblings, 1 reply; 21+ messages in thread
From: Michał Górny @ 2021-04-29 21:00 UTC (permalink / raw
  To: gentoo-dev

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




^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [gentoo-dev] [PATCH news] Add Python 3.9 news item
  2021-04-29 16:08 ` Christopher Head
@ 2021-04-29 21:00   ` Michał Górny
  0 siblings, 0 replies; 21+ messages in thread
From: Michał Górny @ 2021-04-29 21:00 UTC (permalink / raw
  To: gentoo-dev

On Thu, 2021-04-29 at 09:08 -0700, Christopher Head wrote:
> On Thu, 29 Apr 2021 13:43:41 +0200
> Michał Górny <mgorny@gentoo.org> 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




^ permalink raw reply	[flat|nested] 21+ messages in thread

* [gentoo-dev] [PATCH news v2] Add Python 3.9 news item
  2021-04-29 11:43 [gentoo-dev] [PATCH news] Add Python 3.9 news item Michał Górny
  2021-04-29 12:44 ` Ulrich Mueller
  2021-04-29 16:08 ` Christopher Head
@ 2021-04-29 21:01 ` Michał Górny
  2021-04-30  0:50   ` Sam James
  2021-05-02 22:04 ` [gentoo-dev] [PATCH news v3] " Michał Górny
  3 siblings, 1 reply; 21+ messages in thread
From: Michał Górny @ 2021-04-29 21:01 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 .../2021-04-29-python3-9.en.txt               | 93 +++++++++++++++++++
 1 file changed, 93 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 0000000..3075d72
--- /dev/null
+++ b/2021-04-29-python3-9/2021-04-29-python3-9.en.txt
@@ -0,0 +1,93 @@
+Title: Python 3.9 to become the default on 2021-06-01
+Author: Michał Górny <mgorny@gentoo.org>
+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.8 and Python 3.9 simultaneously,
+set /etc/portage/package.use to:
+
+    */* PYTHON_TARGETS: -* python3_8 python3_9
+    */* PYTHON_SINGLE_TARGET: -* python3_8
+
+Afterwards, rebuild your system with emerge's --changed-use option or
+equivalent.  This will cause your packages to gain Python 3.9 support
+while preserving Python 3.8 support whenever possible.  Then, change
+the second line to:
+
+    */* PYTHON_SINGLE_TARGET: -* python3_9
+
+This will switch packages that can not support two Python versions
+simultaneously, to use Python 3.9.  Rebuild again.  Finally, switch
+the first line to the final version:
+
+    */* PYTHON_TARGETS: -* python3_9
+
+The next --changed-use rebuild will remove Python 3.8 support from your
+packages.
+
+
+You can also switch to Python 3.9 earlier by setting:
+
+    */* PYTHON_TARGETS: -* python3_9
+    */* PYTHON_SINGLE_TARGET: -* python3_9
+
+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.8 cleanup requires that Python 3.8 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.
+However, this is currently discouraged on stable as it will require
+unmasking multiple ~arch packages as  they gain Python 3.10 support.
+
+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 discouraged as it does not respect package defaults.
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [gentoo-dev] [PATCH news v2] Add Python 3.9 news item
  2021-04-29 21:01 ` [gentoo-dev] [PATCH news v2] " Michał Górny
@ 2021-04-30  0:50   ` Sam James
  2021-04-30  7:23     ` Joonas Niilola
                       ` (2 more replies)
  0 siblings, 3 replies; 21+ messages in thread
From: Sam James @ 2021-04-30  0:50 UTC (permalink / raw
  To: gentoo-dev



> On 29 Apr 2021, at 22:01, Michał Górny <mgorny@gentoo.org> wrote:
> 
> Signed-off-by: Michał Górny <mgorny@gentoo.org>
> ---
> .../2021-04-29-python3-9.en.txt               | 93 +++++++++++++++++++
> 1 file changed, 93 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 0000000..3075d72
> --- /dev/null
> +++ b/2021-04-29-python3-9/2021-04-29-python3-9.en.txt
> @@ -0,0 +1,93 @@
> +Title: Python 3.9 to become the default on 2021-06-01
> 

Thanks for working on this. I kept meaning to do one for 3.8 and then 3.9 got so close
that I felt a bit daft doing it.

> +
> +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.

(Add a new line here).

> +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).
> +
> +

I’d consider numbering or marking with a bullet point or ‘-‘ each of
the possible options, in order of likely usefulness. So, we’d do e.g.

1) If you’ve not set anything, just upgrade as normal and then depclean.

2) In order to have both Python implementations enabled temporarily for safety ,…

[…]

But this isn’t required. It’s just about making it easier for people to see
what they need to do, and not misread it and then do silly things because
they just copied and pasted the stuff which looked right (it happens).

Let’s put all of the key information at the beginning, then the
configurability/tweaking can be later on.

> +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.8 and Python 3.9 simultaneously,
> +set /etc/portage/package.use to:
> +
> +    */* PYTHON_TARGETS: -* python3_8 python3_9
> +    */* PYTHON_SINGLE_TARGET: -* python3_8
> +
> +Afterwards, rebuild your system with emerge's --changed-use option or
> +equivalent.  This will cause your packages to gain Python 3.9 support
> +while preserving Python 3.8 support whenever possible.  Then, change
> +the second line to:
> +
> +    */* PYTHON_SINGLE_TARGET: -* python3_9
> +
> +This will switch packages that can not support two Python versions
> +simultaneously, to use Python 3.9.  Rebuild again.  Finally, switch
> +the first line to the final version:
> +
> +    */* PYTHON_TARGETS: -* python3_9
> +
> +The next --changed-use rebuild will remove Python 3.8 support from your
> +packages.
> +
> +
> +You can also switch to Python 3.9 earlier by setting:
> +
> +    */* PYTHON_TARGETS: -* python3_9
> +    */* PYTHON_SINGLE_TARGET: -* python3_9
> +
> +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.
> +

“It is especially important you do not forget IF you choose to add this,
because it interferes with the natural rolling-with-the-defaults."

> +
> +The Python 3.8 cleanup requires that Python 3.8 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
> +

Let’s put this right at the beginning.

> +
> +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.
> +However, this is currently discouraged on stable as it will require
> +unmasking multiple ~arch packages as  they gain Python 3.10 support.

I was in two minds about keeping this, but it’s useful to give people an idea
of what’s coming in the future.

> +
> +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 discouraged as it does not respect package defaults.

Let’s put this towards the beginning and also note that people should, in general,
not really need to set any PYTHON_TARGETS at all, other than for where packages
are lagging for having their support updated.



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [gentoo-dev] [PATCH news] Add Python 3.9 news item
  2021-04-29 21:00   ` Michał Górny
@ 2021-04-30  1:07     ` Wolfgang E. Sanyer
  2021-04-30  7:49       ` Michał Górny
  0 siblings, 1 reply; 21+ messages in thread
From: Wolfgang E. Sanyer @ 2021-04-30  1:07 UTC (permalink / raw
  To: gentoo-dev

On Thu, Apr 29, 2021 at 5:00 PM Michał Górny <mgorny@gentoo.org> 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


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [gentoo-dev] [PATCH news v2] Add Python 3.9 news item
  2021-04-30  0:50   ` Sam James
@ 2021-04-30  7:23     ` Joonas Niilola
  2021-05-03 18:03       ` Sam James
  2021-04-30  7:52     ` Michał Górny
  2021-05-02 21:46     ` Michał Górny
  2 siblings, 1 reply; 21+ messages in thread
From: Joonas Niilola @ 2021-04-30  7:23 UTC (permalink / raw
  To: gentoo-dev


[-- Attachment #1.1: Type: text/plain, Size: 887 bytes --]



On 30.4.2021 3.50, Sam James wrote:
>> On 29 Apr 2021, at 22:01, Michał Górny <mgorny@gentoo.org> wrote:
>>
>> +
>> +
>> +You can also switch to Python 3.9 earlier by setting:
>> +
>> +    */* PYTHON_TARGETS: -* python3_9
>> +    */* PYTHON_SINGLE_TARGET: -* python3_9
>> +
>> +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.
>> +
> “It is especially important you do not forget IF you choose to add this,
> because it interferes with the natural rolling-with-the-defaults."
>

No offense, but your suggestion isn't an improvement here :P maybe the
2nd part (after ,) makes sense and should be added, but the first part
of that sentence is a bit hard to read.

-- juippis



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 618 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [gentoo-dev] [PATCH news] Add Python 3.9 news item
  2021-04-30  1:07     ` Wolfgang E. Sanyer
@ 2021-04-30  7:49       ` Michał Górny
  0 siblings, 0 replies; 21+ messages in thread
From: Michał Górny @ 2021-04-30  7:49 UTC (permalink / raw
  To: gentoo-dev

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 <mgorny@gentoo.org> 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




^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [gentoo-dev] [PATCH news v2] Add Python 3.9 news item
  2021-04-30  0:50   ` Sam James
  2021-04-30  7:23     ` Joonas Niilola
@ 2021-04-30  7:52     ` Michał Górny
  2021-05-02 21:46     ` Michał Górny
  2 siblings, 0 replies; 21+ messages in thread
From: Michał Górny @ 2021-04-30  7:52 UTC (permalink / raw
  To: gentoo-dev

On Fri, 2021-04-30 at 01:50 +0100, Sam James wrote:
> 
> > On 29 Apr 2021, at 22:01, Michał Górny <mgorny@gentoo.org> wrote:
> > 
> > Signed-off-by: Michał Górny <mgorny@gentoo.org>
> > ---
> > .../2021-04-29-python3-9.en.txt               | 93 +++++++++++++++++++
> > 1 file changed, 93 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 0000000..3075d72
> > --- /dev/null
> > +++ b/2021-04-29-python3-9/2021-04-29-python3-9.en.txt
> > @@ -0,0 +1,93 @@
> > +Title: Python 3.9 to become the default on 2021-06-01
> > 
> 
> Thanks for working on this. I kept meaning to do one for 3.8 and then 3.9 got so close
> that I felt a bit daft doing it.
> 
> > +
> > +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.
> 
> (Add a new line here).
> 
> > +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).
> > +
> > +
> 
> I’d consider numbering or marking with a bullet point or ‘-‘ each of
> the possible options, in order of likely usefulness. So, we’d do e.g.
> 
> 1) If you’ve not set anything, just upgrade as normal and then depclean.
> 
> 2) In order to have both Python implementations enabled temporarily for safety ,…
> 
> […]
> 
> But this isn’t required. It’s just about making it easier for people to see
> what they need to do, and not misread it and then do silly things because
> they just copied and pasted the stuff which looked right (it happens).
> 
> Let’s put all of the key information at the beginning, then the
> configurability/tweaking can be later on.
> 
> > +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.8 and Python 3.9 simultaneously,
> > +set /etc/portage/package.use to:
> > +
> > +    */* PYTHON_TARGETS: -* python3_8 python3_9
> > +    */* PYTHON_SINGLE_TARGET: -* python3_8
> > +
> > +Afterwards, rebuild your system with emerge's --changed-use option or
> > +equivalent.  This will cause your packages to gain Python 3.9 support
> > +while preserving Python 3.8 support whenever possible.  Then, change
> > +the second line to:
> > +
> > +    */* PYTHON_SINGLE_TARGET: -* python3_9
> > +
> > +This will switch packages that can not support two Python versions
> > +simultaneously, to use Python 3.9.  Rebuild again.  Finally, switch
> > +the first line to the final version:
> > +
> > +    */* PYTHON_TARGETS: -* python3_9
> > +
> > +The next --changed-use rebuild will remove Python 3.8 support from your
> > +packages.
> > +
> > +
> > +You can also switch to Python 3.9 earlier by setting:
> > +
> > +    */* PYTHON_TARGETS: -* python3_9
> > +    */* PYTHON_SINGLE_TARGET: -* python3_9
> > +
> > +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.
> > +
> 
> “It is especially important you do not forget IF you choose to add this,
> because it interferes with the natural rolling-with-the-defaults."
> 
> > +
> > +The Python 3.8 cleanup requires that Python 3.8 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
> > +
> 
> Let’s put this right at the beginning.
> 
> > +
> > +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.
> > +However, this is currently discouraged on stable as it will require
> > +unmasking multiple ~arch packages as  they gain Python 3.10 support.
> 
> I was in two minds about keeping this, but it’s useful to give people an idea
> of what’s coming in the future.
> 
> > +
> > +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 discouraged as it does not respect package defaults.
> 
> Let’s put this towards the beginning and also note that people should, in general,
> not really need to set any PYTHON_TARGETS at all, other than for where packages
> are lagging for having their support updated.
> 

Could you make a patch for me?

-- 
Best regards,
Michał Górny




^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [gentoo-dev] [PATCH news v2] Add Python 3.9 news item
  2021-04-30  0:50   ` Sam James
  2021-04-30  7:23     ` Joonas Niilola
  2021-04-30  7:52     ` Michał Górny
@ 2021-05-02 21:46     ` Michał Górny
  2021-05-03 18:05       ` Sam James
  2 siblings, 1 reply; 21+ messages in thread
From: Michał Górny @ 2021-05-02 21:46 UTC (permalink / raw
  To: gentoo-dev

On Fri, 2021-04-30 at 01:50 +0100, Sam James wrote:
> 
> > On 29 Apr 2021, at 22:01, Michał Górny <mgorny@gentoo.org> wrote:
> > 
> > Signed-off-by: Michał Górny <mgorny@gentoo.org>
> > ---
> > .../2021-04-29-python3-9.en.txt               | 93 +++++++++++++++++++
> > 1 file changed, 93 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 0000000..3075d72
> > --- /dev/null
> > +++ b/2021-04-29-python3-9/2021-04-29-python3-9.en.txt
> > @@ -0,0 +1,93 @@
> > +Title: Python 3.9 to become the default on 2021-06-01
> > 
> 
> Thanks for working on this. I kept meaning to do one for 3.8 and then 3.9 got so close
> that I felt a bit daft doing it.
> 
> > +
> > +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.
> 
> (Add a new line here).
> 
> > +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).
> > +
> > +
> 
> I’d consider numbering or marking with a bullet point or ‘-‘ each of
> the possible options, in order of likely usefulness. So, we’d do e.g.
> 
> 1) If you’ve not set anything, just upgrade as normal and then depclean.
> 
> 2) In order to have both Python implementations enabled temporarily for safety ,…
> 
> […]
> 
> But this isn’t required. It’s just about making it easier for people to see
> what they need to do, and not misread it and then do silly things because
> they just copied and pasted the stuff which looked right (it happens).
> 
> Let’s put all of the key information at the beginning, then the
> configurability/tweaking can be later on.
> 
> > +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.8 and Python 3.9 simultaneously,
> > +set /etc/portage/package.use to:
> > +
> > +    */* PYTHON_TARGETS: -* python3_8 python3_9
> > +    */* PYTHON_SINGLE_TARGET: -* python3_8
> > +
> > +Afterwards, rebuild your system with emerge's --changed-use option or
> > +equivalent.  This will cause your packages to gain Python 3.9 support
> > +while preserving Python 3.8 support whenever possible.  Then, change
> > +the second line to:
> > +
> > +    */* PYTHON_SINGLE_TARGET: -* python3_9
> > +
> > +This will switch packages that can not support two Python versions
> > +simultaneously, to use Python 3.9.  Rebuild again.  Finally, switch
> > +the first line to the final version:
> > +
> > +    */* PYTHON_TARGETS: -* python3_9
> > +
> > +The next --changed-use rebuild will remove Python 3.8 support from your
> > +packages.
> > +
> > +
> > +You can also switch to Python 3.9 earlier by setting:
> > +
> > +    */* PYTHON_TARGETS: -* python3_9
> > +    */* PYTHON_SINGLE_TARGET: -* python3_9
> > +
> > +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.
> > +
> 
> “It is especially important you do not forget IF you choose to add this,
> because it interferes with the natural rolling-with-the-defaults."
> 
> > +
> > +The Python 3.8 cleanup requires that Python 3.8 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
> > +
> 
> Let’s put this right at the beginning.
> 
> > +
> > +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.
> > +However, this is currently discouraged on stable as it will require
> > +unmasking multiple ~arch packages as  they gain Python 3.10 support.
> 
> I was in two minds about keeping this, but it’s useful to give people an idea
> of what’s coming in the future.
> 
> > +
> > +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 discouraged as it does not respect package defaults.
> 
> Let’s put this towards the beginning and also note that people should, in general,
> not really need to set any PYTHON_TARGETS at all, other than for where packages
> are lagging for having their support updated.
> 

I've applied most of your suggestions... and feel like this still needs
more work.  I'll try to make it clearer what all options are, and how to
use them.

-- 
Best regards,
Michał Górny




^ permalink raw reply	[flat|nested] 21+ messages in thread

* [gentoo-dev] [PATCH news v3] Add Python 3.9 news item
  2021-04-29 11:43 [gentoo-dev] [PATCH news] Add Python 3.9 news item Michał Górny
                   ` (2 preceding siblings ...)
  2021-04-29 21:01 ` [gentoo-dev] [PATCH news v2] " Michał Górny
@ 2021-05-02 22:04 ` Michał Górny
  2021-05-03 18:06   ` Sam James
  3 siblings, 1 reply; 21+ messages in thread
From: Michał Górny @ 2021-05-02 22:04 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 .../2021-04-29-python3-9.en.txt               | 119 ++++++++++++++++++
 1 file changed, 119 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 0000000..fc55427
--- /dev/null
+++ b/2021-04-29-python3-9/2021-04-29-python3-9.en.txt
@@ -0,0 +1,119 @@
+Title: Python 3.9 to become the default on 2021-06-01
+Author: Michał Górny <mgorny@gentoo.org>
+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 have PYTHON_TARGETS or PYTHON_SINGLE_TARGET declared
+in make.conf, please remove these declarations as they will interfere
+with the package.use samples provided below.  Using make.conf for Python
+targets is discouraged as it prevents package defaults from applying
+when necessary.  This news item assumes using /etc/portage/package.use
+or your package manager's equivalent file for configuration.
+
+
+At this point, you have a few configuration options to choose from:
+
+1. If you wish Python upgrades to apply automatically, you can remove
+   PYTHON_TARGETS and PYTHON_SINGLE_TARGET declarations.  When
+   the defaults change, your package manager should handle the upgrade
+   automatically.  However, you may still need to run the update
+   commands if any problems arise.
+
+2. If you wish to defer the upgrade for the time being, you can
+   explicitly set the old values in package.use.
+
+3. If you wish to force the upgrade earlier, you can explicitly set
+   the new values and run the upgrade commands.
+
+4. If you wish to use a safer approach (i.e. less likely to temporarily
+   break packages during the upgrade), you can perform a multi-step
+   upgrade as outlined below.
+
+5. Finally, you can use an arbitrary combination of PYTHON_TARGETS
+   and PYTHON_SINGLE_TARGET.
+
+
+Deferring the upgrade
+=====================
+To defer the upgrade, explicitly set the old targets:
+
+    */* PYTHON_TARGETS: -* python3_8
+    */* PYTHON_SINGLE_TARGET: -* python3_8
+
+This will enforce Python 3.8 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.
+
+
+Forcing the upgrade
+===================
+To force the upgrade earlier, explicitly set Python 3.9 targets:
+
+    */* PYTHON_TARGETS: -* python3_9
+    */* PYTHON_SINGLE_TARGET: -* python3_9
+
+However, it is important to remember to remove this after the defaults
+change, as it will interfere with the automatic switch to the next
+Python version in the future.
+
+
+Safer upgrade procedure
+=======================
+A safer approach is to add Python 3.9 support to your system first,
+and only then remove Python 3.8.  However, note that involves two
+rebuilds of all the affected packages, so it will take noticeably
+longer.
+
+First, enable both Python 3.8 and Python 3.9, and then run the upgrade
+commands:
+
+    */* PYTHON_TARGETS: -* python3_8 python3_9
+    */* PYTHON_SINGLE_TARGET: -* python3_8
+
+Then switch PYTHON_SINGLE_TARGET and run a second batch of upgrades:
+
+    */* PYTHON_TARGETS: -* python3_8 python3_9
+    */* PYTHON_SINGLE_TARGET: -* python3_9
+
+Finally, switch to the final version and upgrade:
+
+    */* PYTHON_TARGETS: -* python3_9
+    */* PYTHON_SINGLE_TARGET: -* python3_9
+
+You may wish to remove the target overrides after the defaults switch.
+Alternatively, you can keep them to block the next automatic upgrade
+to Python 3.10, and upgrade manually then.
+
+
+Upgrade commands
+================
+The Python 3.8 cleanup requires that Python 3.8 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
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [gentoo-dev] [PATCH news v2] Add Python 3.9 news item
  2021-04-30  7:23     ` Joonas Niilola
@ 2021-05-03 18:03       ` Sam James
  0 siblings, 0 replies; 21+ messages in thread
From: Sam James @ 2021-05-03 18:03 UTC (permalink / raw
  To: gentoo-dev



> On 30 Apr 2021, at 08:23, Joonas Niilola <juippis@gentoo.org> wrote:
> 
> 
> 
> On 30.4.2021 3.50, Sam James wrote:
>>> On 29 Apr 2021, at 22:01, Michał Górny <mgorny@gentoo.org> wrote:
>>> 
>>> +
>>> +
>>> +You can also switch to Python 3.9 earlier by setting:
>>> +
>>> +    */* PYTHON_TARGETS: -* python3_9
>>> +    */* PYTHON_SINGLE_TARGET: -* python3_9
>>> +
>>> +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.
>>> +
>> “It is especially important you do not forget IF you choose to add this,
>> because it interferes with the natural rolling-with-the-defaults."
>> 
> 
> No offense, but your suggestion isn't an improvement here :P maybe the
> 2nd part (after ,) makes sense and should be added, but the first part
> of that sentence is a bit hard to read.

It’s usually easier if you offer an explicit suggestion to help understand the problem:

“Avoid setting these if you can because it will require mandatory intervention in future.”?

> 
> -- juippis
> 
> 



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [gentoo-dev] [PATCH news v2] Add Python 3.9 news item
  2021-05-02 21:46     ` Michał Górny
@ 2021-05-03 18:05       ` Sam James
  0 siblings, 0 replies; 21+ messages in thread
From: Sam James @ 2021-05-03 18:05 UTC (permalink / raw
  To: gentoo-dev



> On 2 May 2021, at 22:46, Michał Górny <mgorny@gentoo.org> wrote:
> 
> On Fri, 2021-04-30 at 01:50 +0100, Sam James wrote:
>> 
>> [snip]
> 
> I've applied most of your suggestions... and feel like this still needs
> more work.  I'll try to make it clearer what all options are, and how to
> use them.

This looks pretty good to me, but I’ll look on the other one now and offer any
suggestions.
> 
> -- 
> Best regards,
> Michał Górny
> 
> 
> 



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [gentoo-dev] [PATCH news v3] Add Python 3.9 news item
  2021-05-02 22:04 ` [gentoo-dev] [PATCH news v3] " Michał Górny
@ 2021-05-03 18:06   ` Sam James
  2021-05-03 20:18     ` Michał Górny
  0 siblings, 1 reply; 21+ messages in thread
From: Sam James @ 2021-05-03 18:06 UTC (permalink / raw
  To: gentoo-dev



> On 2 May 2021, at 23:04, Michał Górny <mgorny@gentoo.org> wrote:
> [snip]
> +Upgrade commands
> +================
> +The Python 3.8 cleanup requires that Python 3.8 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


Only suggestion: we put this at the top and suggest people do it immediately
on the switchover day, and ideally beforehand to minimise possible conflicts
(so their system is in good state beforehand).

Thank you for making the changes I suggested (especially given I didn’t
send a patch and they were quite involved).

Looks good!

> -- 
> 2.31.1
> 
> 



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [gentoo-dev] [PATCH news v3] Add Python 3.9 news item
  2021-05-03 18:06   ` Sam James
@ 2021-05-03 20:18     ` Michał Górny
  2021-05-03 20:35       ` Sam James
  0 siblings, 1 reply; 21+ messages in thread
From: Michał Górny @ 2021-05-03 20:18 UTC (permalink / raw
  To: gentoo-dev

On Mon, 2021-05-03 at 19:06 +0100, Sam James wrote:
> 
> > On 2 May 2021, at 23:04, Michał Górny <mgorny@gentoo.org> wrote:
> > [snip]
> > +Upgrade commands
> > +================
> > +The Python 3.8 cleanup requires that Python 3.8 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
> 
> 
> Only suggestion: we put this at the top and suggest people do it immediately
> on the switchover day, and ideally beforehand to minimise possible conflicts
> (so their system is in good state beforehand).

I want to avoid it on the top, so people don't do it prematurely before
reading their options.

-- 
Best regards,
Michał Górny




^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [gentoo-dev] [PATCH news v3] Add Python 3.9 news item
  2021-05-03 20:18     ` Michał Górny
@ 2021-05-03 20:35       ` Sam James
  2021-05-06  0:13         ` Alexey Sokolov
  0 siblings, 1 reply; 21+ messages in thread
From: Sam James @ 2021-05-03 20:35 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 396 bytes --]



> On 3 May 2021, at 21:18, Michał Górny <mgorny@gentoo.org> wrote:
> 
> On Mon, 2021-05-03 at 19:06 +0100, Sam James wrote:
>> [snip]
> 
> I want to avoid it on the top, so people don't do it prematurely before
> reading their options.
> 

Good point - and I can’t complain, given I partly made that comment earlier ;)

LGTM then.

> --
> Best regards,
> Michał Górny


[-- Attachment #2: Message signed with OpenPGP --]
[-- Type: application/pgp-signature, Size: 618 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [gentoo-dev] [PATCH news v3] Add Python 3.9 news item
  2021-05-03 20:35       ` Sam James
@ 2021-05-06  0:13         ` Alexey Sokolov
  2021-05-06  6:57           ` Michał Górny
  0 siblings, 1 reply; 21+ messages in thread
From: Alexey Sokolov @ 2021-05-06  0:13 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 521 bytes --]

Here's the Russian version

пн, 3 мая 2021 г. в 21:35, Sam James <sam@gentoo.org>:
>
>
>
> > On 3 May 2021, at 21:18, Michał Górny <mgorny@gentoo.org> wrote:
> >
> > On Mon, 2021-05-03 at 19:06 +0100, Sam James wrote:
> >> [snip]
> >
> > I want to avoid it on the top, so people don't do it prematurely before
> > reading their options.
> >
>
> Good point - and I can’t complain, given I partly made that comment earlier ;)
>
> LGTM then.
>
> > --
> > Best regards,
> > Michał Górny
>

[-- Attachment #2: 0001-Translate-python3-9-to-Ru.patch --]
[-- Type: text/x-patch, Size: 8061 bytes --]

From 757517fe67e353f44a8739237a552726ae7c221f Mon Sep 17 00:00:00 2001
From: Alexey Sokolov <sokolov@google.com>
Date: Thu, 6 May 2021 01:05:38 +0100
Subject: [PATCH] Translate python3-9 to Ru

---
 .../2021-05-05-python3-9.ru.txt               | 113 ++++++++++++++++++
 1 file changed, 113 insertions(+)
 create mode 100644 2021-05-05-python3-9/2021-05-05-python3-9.ru.txt

diff --git a/2021-05-05-python3-9/2021-05-05-python3-9.ru.txt b/2021-05-05-python3-9/2021-05-05-python3-9.ru.txt
new file mode 100644
index 0000000..cfef9d4
--- /dev/null
+++ b/2021-05-05-python3-9/2021-05-05-python3-9.ru.txt
@@ -0,0 +1,113 @@
+Title: Python 3.9 станет питоном по умолчанию 2021-06-01
+Author: Michał Górny <mgorny@gentoo.org>
+Translator: Alexey Sokolov <alexey+gentoo@asokolov.org>
+Posted: 2021-05-05
+Revision: 1
+News-Item-Format: 2.0
+Display-If-Installed: dev-lang/python:3.7
+Display-If-Installed: dev-lang/python:3.8
+
+1 июня 2021 года мы собираемся переключить Python по умолчанию на системах
+Gentoo с версии 3.8 на версию 3.9.  Если вы не меняли значения PYTHON_TARGETS и
+PYTHON_SINGLE_TARGET, изменение затронет систему сразу: пакетный менеджер
+попытается применить изменение при следующем обновлении системы.
+
+Если же вы изменили эти значения, предпочитаете более безопасный подход, или
+при обновлении возникли проблемы, продолжайте читать.
+
+Пожалуйста, обратите внимание, что метод обновления по умолчанию переключает
+пакеты на новую версию питона, когда они пересобираются.  Это означает, что для
+пересборки пакета все зависимые пакеты должны уже поддерживать новую версию, и
+некоторые программы временно могут не находить свои зависимости во время
+обновления (однако, скорее всего, уже запущенные программы будут в порядке).
+
+Если PYTHON_TARGETS или PYTHON_SINGLE_TARGET объявлены в вашем make.conf,
+пожалуйста, удалите их оттуда, потому что они будут конфликтовать с показанными
+далее кусками из package.use.  Мы не рекомендуем использовать make.conf для
+этих переменных, поскольку они мешают применяться значениям по умолчанию для
+пакетов, где это необходимо.  В этой новости мы подразумеваем, что вы
+используете /etc/portage/package.use или его эквивалент для вашего пакетного
+менеджера.
+
+У вас есть выбор из следующих вариантов:
+
+1. Если вы хотите, чтобы питон обновлялся сам, вы можете удалить объявленные
+   PYTHON_TARGETS и PYTHON_SINGLE_TARGET. Когда значения по умолчанию
+   изменятся, пакетный менеджер должен сам всё обновить. Но если возникнут
+   проблемы, вам всё равно может прийтись запустить команды обновления.
+
+2. Если вы хотите пока отложить обновление, вы можете явно указать старые
+   значения в package.use.
+
+3. Если вы хотите обновиться раньше, вы можете явно указать новые значения и
+   запустить команды обновления.
+
+4. Если вы хотите более безопасный подход, у которого меньше шансов поломать
+   пакеты во время обновления, вы можете произвести последовательность шагов,
+   описанных далее.
+
+5. Наконец, вы можете произвольным образом комбинировать значения
+   PYTHON_TARGETS и PYTHON_SINGLE_TARGET.
+
+
+Откладывание обновления
+=======================
+Чтобы отложить обновление, явно укажите старые значения:
+
+    */* PYTHON_TARGETS: -* python3_8
+    */* PYTHON_SINGLE_TARGET: -* python3_8
+
+Это заставит систему использовать Python 3.8 и предотвратит будущие обновления.
+Однако, такое решение сойдёт только на несколько месяцев; когда-нибудь вам
+всё-таки нужно будет обновиться.
+
+
+Принудительное обновление
+=========================
+Чтобы обновиться до Python 3.9 раньше, явно укажите новые значения:
+
+    */* PYTHON_TARGETS: -* python3_9
+    */* PYTHON_SINGLE_TARGET: -* python3_9
+
+При этом важно не забыть удалить эти строки после смены значений по умолчанию,
+иначе они помешают будущим автоматическим обновлениям до следующих версий
+питона.
+
+
+Процедура безопасного обновления
+================================
+Более безопасный подход такой: сначала добавляется в систему поддержка Python
+3.9, а затем удаляется Python 3.8.  Однако, все затронутые пакеты будут
+пересобраны дважды, и это заметно дольше.
+
+Сначала включите и Python 3.8, и Python 3.9 и запустите команды обновления:
+
+    */* PYTHON_TARGETS: -* python3_8 python3_9
+    */* PYTHON_SINGLE_TARGET: -* python3_8
+
+Затем замените PYTHON_SINGLE_TARGET и ещё раз запустите команды:
+
+    */* PYTHON_TARGETS: -* python3_8 python3_9
+    */* PYTHON_SINGLE_TARGET: -* python3_9
+
+Наконец, вот окончательная версия, и не забудьте запустить команды:
+
+    */* PYTHON_TARGETS: -* python3_9
+    */* PYTHON_SINGLE_TARGET: -* python3_9
+
+После смены значений по умолчанию вы можете удалить эти настройки. Или же вы
+можете оставить их, предотвращая автоматическое обновление до Python 3.10, и
+тогда после этого так же обновиться вручную.
+
+
+Команды обновления
+==================
+Для очистки системы от Python 3.8 требуется удалить его сразу со всего дерева
+зависимостей.  Если какие-то установленные пакеты, использующие старую версию
+питона, не помечены для обновления, пакетный менеджер покажет ошибки
+зависимостей.  Поэтому важно производить обновление с помощью --deep
+--changed-use @world, а также перед этим удалить все более не требуемые пакеты:
+
+    emerge --depclean
+    emerge -1vUD @world
+    emerge --depclean
-- 
2.31.1.527.g47e6f16901-goog


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [gentoo-dev] [PATCH news v3] Add Python 3.9 news item
  2021-05-06  0:13         ` Alexey Sokolov
@ 2021-05-06  6:57           ` Michał Górny
  2021-05-06  8:02             ` Alexey Sokolov
  0 siblings, 1 reply; 21+ messages in thread
From: Michał Górny @ 2021-05-06  6:57 UTC (permalink / raw
  To: gentoo-dev

On Thu, 2021-05-06 at 01:13 +0100, Alexey Sokolov wrote:
> Here's the Russian version
> 

Could you include a copyright signoff, please?  This is pretty major
work.

-- 
Best regards,
Michał Górny




^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [gentoo-dev] [PATCH news v3] Add Python 3.9 news item
  2021-05-06  6:57           ` Michał Górny
@ 2021-05-06  8:02             ` Alexey Sokolov
  0 siblings, 0 replies; 21+ messages in thread
From: Alexey Sokolov @ 2021-05-06  8:02 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 346 bytes --]

Oops, I thought I did that. Fixed.

чт, 6 мая 2021 г. в 07:57, Michał Górny <mgorny@gentoo.org>:
>
> On Thu, 2021-05-06 at 01:13 +0100, Alexey Sokolov wrote:
> > Here's the Russian version
> >
>
> Could you include a copyright signoff, please?  This is pretty major
> work.
>
> --
> Best regards,
> Michał Górny
>
>
>

[-- Attachment #2: 0001-Translate-python3-9-to-Ru.patch --]
[-- Type: text/x-patch, Size: 8112 bytes --]

From 1bd30ecd61096a683f71533669c539d42b655bfe Mon Sep 17 00:00:00 2001
From: Alexey Sokolov <sokolov@google.com>
Date: Thu, 6 May 2021 01:05:38 +0100
Subject: [PATCH] Translate python3-9 to Ru

Signed-off-by: Alexey Sokolov <sokolov@google.com>
---
 .../2021-05-05-python3-9.ru.txt               | 113 ++++++++++++++++++
 1 file changed, 113 insertions(+)
 create mode 100644 2021-05-05-python3-9/2021-05-05-python3-9.ru.txt

diff --git a/2021-05-05-python3-9/2021-05-05-python3-9.ru.txt b/2021-05-05-python3-9/2021-05-05-python3-9.ru.txt
new file mode 100644
index 0000000..cfef9d4
--- /dev/null
+++ b/2021-05-05-python3-9/2021-05-05-python3-9.ru.txt
@@ -0,0 +1,113 @@
+Title: Python 3.9 станет питоном по умолчанию 2021-06-01
+Author: Michał Górny <mgorny@gentoo.org>
+Translator: Alexey Sokolov <alexey+gentoo@asokolov.org>
+Posted: 2021-05-05
+Revision: 1
+News-Item-Format: 2.0
+Display-If-Installed: dev-lang/python:3.7
+Display-If-Installed: dev-lang/python:3.8
+
+1 июня 2021 года мы собираемся переключить Python по умолчанию на системах
+Gentoo с версии 3.8 на версию 3.9.  Если вы не меняли значения PYTHON_TARGETS и
+PYTHON_SINGLE_TARGET, изменение затронет систему сразу: пакетный менеджер
+попытается применить изменение при следующем обновлении системы.
+
+Если же вы изменили эти значения, предпочитаете более безопасный подход, или
+при обновлении возникли проблемы, продолжайте читать.
+
+Пожалуйста, обратите внимание, что метод обновления по умолчанию переключает
+пакеты на новую версию питона, когда они пересобираются.  Это означает, что для
+пересборки пакета все зависимые пакеты должны уже поддерживать новую версию, и
+некоторые программы временно могут не находить свои зависимости во время
+обновления (однако, скорее всего, уже запущенные программы будут в порядке).
+
+Если PYTHON_TARGETS или PYTHON_SINGLE_TARGET объявлены в вашем make.conf,
+пожалуйста, удалите их оттуда, потому что они будут конфликтовать с показанными
+далее кусками из package.use.  Мы не рекомендуем использовать make.conf для
+этих переменных, поскольку они мешают применяться значениям по умолчанию для
+пакетов, где это необходимо.  В этой новости мы подразумеваем, что вы
+используете /etc/portage/package.use или его эквивалент для вашего пакетного
+менеджера.
+
+У вас есть выбор из следующих вариантов:
+
+1. Если вы хотите, чтобы питон обновлялся сам, вы можете удалить объявленные
+   PYTHON_TARGETS и PYTHON_SINGLE_TARGET. Когда значения по умолчанию
+   изменятся, пакетный менеджер должен сам всё обновить. Но если возникнут
+   проблемы, вам всё равно может прийтись запустить команды обновления.
+
+2. Если вы хотите пока отложить обновление, вы можете явно указать старые
+   значения в package.use.
+
+3. Если вы хотите обновиться раньше, вы можете явно указать новые значения и
+   запустить команды обновления.
+
+4. Если вы хотите более безопасный подход, у которого меньше шансов поломать
+   пакеты во время обновления, вы можете произвести последовательность шагов,
+   описанных далее.
+
+5. Наконец, вы можете произвольным образом комбинировать значения
+   PYTHON_TARGETS и PYTHON_SINGLE_TARGET.
+
+
+Откладывание обновления
+=======================
+Чтобы отложить обновление, явно укажите старые значения:
+
+    */* PYTHON_TARGETS: -* python3_8
+    */* PYTHON_SINGLE_TARGET: -* python3_8
+
+Это заставит систему использовать Python 3.8 и предотвратит будущие обновления.
+Однако, такое решение сойдёт только на несколько месяцев; когда-нибудь вам
+всё-таки нужно будет обновиться.
+
+
+Принудительное обновление
+=========================
+Чтобы обновиться до Python 3.9 раньше, явно укажите новые значения:
+
+    */* PYTHON_TARGETS: -* python3_9
+    */* PYTHON_SINGLE_TARGET: -* python3_9
+
+При этом важно не забыть удалить эти строки после смены значений по умолчанию,
+иначе они помешают будущим автоматическим обновлениям до следующих версий
+питона.
+
+
+Процедура безопасного обновления
+================================
+Более безопасный подход такой: сначала добавляется в систему поддержка Python
+3.9, а затем удаляется Python 3.8.  Однако, все затронутые пакеты будут
+пересобраны дважды, и это заметно дольше.
+
+Сначала включите и Python 3.8, и Python 3.9 и запустите команды обновления:
+
+    */* PYTHON_TARGETS: -* python3_8 python3_9
+    */* PYTHON_SINGLE_TARGET: -* python3_8
+
+Затем замените PYTHON_SINGLE_TARGET и ещё раз запустите команды:
+
+    */* PYTHON_TARGETS: -* python3_8 python3_9
+    */* PYTHON_SINGLE_TARGET: -* python3_9
+
+Наконец, вот окончательная версия, и не забудьте запустить команды:
+
+    */* PYTHON_TARGETS: -* python3_9
+    */* PYTHON_SINGLE_TARGET: -* python3_9
+
+После смены значений по умолчанию вы можете удалить эти настройки. Или же вы
+можете оставить их, предотвращая автоматическое обновление до Python 3.10, и
+тогда после этого так же обновиться вручную.
+
+
+Команды обновления
+==================
+Для очистки системы от Python 3.8 требуется удалить его сразу со всего дерева
+зависимостей.  Если какие-то установленные пакеты, использующие старую версию
+питона, не помечены для обновления, пакетный менеджер покажет ошибки
+зависимостей.  Поэтому важно производить обновление с помощью --deep
+--changed-use @world, а также перед этим удалить все более не требуемые пакеты:
+
+    emerge --depclean
+    emerge -1vUD @world
+    emerge --depclean
-- 
2.31.1.527.g47e6f16901-goog


^ permalink raw reply related	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2021-05-06  8:02 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-04-29 11:43 [gentoo-dev] [PATCH news] Add Python 3.9 news item Michał Górny
2021-04-29 12:44 ` Ulrich Mueller
2021-04-29 21:00   ` Michał Górny
2021-04-30  1:07     ` Wolfgang E. Sanyer
2021-04-30  7:49       ` Michał Górny
2021-04-29 16:08 ` Christopher Head
2021-04-29 21:00   ` Michał Górny
2021-04-29 21:01 ` [gentoo-dev] [PATCH news v2] " Michał Górny
2021-04-30  0:50   ` Sam James
2021-04-30  7:23     ` Joonas Niilola
2021-05-03 18:03       ` Sam James
2021-04-30  7:52     ` Michał Górny
2021-05-02 21:46     ` Michał Górny
2021-05-03 18:05       ` Sam James
2021-05-02 22:04 ` [gentoo-dev] [PATCH news v3] " Michał Górny
2021-05-03 18:06   ` Sam James
2021-05-03 20:18     ` Michał Górny
2021-05-03 20:35       ` Sam James
2021-05-06  0:13         ` Alexey Sokolov
2021-05-06  6:57           ` Michał Górny
2021-05-06  8:02             ` Alexey Sokolov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox