Güvenlik​

  • Python'ın kaynak ağaç algılama yöntemi güncellendi.
  • macOS, Android ve iOS yükleyicilerinde OpenSSL 3.5.7 kullanılmaya başlandı.
  • bz2 ve shutil.move() ile ilgili güvenlik düzeltmeleri yapıldı.

İyileştirmeler​

  • Bellek yetersizliği, çökme ve yarış durumu oluşturan çeşitli sorunlar düzeltildi.
  • Derleyici, tokenizer, lazy import, frozendict ve çöp toplama davranışlarında iyileştirmeler yapıldı.
  • macOS üzerinde perf jitdump zaman damgası ve iş parçacığı bilgileri düzeltildi.
  • mimalloc kullanımıyla ilgili bellek sızıntısı giderildi.

Kütüphane​

  • tkinter, datetime, inspect, curses, subprocess, ctypes, site, mmap, sqlite3, ssl, email, unittest, imaplib ve concurrent.futures modüllerinde çeşitli düzeltmeler yapıldı.
  • profiling.sampling, Tachyon profiler ve Windows sanal ortam desteği iyileştirildi.
  • XML-RPC, socket ve bytes işlemlerindeki güvenlik ve kararlılık sorunları düzeltildi.
  • Daha fazla IANA kodlama takma adı desteği eklendi.

Belgeler​

  • tkinter belgeleri genişletildi.
  • Genel türler ve standart kütüphane türleri için tür parametresi açıklamaları eklendi.
  • shutil.move() belgeleri güncellendi.

Testler​

  • Zayıf referans C API'si için daha fazla test eklendi.
  • Profiler ve FreeBSD testleriyle ilgili sorunlar düzeltildi.

Derleme ve Windows​

  • Android ve Windows derlemelerinde SQLite 3.53.2 kullanılmaya başlandı.
  • Windows derlemelerinde OpenSSL 3.5.7 kullanılmaya başlandı.
  • Windows üzerinde tkinter uyumluluğu iyileştirildi.

IDLE​

  • Dosya kaydedilirken üzerine yazılacaksa kullanıcı artık uyarılıyor.

C API​

  • frozendict desteği ve hata iletileri iyileştirildi.
  • Ertelenmiş referans sayımı ve C++ derleme uyumluluğu düzeltildi.
Sürüm: 3.14.6
Sürüm: 3.14.5

3.14 Serisinin 3.13 ile Karşılaştırıldığında Öne Çıkan Yeni Özellikleri​

Python 3.14'teki başlıca yeni özellikler ve değişiklikler şunlardır:

Yeni Özellikler​

  • PEP 779: "Free-threaded" (serbest iş parçacıklı) Python artık resmi olarak destekleniyor.
  • PEP 649: Notasyonların (annotations) değerlendirilmesi artık erteleniyor; bu da notasyon kullanım semantiğini iyileştiriyor.
  • PEP 750: F-string'lerin tanıdık söz dizimini kullanarak özel metin işleme sağlayan "Template string literals" (t-stringleri).
  • PEP 734: Standart kütüphanede (stdlib) çoklu yorumlayıcı (multiple interpreters) desteği.
  • PEP 784: Zstandard sıkıştırma algoritması için destek sağlayan yeni compression.zstd modülü.
  • PEP 758: except ve except* ifadelerinde artık parantez kullanımı isteğe bağlı (atlanabilir).
  • Arayüz İyileştirmeleri: PyREPL'de söz dizimi vurgulama; unittest, argparse, json ve calendar komut satırı arayüzlerinde (CLI) renk desteği.
  • PEP 768: CPython için sıfır maliyetli (zero-overhead) harici hata ayıklayıcı arayüzü.
  • UUID Güncellemeleri: uuid modülü artık 6-8 arası sürümleri destekliyor; 3-5 arası sürümlerin üretilmesi ise %40'a kadar hızlandırıldı.
  • PEP 765: Bir finally bloğundan çıkan return/break/continue ifadeleri artık yasaklandı.
  • PEP 741: Python'u yapılandırmak için geliştirilmiş yeni bir C API.
  • Yeni Yorumlayıcı Tipi: Belirli yeni derleyiciler için bu yorumlayıcı önemli ölçüde daha iyi performans sağlar. Şimdilik isteğe bağlıdır (opt-in) ve kaynak koddan derleme gerektirir.
  • Geliştirilmiş hata mesajları.
  • HMAC Uygulaması: HACL* projesinden gelen resmi olarak doğrulanmış kod ile HMAC'in yerleşik (builtin) uygulaması.
  • Asenkron Görev Denetimi: Çalışan Python süreçlerini asenkron görevleri kullanarak incelemek için yeni bir komut satırı arayüzü.
  • pdb Güncellemesi: pdb modülü artık çalışan bir Python sürecine uzaktan bağlanmayı (remote attach) destekliyor.

