Aktualizacja Pythona 3.10: bezpieczeństwo i kompatybilność w centrum uwagi

Python 3.10 osiągnął koniec swojego cyklu życia upstream 1 października 2026 roku. Ostatnia wersja z poprawkami bezpieczeństwa to 3.10.22. Nie ma dalszych aktualizacji upstream. Wsparcie od producenta należy sprawdzić oddzielnie. Kompatybilność konkretnych aplikacji należy testować indywidualnie.

Stwórz spis projektu

Przed przeprowadzeniem migracji ważne jest stworzenie kompletnego spisu projektu. Obejmuje on wszystkie używane pakiety, zależności oraz aktualną wersję interpretera Python. Taki spis pomaga wcześnie wykrywać potencjalne problemy ze zgodnością i planować rozwiązania.

Sprawdź kompatybilność producenta i pakietów

Kompatybilność musi być systematycznie sprawdzana, uwzględniając nie tylko wersję Pythona, ale również wszystkie biblioteki zależne i ich wersje. Interfejsy zewnętrzne, takie jak sterowniki baz danych lub API, muszą być sprawdzane pod kątem wsparcia dla wersji docelowej. Dla pakietów binarnych kluczowe jest sprawdzenie kompatybilności platformy i architektury. Planowanie powinno definiować jasne odpowiedzialności i okna serwisowe, aby szybko reagować na problemy. Ważne jest podzielenie kroków migracji na etapy i sprawdzenie wpływu każdego etapu na całą aplikację. Migracja masowa bez wcześniejszej analizy może prowadzić do nieoczekiwanych błędów.

Kluczowe znaczenie ma informacja producenta na temat wspieranych wersji.

Utwórz kopie zapasowe aplikacji, danych i konfiguracji

Przed rozpoczęciem migracji utwórz pełne kopie zapasowe aplikacji, danych i konfiguracji. Stare środowisko musi pozostać niezmienione, aby można było do niego się odwołać w przypadku problemów.

Projekt testowy i kontrola interpretera

Poniższe polecenia to przykłady dla systemów Unix; wszystkie polecenia są wykonywane w katalogu głównym osobnego projektu testowego; ścieżki względne odnoszą się do tego katalogu. Przed użyciem sprawdź rzeczywistą wersję python3. Wersja docelowa musi być już zainstalowana, nadal wspierana i kompatybilna z projektem. Nie wprowadza się żadnych zmian w usługach produkcyjnych.

Projekt testowy służy do izolowanego testowania kroków migracji i nie powinien być mylony ze środowiskami produkcyjnymi. Przed rozpoczęciem migracji określ aktualną wersję Pythona w środowisku wdrożeniowym i porównaj ją z wersją docelową. Wszystkie polecenia w projekcie testowym są przykładami i mają charakter demonstracyjny; muszą być dostosowane do własnego środowiska.

Przed instalacją interpreter python3 musi być już zainstalowany, nadal wspierany i kompatybilny z projektem. Plik requirements-reviewed.txt to samodzielnie przygotowana, przetestowana lista pakietów dla wersji docelowej i nie jest plikiem dostarczanym. Nie należy zastępować Pythona systemowego. Nie wolno zmieniać globalnej ścieżki PATH. Ogólne aktualizacje pakietów nie są zalecane. Poniższe polecenia należy wykonać w projekcie testowym:

python3 --version
python3 -m venv .venv-next
.venv-next/bin/python -m pip install -r requirements-reviewed.txt
.venv-next/bin/python -m pip check

Instalacja i sprawdzenie zależności

pip check sprawdza tylko kompatybilność deklarowanych zależności. Nie są wykonywane testy aplikacji ani audyty bezpieczeństwa. venv izoluje pakiety, ale nie jest piaskownicą bezpieczeństwa i nie eliminuje problemu zakończenia wsparcia interpretera. Środowiska należy tworzyć od nowa, nie kopiować ani przenosić. Aktywacja nie jest wymagana, jeśli ścieżka interpretera jest jasno określona.

Testowanie i planowanie rollbacku

Przyjęcie migracji powinno nastąpić tylko wtedy, gdy wszystkie zaplanowane testy zostały pomyślnie wykonane, a nie wystąpiły krytyczne błędy. Wrażliwe dane muszą być przetwarzane zgodnie z określonymi w projekcie zasadami, aby uniknąć naruszenia przepisów o ochronie danych. Przed przełączeniem należy dokumentować oczekiwane wyniki i porównać je z rzeczywistymi wynikami. Różnice muszą być szczegółowo zapisane i nie mogą być po prostu ignorowane.

Po zainstalowaniu i sprawdzeniu zależności należy przetestować aplikację, przykładowe dane oraz integracje zewnętrzne. Kryteria testu muszą być zapisane. Istniejące środowiska oraz kopie zapasowe aplikacji i danych należy zachować do momentu akceptacji. Dopiero po tym można zaplanować kontrolowane przełączenie na nowe środowisko. Rollback do starego środowiska jest możliwy tylko jako rozwiązanie tymczasowe i nie przywraca pełnego wsparcia.

Więcej informacji można znaleźć w oficjalnej dokumentacji: PEP 619, Dokumentacja venv, pip check.