Repository navigation
Bump Pythons to 3.12.15/3.13.16/3.14.8; iOS 15.0 / macOS 12.0 minimums; dart_bridge 1.11.0 - #46
Conversation
…s; dart_bridge 1.11.0
…on compiles against OpenSSL 4
|
Pushed a fix for the 3.12.15 iOS failure, which isn't caused by this PR's changes. The macOS runner image now links Homebrew The fix adds a Verified locally:
|
Fixes #44. Part of flet-dev/flet#6940.
Why
Xcode 27 rejects deployment targets below iOS 15.0 / macOS 12.0, and Flet 1.1.0 already moved its build template and client to those minimums (flet-dev/flet#6914). The frameworks published here still declared iOS 13.0 (
MinimumOSVersioninPython.frameworkand in every per-module xcframework) and macOS 11.0. This PR raises them and moves CPython to the latest patch releases.Changes
iOS 15.0
darwin/build_ios.py:IOS_DEPLOYMENT_TARGET = "15.0".--host=arm64-apple-ios, soconfigurefalls back to its hardcodedIPHONEOS_DEPLOYMENT_TARGET:=13.0}, which also overwrites the env var. The script now rewrites that default next to the existing_multiprocessing/_posixshmemrewrite, and fails if the string isn't found exactly once. The line is the same in 3.14+ upstream, 3.13 upstream and our 3.12 back-port patch.-mios[-simulator]-version-min, thePython.frameworkMinimumOSVersion, the sysconfig platform (ios-15.0-...), andHOST_GNU_TYPE(aarch64-apple-ios15.0).VERSIONSfile now reads the constant.build/iOS-dylib-Info-template.plistinside the xcframework with 13.0 hardcoded.reshape()now rewrites it to match.darwin/xcframework_utils.sh: the per-module framework plists now sayMinimumOSVersion15.0.macOS 12.0
darwin/build_macos.py:DEFAULT_DEPLOYMENT_TARGET11.0 → 12.0. This covers CPython, OpenSSL, xz, zstd andVERSIONS.Pythons
manifest.json:full_version: 3.12.15 / 3.13.16 / 3.14.8.standalone_release_date: 20261001, the first python-build-standalone release with all three.dart_bridge_version: 1.11.0..github/workflows/build-python-version.yml: updated the dispatch options.darwin/ios_patches/3.13/Python.patch: 3.13.16 rewrote upstream's iOS min-version block toAS_CASE([$host], [*-apple-ios*-simulator] ... [*-apple-ios*] ...), adding-mios-simulator-version-min. As a result:configure.achunk was rejected.configurehunk applied with fuzz, leavingtvOS)/watchOS)labels inside acase $hostwhere they could never match.Both hunks are rebased onto the new block, and the tvOS/watchOS cases are now
*-apple-tvos*/*-apple-watchos*host patterns. The 3.12 patch applies cleanly to 3.12.15.Testing
All local, on Xcode 26, with output written to a scratch root.
patch -p1applies both patches to clean 3.12.15 / 3.13.16 sources with no rejects and no fuzz. Theconfiguredefault string appears exactly once in 3.12.15 (patched), 3.13.16 (patched) and 3.14.8.python build_ios.py 3.13.16:Python.framework:LC_BUILD_VERSIONisminos 15.0on the device slice and on both simulator archs. TheMinimumOSVersionin the plist is 15.0._ssl.so(device and x86_64 simulator):minos 15.0._sysconfigdata:IPHONEOS_DEPLOYMENT_TARGETis'15.0', andHOST_GNU_TYPEisaarch64-apple-ios15.0/x86_64-apple-ios15.0-simulator.VERSIONSand thebuild/iOS-dylib-Info-template.plistboth say 15.0.package-ios-for-dart.sh . 3.13.16: all 112 frameworkInfo.plists in the tarball sayMinimumOSVersion15.0.python build_macos.py 3.14.8:Python.frameworkand_ssl.so:minos 12.0for arm64 and x86_64.VERSIONS:Min macOS version: 12.0.MACOSX_DEPLOYMENT_TARGET'12.0'.The full matrix (3.12/3.14 iOS, Android, Linux, Windows, Pyodide) is left to CI.
After merge
Publish the release. Then serious_python re-pins with
gen_version_tables --release-date <date>(flet-dev/serious-python#254), and Flet updatesPYTHON_BUILD_RELEASE_DATE.