[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gentoo-dev
Subject:    Re: [gentoo-dev] [PATCH news v2] Add Python 3.9 news item
From:       Michał_Górny <mgorny () gentoo ! org>
Date:       2021-04-30 7:52:09
Message-ID: fe19a98187f57079d5a33ce83b1067088524fb3d.camel () gentoo ! org
[Download RAW message or body]

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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic