Зміни у Fedora 41 для розробників
Python 3.13
Fedora 41 містить Python 3.13, останній великий випуск мови Python. Список змін у цьому випуску наведено за посиланням:https://docs.python.org/dev/whatsnew/3.13.html#what-s-new-in-python-3-13[вища документація], зокрема у розділі:https://docs.python.org/dev/whatsnew/3.13.html#porting-to-python-3-13[Перехід на Python 3.13].
Крім того, PythonC тепер збирається з прапором компілятора -03
у Fedora, що узгоджується з тим, як збирається Python, і забезпечує помітне покращення продуктивності (наприклад, середнє геометричне значення pyperperformance
в 1.04 рази швидше). Це впливає лише на інтерпретатор та стандартну бібліотеку Python, але не на модулі розширень сторонніх розробників, зібрані як RPM або на системах розробників.
Зауваження щодо перенесення встановлених користувачами пакунків pip
При переході з Fedora 40 на Fedora 41 версія основного інтерпретатора Python змінюється з 3.12 на 3.13. Якщо у вас є пакунки Python, встановлені за допомогою pip
, вам слід виконати наступну процедуру, щоб перенести їх на нову версію:
-
Встановіть попередню основну версію Python:
sudo dnf install python3.12
-
Отримайте
pip
для попередньої основної версії Python:python3.12 -m ensurepip --user
-
Огляньте список встановлених пакунків:
python3.12 -m pip list
-
Збережіть список із вказаними версіями:
python3.12 -m pip freeze > installed.txt
-
Встановіть ті самі пакунки у новій типовій версії:
python3 -m pip install --user -r installed.txt
-
Видаліть встановлені користувачем пакунки для 3.12; це забезпечить правильне вилучення файлів у
~/.local/bin
:python3.12 -m pip uninstall $(python3.12 -m pip list --user | cut -d" " -f1)
-
Якщо хочете, вилучіть тепер порожню структуру каталогів:
rm -rf ~/.local/lib/python3.12/
-
Якщо хочете, вилучіть непотрібну версію Python:
sudo dnf remove python3.12
Крім того, якщо у вас є пакунки pip
, встановлені за допомогою udo
, виконайте наступні команди перед виконанням останнього кроку, який видаляє `python3.12`, або тимчасово встановіть його знову:
-
Отримайте
pip
для попередньої основної версії Python дляroot
:sudo python3.12 -m ensurepip
-
Огляньте список загальносистемних встановлених пакунків:
sudo python3.12 -m pip list
-
Видаліть встановлені пакунки для 3.12; це забезпечить правильне вилучення файлів у
/usr/local/bin
:sudo python3.12 -m pip uninstall $(python3.12 -m pip list | cut -d" " -f1)
-
Якщо хочете, вилучіть тепер порожню структуру каталогів:
sudo rm -rf /usr/local/lib*/python3.12/
Якщо ви виконали першу процедуру, пакунки вже встановлено для вашого облікового запису користувача (цей варіант є бажаним). Не використовуйте надалі |
Pytest 8
Pytest - це фреймворк для тестування проектів на Python. За допомогою Pytest ви можете писати прості та масштабовані тестові кейси для вашого коду. Зараз доступний Pytest 8, в якому вилучено багато застарілих функцій та внесено деякі суттєві зміни. Серед помітних оновлень можна виділити наступні:
-
Покращено відмінності, які виводить
pytest
у разі невдалого завершення перевірки. -
Змінено внутрішній метод
FixtureManager.getfixtureclosure
. Плагіни, які використовують цей метод або підкласи компонентаFixtureManager
і перезаписуютьFixtureManager.getfixtureclosure
, повинні будуть адаптуватися. -
Обгортки для гачків
нового стилю
тепер використовуються всередині. -
Очищено обробку параметра за замовчуванням під час визначення параметрів конфігурації.
-
Деякі пакунки, ймовірно, не вдасться зібрати.
Більш детальну інформацію можна знайти за посиланням:https://docs.pytest.org/en/stable/changelog.html[upstream release notes].
PyTorch 2.4
Fedora 41 містить PyTorch версії 2.4, останню версію цієї популярної бібліотеки Python для глибокого навчання з використанням CPU та GPU.
Додаткову інформацію можна знайти за посиланням:https://pytorch.org/blog/pytorch2-4/[оголошення про випуск] та за посиланням:https://github.com/pytorch/pytorch/releases/tag/v2.4.0[примітки до випуску].
ROCm 6.2
ROCm 6.2 - це остання версія обчислювальних бібліотек AMD, які працюють з ядром linux і дозволяють користувачам запускати обчислювальні навантаження на своїх графічних процесорах. Задіяно якомога більше графічних процесорів, щоб зробити відкрите прискорення доступним і простим для якомога ширшої аудиторії. Він також інтегрований з PyTorch у Fedora 41. Дивіться посилання:https://rocm.docs.amd.com/en/docs-6.2.0/about/release-notes.html[upstream release notes] для більш детальної інформації.
Python 2 у відставці
Пакунок python2.7
було вилучено без заміни з Fedora Linux 41. У Fedora 41 та пізніших версіях не буде Python 2, окрім PyPy. Пакунки, які потребують python2.7 під час виконання або збірки, мають бути оновлені для використання Python 3, або їх також буде вилучено.
Golang 1.23
Останній стабільний випуск цієї мови програмування тепер доступний у Fedora 41. Серед помітних змін можна виділити наступні:
-
Оператор range у циклі for-range приймає функції-ітератори як вирази діапазону. Підтримуються наступні типи ітераторних функцій:
-
func(func() bool)
-
func(func(K) bool)
-
func(func(K, V) bool)
Виклики функції аргументу ітератора дають значення ітерації для циклу
for-range
. -
-
Інструментарій Go може збирати статистику використання та поломок. Ці дані називаються "телеметрія Go" і являють собою опціональну систему, керовану командою
go telemetry
. -
Змінна середовища
GOROOT_FINAL
більше не працює. Встановіть символічне посилання замість переміщення або копіювання двійкового файлаgo
, якщо у вашому дистрибутиві командуgo
встановлено у місце, відмінне від$GOROOT/bin/go
. -
У повідомленні трасування, яке виводиться під час виконання після фатальної помилки, тепер другий і наступні рядки повідомлення відступають на один табулятор.
-
Значні зміни в реалізації типів
time.Timer
таtime.Ticker
.
Більш детальну інформацію можна знайти за посиланням:https://tip.golang.org/doc/go1.23[upstream release notes].
Perl 5.40
Останній стабільний випуск цієї мови програмування тепер доступний у Fedora 41. Серед помітних змін можна виділити наступні:
-
Нове ключове слово
CLASS
-
Атрибут
:reader
для польових змінних. Це означає, що автоматично створюється метод доступу, який повертає значення польової змінної з даного екземпляра. -
При обробці опцій командного рядка Perl допускає пробіл між ключем
-M
і назвою модуля після нього. -
До простору імен
builtin
додано функціїinf
таnan
(експериментальні). Вони діють як константи, що повертають значення нескінченності з плаваючою комою та не-числа відповідно. -
Виклик методу
import
невідомого пакунка видає попередження. -
Синтаксис оператора
return
тепер відкидає непрямі об’єкти. -
Використання
goto
для переходу із зовнішньої області видимості у внутрішню є застарілим і буде повністю вилучено у Perl 5.42.
Більш детальну інформацію можна знайти за посиланням:https://perldoc.perl.org/perl5400delta[upstream release notes].
NodeJS 22.0
Fedora 41 тепер постачається з Node.js 22.x як серверним рушієм JavaScript Node.js за замовчуванням. Якщо ваші застосунки ще не готові до цієї нової версії, їх потрібно буде модифікувати, щоб вони залежали від пакету сумісності nodejs20
і покладалися на /usr/bin/node20
замість /usr/bin/node
для операції.
Haskell GHC 9.6 та Stackage LTS 22
Для Fedora 41 основний пакет компілятора GHC Haskell було оновлено з версії 9.4.5 до останнього стабільного випуску 9.6.6 (перезавантаження пакунка ghc з пакунка ghc9.6). Крім того, пакунки Haskell у Стеку (стабільному дистрибутиві вихідних текстів Haskell) було оновлено з версій у LTS 21 до останнього випуску LTS 22. Пакунки Haskell, які не входять до Stackage, було оновлено до останньої відповідної версії зі сховища пакунків Hackage, розташованого вище.
Повну інформацію про цей випуск можна знайти за посиланням:https://downloads.haskell.org/~ghc/9.6.6/docs/users_guide/9.6.1-notes.html[примітки до випуску] та за посиланням:https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.6[посібник з міграції].
Оновлення набору інструментів GNU
Набір інструментів GNU у Fedora 41 оновлено до:
-
Компілятор GNU C (
gcc
) 14.1+ -
Двійкові утиліти GNU (
binutils
) 2.42+ -
Бібліотека GNU C (
glibc
) 2.40 -
Налагоджувач GNU (
gdb
) 14+
Також див. примітки до попередніх випусків: GCC, Binutils, GLibC NEWS, і GDB NEWS.
LLVM 19
Підпроекти LLVM у Fedora оновлено до версії 19.
Додано пакунки сумісності clang18
, llvm18
, lld18
, compiler-rt18
та libomp18
, щоб забезпечити подальшу роботу пакунків, які наразі залежать від бібліотек clang та llvm версії 18. Попередні пакунки сумісності, присутні у Fedora 40, такі як llvm17
, clang17
тощо, було вилучено.
Додаткову інформацію про цей випуск можна знайти за посиланням:https://releases.llvm.org/19.1.0/docs/ReleaseNotes.html[LLVM 19 Release Notes].
Want to help? Learn how to contribute to Fedora Docs ›