diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2021-05-07 01:33:16 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2021-05-07 01:33:16 +0100 |
commit | c8fd0d84af0bfd1949542adc2cbb735b1d28f9ed (patch) | |
tree | 3ee550255947da075650f1a551dcc278f9a1b7f8 /metadata/news/2021-05-05-python3-9 | |
parent | a978c074e4272bb901fbe4a10de0a7b2af574f17 (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.txt | 119 | ||||
-rw-r--r-- | metadata/news/2021-05-05-python3-9/2021-05-05-python3-9.ru.txt | 113 |
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 |