summaryrefslogtreecommitdiff
path: root/metadata/news/2022-06-13-python3-10/2022-06-13-python3-10.pl.txt
blob: 684ff3248fbecf9def11bb4c9069ddc44fb9419e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
Title: Python 3.10 stanie się domyślną wersją począwszy od 2022-07-01
Author: Michał Górny <mgorny@gentoo.org>
Translator: Michał Górny <mgorny@gentoo.org>
Posted: 2022-06-13
Revision: 1
News-Item-Format: 2.0
Display-If-Installed: dev-lang/python:3.8
Display-If-Installed: dev-lang/python:3.9

Gentoo planuje zmienić domyślną wersję Pythona z 3.9 na 3.10 w dniu
1. lipca 2022 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.


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_9
    */* PYTHON_SINGLE_TARGET: -* python3_9

W ten sposób Python 3.9 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.10:

    */* PYTHON_TARGETS: -* python3_10
    */* PYTHON_SINGLE_TARGET: -* python3_10

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.10 w pierwszym kroku, a następnie usunięcie Pythona
3.9.  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_9 python3_10
    */* PYTHON_SINGLE_TARGET: -* python3_9

Następnie przełączyć należy wartość PYTHON_SINGLE_TARGET i przebudować
pakiety używające tych flag:

    */* PYTHON_TARGETS: -* python3_9 python3_10
    */* PYTHON_SINGLE_TARGET: -* python3_10

W ostatnim kroku należy wyłączyć poprzednią wersję i przeprowadzić
kolejną aktualizację:

    */* PYTHON_TARGETS: -* python3_10
    */* PYTHON_SINGLE_TARGET: -* python3_10

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.9 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