diff options
-rw-r--r-- | 2023-04-02-python3-11/2023-04-02-python3-11.pl.txt | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/2023-04-02-python3-11/2023-04-02-python3-11.pl.txt b/2023-04-02-python3-11/2023-04-02-python3-11.pl.txt new file mode 100644 index 0000000..5c49639 --- /dev/null +++ b/2023-04-02-python3-11/2023-04-02-python3-11.pl.txt @@ -0,0 +1,138 @@ +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.11 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 |