You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/metadata/news/2023-04-02-python3-11/2023-04-02-python3-11.pl.txt

139 lines
5.5 KiB

Title: Python 3.11 stanie się domyślną wersją począwszy od 2023-05-01
Author: Michał Górny <mgorny@gentoo.org>
Translator: Michał Górny <mgorny@gentoo.org>
Posted: 2023-04-02
Revision: 1
News-Item-Format: 2.0
Display-If-Installed: dev-lang/python:3.9
Display-If-Installed: dev-lang/python:3.10
Gentoo planuje zmienić domyślną wersję Pythona z 3.10 na 3.11 w dniu
1. maja 2023 r. Użytkownicy, którzy nie zmieniali wartości flag
PYTHON_TARGETS oraz PYTHON_SINGLE_TARGET nie muszą nic robić. Menadżer
pakietów automatycznie zaktualizuje wsparcie Pythona do nowej wersji
przy kolejnej aktualizacji systemu po tej zmianie.
Informacje zawarte w tej wiadomości przeznaczone są dla użytkowników,
którzy zmieniali preferowaną wersję Pythona bądź chcą przeprowadzić
aktualizację w bezpieczniejszy sposób.
Uwaga: standardowa metoda aktualizacji podmienia obsługiwaną wersję
Pythona w poszczególnych pakietach w miarę ich aktualizacji.
Oznacza to, że aktualizacja systemu możliwa będzie wyłącznie, jeżeli
wszystkie zainstalowane pakiety obsługują nową wersję. W trakcie
aktualizacji zależności poszczególnych zainstalowanych programów mogą
stać się tymczasowo niedostępne, nie powinno to jednak mieć wpływu
na działanie już uruchomionych aplikacji.
W tym samym czasie wsparcie Pythona 3.9 zostanie usunięte z eclass.
Paczka interpretera pozostanie wspierana tak długo, jak to będzie
możliwe. PyPy3.9 będzie wspierane do momentu wydania i stabilizacji
PyPy3.10.
Użytkownicy, którzy wykorzystują plik make.conf do ustawienia wartości
zmiennych PYTHON_TARGETS lub PYTHON_SINGLE_TARGET powinni usunąć
te wartości, gdyż będą one kolidowały z przykładami package.use
przedstawionymi w tej wiadomości. Wykorzystywanie pliku make.conf
do konfiguracji tych zmiennych jest niewskazane, gdyż ustawienia te
nadpisują domyślne wartości flag zawarte w poszczególnych pakietach.
Dalszy ciąg tej wiadomości zakłada wykorzystywanie package.use
lub równoważnego pliku konfiguracyjnego.
Dostępne są następujące możliwości aktualizacji:
1. Automatyczna aktualizacja wersji Pythona. Aby skorzystać z tej
opcji, należy usunąć zmienne PYTHON_TARGETS
oraz PYTHON_SINGLE_TARGET. Wówczas menadżer pakietów automatycznie
przeprowadzi aktualizację ilekroć zmieni się domyślna wersja Pythona
w Gentoo. Niemniej, może zaistnieć konieczność ręcznej aktualizacji
w przypadku wystąpienia problemów.
2. Odroczenie aktualizacji poprzez wymuszenie poprzedniej wersji
w pliku package.use.
3. Wymuszenie wcześniejszej aktualizacji poprzez podanie nowej wersji
i dokonanie aktualizacji systemu.
4. Zastosowanie bezpiecznego podejścia (tj. zmniejszającego ryzyko
niesprawnych programów w trakcie aktualizacji) poprzez wykonanie
aktualizacji w kilku krokach. Proces ten jest szczegółowo opisany
w dalszej części wiadomości.
5. Zastosowanie dowolnej kombinacji zmiennych PYTHON_TARGETS
oraz PYTHON_SINGLE_TARGET.
Odroczenie aktualizacji
=======================
Aby odroczyć aktualizację do późniejszego terminu, należy wymusić
poprzednią wersję Pythona:
*/* PYTHON_TARGETS: -* python3_10
*/* PYTHON_SINGLE_TARGET: -* python3_10
W ten sposób Python 3.10 zostanie wymuszony na stałe i przyszłe
aktualizacje zostaną zablokowane. Należy jednak pamiętać, że jest
to rozwiązanie tymczasowe i w przyszłości aktualizacja stanie się
konieczna.
Wymuszenie aktualizacji
=======================
Aby wymusić aktualizację wcześniej, należy wybrać Pythona 3.11:
*/* PYTHON_TARGETS: -* python3_11
*/* PYTHON_SINGLE_TARGET: -* python3_11
Zalecane jest jednak usunięcie tych ustawień po podanym wyżej terminie,
aby nie kolidowały w przyszłości z kolejną zmianą domyślnej wersji
Pythona.
Bezpieczna procedura aktualizacji
=================================
Bezpieczniejszą alternatywą do standardowego procesu jest wprowadzenie
wsparcia Pythona 3.11 w pierwszym kroku, a następnie usunięcie Pythona
3.10. Należy jednak pamiętać, że będzie wymagało to dwukrotnego
przebudowania wszystkich pakietów używających Pythona, tak więc łączny
czas aktualizacji zostanie wydłużony.
Najpierw załączyć należy obydwie wersje Pythona i przeprowadzić
aktualizację systemu:
*/* PYTHON_TARGETS: -* python3_10 python3_11
*/* PYTHON_SINGLE_TARGET: -* python3_10
Następnie przełączyć należy wartość PYTHON_SINGLE_TARGET i przebudować
pakiety używające tych flag:
*/* PYTHON_TARGETS: -* python3_10 python3_11
*/* PYTHON_SINGLE_TARGET: -* python3_11
W ostatnim kroku należy wyłączyć poprzednią wersję i przeprowadzić
kolejną aktualizację:
*/* PYTHON_TARGETS: -* python3_11
*/* PYTHON_SINGLE_TARGET: -* python3_11
Po terminie zmiany domyślnych wartości, konfigurację tę można usunąć.
Alternatywnie, pozostawienie jej zablokuje przyszłą aktualizację
do Pythona 3.12 i pozwoli na ręczne przeprowadzenie bezpieczniej
aktualizacji.
Proces aktualizacji
===================
Usunięcie Pythona 3.10 wymaga, by odpowiednie flagi zostały jednocześnie
wyłączone w całym drzewie zależności. Jeżeli niektóre z zainstalowanych
pakietów nie zostaną uwzględnione w planowanej aktualizacji, mogą one
zablokować ten proces. Dlatego też istotne jest przeprowadzenie
aktualizacji przy pomocy parametrów `--deep --changed-use @world` bądź
równoważnych, jak również wcześniejsze usunięcie niepotrzebnych
pakietów. Można tego dokonać używając poleceń:
emerge --depclean
emerge -1vUD @world
emerge --depclean