Derleme (Build) Değişiklikleri​

  • PEP 761: Python 3.14 ve sonrasında yayınlanan dosyalar için artık PGP imzası sağlanmayacak. Bunun yerine doğrulayıcılar için Sigstore öneriliyor.
  • Resmi macOS ve Windows sürümleri, deneysel bir JIT derleyicisi içerir.
  • Resmi Android ikili (binary) sürümleri artık mevcut.

Uyumsuz Değişiklikler ve Kaldırılanlar​

  • Uyumsuz değişiklikler, kaldırılan/kullanımdan kaldırılan Python ve C API özellikleri hakkında detaylar mevcuttur.

Python Kurulum Yöneticisi (Install Manager)​

Windows için sunduğumuz yükleyici, Windows Store'dan veya indirme sayfasından yüklenebilen yeni "install manager" ile değiştiriliyor. Geleneksel yükleyici, 3.14 ve 3.15 sürümleri boyunca mevcut kalmaya devam edecektir.

Ve Şimdi Tamamen Farklı Bir Şey​

4 Nisan itibarıyla, yılın 3.14 ayı (Pi sayısı kadar) geride kalmış oldu.
Python Güncelleme Notları

🛡️ Güvenlik Düzeltmeleri

  • E-posta başlıklarında güvensiz katlama veya sınırlandırma içeren verilerin serileştirilmesi engellendi (#144125).
  • E-posta mesajlarındaki çok uzun yorumların hatalı katlanması sonucu oluşan "header injection" (başlık enjeksiyonu) açığı giderildi (#143935).
  • Veri (data:) URL medya türlerinde, http.cookies.Morsel alanlarında ve wsgiref başlıklarında kontrol karakterleri reddedilerek güvenlik artırıldı (#143925, #143919, #143916).

🚀 Performans ve Kütüphane İyileştirmeleri
  • io.BufferedReader satır yineleme performansı yaklaşık %49 oranında artırıldı (#144380).
  • Free-threaded derlemelerde functools.partial() ve atexit.unregister() üzerindeki veri yarışları (data race) giderildi (#143880, #142881).
  • Argparse performansında, doğrulama için kullanılan formatlayıcının önbelleğe alınmasıyla iyileştirme yapıldı (#142267).
  • Asenkron REPL (asyncio) artık izole modu (-I) destekliyor ve sessiz modda telif hakkı mesajlarını basmıyor (#140648, #143046).

🐛 Kritik Hata ve Çökme Düzeltmeleri
  • Windows: PyREPL'de satır sonu karakteri içermeyen çıktıların bir sonraki istem tarafından üzerine yazılması hatası giderildi (#128067).
  • Ctypes: argtypes içinde geçersiz işaretçi türleri kullanıldığında yaşanan çökmeler yerine düzgün Python istisnaları verilmesi sağlandı (#144100).
  • Multiprocessing: forkserver başlatma yönteminde sys.argv'nin boş olması sorunu giderildi (#143706).
  • Pickle: C uygulamasında aynı nesne üzerinde eşzamanlı çağrı yapılması durumunda oluşan veri bozulmaları engellendi; artık RuntimeError fırlatılıyor (#143638).
  • Tkinter: Tcl nesnesine dönüştürme sırasında Python listesi değiştirilirse oluşan çökme giderildi (#143310).

💻 Çekirdek ve Builtin Değişiklikleri
  • Garbage Collector (Çöp Toplayıcı): Free-threaded derlemelerde performans düşüşüne neden olan nesne sayımı hatası düzeltildi (#142531).
  • JIT Derleyici: Stencil başlık üretimi deterministik hale getirilerek tekrarlanabilir derlemeler (reproducible builds) sağlandı (#138061).
  • Traceback sistemi: io.open() kaybedilse bile yedek modda hata izlerini görüntüleyebilecek şekilde güncellendi (#142737).
  • Interpreter sonlandırılırken modül temizleme aşamasındaki referans sızıntıları engellendi (#144307).

🧪 Test ve Araçlar
  • Android test yatağında stdout/stderr mesajlarının tetiklenme kaynağı (yeni satır vs. flush) artık ayırt edilebiliyor (#144415).
  • Gdb 'py-bt' komutu, mevcut olduğunda iş parçacığı yerel durumundaki çerçeveyi (frame) kullanacak şekilde güncellendi (#142095).
  • Solaris ve FreeBSD sistemleri için özel soket ve boru hattı (pipe) uyumluluk düzeltmeleri yapıldı.
Sürüm: 3.14.2
Güvenlik ve Kitaplık Güncellemeleri
  • OpenSSL Güncellemesi: Paketlenen OpenSSL sürümü 3.0.18'e güncellendi.
  • libexpat Güncellemesi: Paketlenen libexpat sürümü 2.7.3'e yükseltildi.
  • xml.parsers.expat Güvenlik Düzeltmesi: xml.parsers.expat modülünde, ebeveyn Expat ayrıştırıcılarının (parent Expat parsers), ExternalEntityParserCreate() tarafından oluşturulan alt ayrıştırıcılar tarafından referans gösterilmediği zamanlarda bile çöp toplanmasını engelleyen bir güvenlik düzeltmesi yapıldı.

Araçlar ve Geliştirici Desteği
  • SBOM (Yazılım Malzeme Listesi) Düzeltmesi: SBOM oluşturma aracı, sürüm ve sağlama toplamı (checksum) değerlerini Modules/expat/refresh.sh betiği ile çapraz kontrol etmediği için bu değerlerin güncel olmama sorununu düzeltildi.
  • Apple Geliştirmeleri:
    • XCframeworks artık Apple App Store gönderim gereksinimlerini karşılamak için gizlilik manifestolarını (privacy manifests) içeriyor.
    • Bir iOS XCframework oluşturma betiği eklendi. Bu değişikliğin bir parçası olarak, üst düzeydeki iOS klasörü, artık Apple klasörünün bir alt dizini haline getirildi.
Güvenlik:
  • OpenSSL Güncellemeleri: İkili yapılarda (binary builds) kullanılan OpenSSL sürümü, çeşitli güvenlik açıklarını (CVE'ler) gidermek için 1.1.1u ve 1.1.1t'ye yükseltildi.
  • Dizin Atlatma (Directory Traversal): uu.decode() metodundaki, çıkış dosyası belirtilmediğinde dizin atlatma saldırılarına izin verebilecek güvenlik açığı giderildi.
  • Dizin İndeksleri: http.client.SimpleHTTPRequestHandler tarafından oluşturulan dizin indekslerinde, yerel disk konumu artık ifşa edilmeyecek.
  • URL Ayrıştırma: urllib.parse.urlsplit() metodu, WHATWG'nin URL belirtimine uygun olarak, baştaki C0 kontrol ve boşluk karakterlerini artık kaldırır.
  • Alt İşlem (Subprocess): subprocess.Popen metodu, shell=True ile başlatılırken cmd.exe dosyasını bulmak için daha güvenli bir yöntem kullanır.

Kütüphane:
  • ensurepip ile birlikte gelen pip sürümü 23.0.1'e yükseltildi.

Yapı (Build):
  • GHA CI üzerinde macOS'ta oluşan test_posix hatasını önlemek için uygun macOS SDK'sı kullanılmaya başlandı.

Windows:
  • Windows yükleyicisi, OpenSSL 1.1.1s sürümüne güncellendi.
Yeni Özellikler:
  • Etkileşimli Yorumlayıcı: PyPy tabanlı, çok satırlı düzenleme, renk desteği ve renklendirilmiş hata izleme (traceback) özelliklerine sahip, geliştirilmiş yeni bir etkileşimli yorumlayıcı eklendi.
  • Kilitsiz Eşzamanlılık: Deneysel, serbest iş parçacıklı bir derleme modu eklendi. Bu mod, Global Interpreter Lock'u (GIL) devre dışı bırakarak iş parçacıklarının daha eşzamanlı çalışmasına olanak tanır ve Windows ile macOS yükleyicilerinde deneysel bir özellik olarak sunulmaktadır.
  • Deneysel JIT: Önemli performans iyileştirmeleri için temel teşkil eden deneysel bir JIT (Just-In-Time) derleyicisi eklendi.
  • Mimalloc Bellek Yöneticisi: Geliştirilmiş bir bellek yöneticisi olan mimalloc'un değiştirilmiş bir sürümü, varsayılan olarak etkinleştirilmiş şekilde (desteklenen platformlarda) artık mevcuttur ve serbest iş parçacıklı derleme modu için gereklidir.
  • Docstring İyileştirmesi: Docstring'lerin başındaki girintiler artık kaldırılıyor, bu da bellek kullanımını ve .pyc dosyalarının boyutunu azaltıyor.
  • Yeni Dbm Arka Ucu: dbm modülüne, yeni dosyalar oluşturulurken varsayılan olarak kullanılan yeni bir dbm.sqlite3 arka ucu eklendi.

Platform Desteği ve Uyumluluk:
  • macOS: Minimum desteklenen macOS sürümü 10.9'dan 10.13 (High Sierra) sürümüne yükseltildi.
  • WASI: WASI artık Tier 2 düzeyinde desteklenen bir platformdur.
  • iOS ve Android: iOS ve Android artık Tier 3 düzeyinde desteklenen platformlardır.
  • Emscripten: Emscripten artık resmi olarak desteklenen bir platform değildir.

Yazma (Typing) Sistemi:
  • Tip parametrelerinde varsayılan tipler için destek eklendi.
  • typing.TypeIs adında yeni bir tip daraltma (type narrowing) notasyonu eklendi.
  • TypeDict içindeki salt okunur öğeler için yeni bir notasyon eklendi.
  • Tip sistemindeki özelliklerin kullanımının durdurulacağını belirtmek için yeni bir notasyon eklendi.

Kaldırılan ve Kullanımdan Kaldırılan Özellikler:
  • PEP 594: Standart kütüphaneden birçok eski ve artık kullanılmayan modül (örneğin: aifc, cgi, nntplib) kaldırılmıştır.
  • Çeşitli standart kütüphane modüllerindeki birçok eski sınıf, fonksiyon ve metot kaldırılmıştır.
  • Bazı C API'ları da kaldırılmış ve kullanımdan kaldırılmıştır.
  • Kullanımdan kaldırılan (deprecation) birçok yeni özellik eklendi; bunların çoğu Python 3.15 veya 3.16 sürümlerinde kaldırılmak üzere planlanmıştır.
3.13.5 sürümü, 3.13.4 sürümündeki birkaç önemli sorunu düzeltmek için hızlandırılmış bir yayındır:
  • gh-135151: Windows'ta normal (free-threaded olmayan) derleme için uzantı modülleri oluşturma başarısız oluyordu.
  • gh-135171: Üreteç ifadeleri (generator expressions), oluşturma anında (yinelenebilir olmayan nesneler üzerinde yinelerken) TypeError hatası vermeyi durdurmuş, bu hatayı ilk kullanıma ertelemişti.
  • gh-135326: random.getrandbits() fonksiyonuna int benzeri nesnelerin (örneğin numpy.int64) geçirilmesi daha önce çalışırken başarısız oluyordu.
Normalde bir sonraki sürüme kadar bekleyecek olan diğer bazı hata düzeltmeleri de dahil edilmiştir.