summaryrefslogtreecommitdiff
path: root/metadata/news/2021-05-05-python3-9
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-05-07 01:33:16 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-05-07 01:33:16 +0100
commitc8fd0d84af0bfd1949542adc2cbb735b1d28f9ed (patch)
tree3ee550255947da075650f1a551dcc278f9a1b7f8 /metadata/news/2021-05-05-python3-9
parenta978c074e4272bb901fbe4a10de0a7b2af574f17 (diff)
gentoo resync : 07.05.2021
Diffstat (limited to 'metadata/news/2021-05-05-python3-9')
-rw-r--r--metadata/news/2021-05-05-python3-9/2021-05-05-python3-9.en.txt119
-rw-r--r--metadata/news/2021-05-05-python3-9/2021-05-05-python3-9.ru.txt113
2 files changed, 232 insertions, 0 deletions
diff --git a/metadata/news/2021-05-05-python3-9/2021-05-05-python3-9.en.txt b/metadata/news/2021-05-05-python3-9/2021-05-05-python3-9.en.txt
new file mode 100644
index 000000000000..f42ec914b09e
--- /dev/null
+++ b/metadata/news/2021-05-05-python3-9/2021-05-05-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-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
+
+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
diff --git a/metadata/news/2021-05-05-python3-9/2021-05-05-python3-9.ru.txt b/metadata/news/2021-05-05-python3-9/2021-05-05-python3-9.ru.txt
new file mode 100644
index 000000000000..cfef9d4eeff4
--- /dev/null
+++ b/metadata/news/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