Skip to content

Bump to 6.0.0: iOS 15.0 / macOS 12.0 minimums, CPython 3.12.15/3.13.16/3.14.8 - #256

Merged
FeodorFitsner merged 3 commits into
mainfrom
bump-6.0.0-ios15-macos12
Oct 17, 2026
Merged

FeodorFitsner merged 3 commits into
mainfrom
bump-6.0.0-ios15-macos12

Conversation

@FeodorFitsner

@FeodorFitsner FeodorFitsner commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #254. 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). serious_python still declared iOS 13.0 / macOS 11.0, generated framework plists with MinimumOSVersion 13.0, and resolved iOS wheels for ios-13.0. The bundled runtime came from a python-build release built for the same old minimums.

Changes (6.0.0, a major bump because the minimum OS goes up)

  • python-build re-pin: release 20261016 (Bump Pythons to 3.12.15/3.13.16/3.14.8; iOS 15.0 / macOS 12.0 minimums; dart_bridge 1.11.0 python-build#46) brings CPython 3.12.15 / 3.13.16 / 3.14.8 and dart_bridge 1.11.0 (Release 1.11.0: raise Apple minimums to iOS 15.0 / macOS 12.0 dart-bridge#23). It's built for iOS 15.0 / macOS 12.0; the release's 3.12.15 Apple artifacts show minos 15.0 / 12.0 on every binary. lib/src/python_versions.dart and the four python_versions.properties were regenerated with gen_version_tables --release-date 20261016, and a second run produces no diff.
  • serious_python_darwin:
    • podspec: s.ios.deployment_target = '15.0', s.osx.deployment_target = '12.0'.
    • Package.swift: [.iOS("15.0"), .macOS("12.0")].
    • xcframework_utils.sh: plists generated for native modules in site-packages say MinimumOSVersion 15.0.
  • bin/package_command.dart: the iOS wheel platform tags are ios-15.0-*. sitecustomize reads the iOS release from the tag. packaging's ios_platforms() accepts every tag from 12.0 up to the target, so existing ios_13_0 wheels (e.g. on pypi.flet.dev) still resolve.
  • Examples (bridge, run, flask):
    • iOS 15.0 / macOS 12.0 deployment targets and Podfile platforms.
    • Updated PODFILE CHECKSUMs in the Podfile.locks.
    • Dropped the jni: 1.0.0 override (see below).
  • README.md: the minimum iOS/macOS sections now say 15.0 / 12.0, the CPython column shows the new patches, and the stale Pyodide column is fixed (→ 0.27.8 / 0.29.5 / 314.0.7).
  • Version 6.0.0 in all 8 places, plus CHANGELOG entries in every package.

CI fix that isn't part of the release itself: jni override

The examples' dependency_overrides: jni: 1.0.0 worked around dart-lang/native#3498, an aarch64 Linux build failure that jni 1.0.3 fixed. jni_flutter 1.0.4+1, published 2026-10-06, has generated bindings that assert jni ^1.1.0. The override therefore broke every example build on every platform, main included, with "The generated bindings expect package:jni ^1.1.0, but 1.0.x was imported". This PR drops the override and moves the run/flask lockfiles to jni 1.1.0 / jni_flutter 1.0.4+1, the same fix as flet-dev/flet#6920.

Testing

  • CI: every Android, Linux, Windows and web job passes. Each macOS and iOS combination (3.12 / 3.13 / 3.14 × CocoaPods / SwiftPM) passed in at least one of the two runs, push and pull_request. The red jobs are flakes:
    • macOS CocoaPods 3.12: pod install couldn't resolve cdn.cocoapods.org. It passed in the other run.
    • iOS CocoaPods 3.13 and 3.14: each hung after "Xcode build done" until the 25-minute timeout in one run and passed in the other. Recent main runs show the same iOS CocoaPods timeouts (e.g. runs 36267841941, 36073319160).
  • Local, macOS: bridge_example packaged for 3.14, and interactivity_test passes. The app bundles CPython 3.14.8, Python.framework and dart_bridge are minos 12.0, and LSMinimumSystemVersion is 12.0.

…ni ^1.1.0

The override worked around dart-lang/native#3498 (aarch64 build failure in
jni 1.0.1), which jni 1.0.3 fixed. jni_flutter 1.0.4+1's generated bindings
assert jni ^1.1.0, so forcing 1.0.0 now fails every example build with
'The generated bindings expect package:jni ^1.1.0, but 1.0.x was imported.'
Same fix as flet-dev/flet#6920.
@FeodorFitsner
FeodorFitsner marked this pull request as ready for review October 17, 2026 01:52
@FeodorFitsner
FeodorFitsner merged commit da52253 into main Oct 17, 2026
82 of 85 checks passed
@FeodorFitsner
FeodorFitsner deleted the bump-6.0.0-ios15-macos12 branch October 17, 2026 19:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bump minimum iOS to 15.0 and macOS 12.0

1 participant