Skip to content

Commit da52253

Browse files
Bump to 6.0.0: iOS 15.0 / macOS 12.0 minimums, CPython 3.12.15/3.13.16/3.14.8 (#256)
* Bump to 6.0.0: iOS 15.0 / macOS 12.0 minimums, CPython 3.12.15/3.13.16/3.14.8 * Re-pin python-build to 20261016 (CPython 3.12.15/3.13.16/3.14.8, dart_bridge 1.11.0) * Examples: drop the jni 1.0.0 override; jni_flutter 1.0.4+1 requires jni ^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.
1 parent 16bceeb commit da52253

46 files changed

Lines changed: 152 additions & 136 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎src/serious_python/CHANGELOG.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## 6.0.0
2+
3+
* **Breaking (iOS/macOS):** the minimum supported OS is now **iOS 15.0** and **macOS 12.0** (was iOS 13.0 / macOS 11.0), the lowest deployment targets Xcode 27 accepts. Apps must set `platform :ios, '15.0'` / `platform :osx, '12.0'` in their Podfiles and the matching `IPHONEOS_DEPLOYMENT_TARGET` / `MACOSX_DEPLOYMENT_TARGET`. See `serious_python_darwin` 6.0.0 ([#254](https://github.com/flet-dev/serious-python/issues/254)).
4+
* **Packaging (iOS):** the `package` command targets the `ios-15.0-*` wheel platform tags. Wheels tagged for older iOS versions, such as `ios_13_0`, are still accepted ([#254](https://github.com/flet-dev/serious-python/issues/254)).
5+
* Update the bundled CPython to **3.12.15 / 3.13.16 / 3.14.8** ([python-build#46](https://github.com/flet-dev/python-build/pull/46)).
6+
17
## 5.0.0
28

39
* **Breaking (`package` command):** `--exclude`, `--cleanup-app-files` and `--cleanup-package-files` no longer split their values on commas, so paths containing `,` and brace globs such as `**/{tests,docs}` can be passed. Previously a hidden file named `.a,main.py` passed to `--exclude` became two exclusions, dropping `main.py`, and `**/{tests,docs}` was split into two broken globs. Pass each value as its own option: `--exclude build --exclude tests` instead of `--exclude build,tests`. A comma-separated value is now matched as a single path, so an unmigrated command packages the files it used to exclude without failing. The Dart API and runtime are unchanged. `flet build` pins serious_python exactly, so existing Flet releases are unaffected ([#253](https://github.com/flet-dev/serious-python/pull/253), [flet#6839](https://github.com/flet-dev/flet/issues/6839)).

‎src/serious_python/README.md‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ is specified.
2424

2525
| Short | CPython runtime | Pyodide (web) | Pyodide wheel platform tag |
2626
| ----- | --------------- | ------------- | -------------------------------- |
27-
| 3.12 | 3.12.14 | 0.27.7 | `pyodide-2024.0-wasm32` |
28-
| 3.13 | 3.13.15 | 0.29.4 | `pyemscripten-2025.0-wasm32` |
29-
| 3.14 | 3.14.7 | 314.0.6 | `pyemscripten-2026.0-wasm32` |
27+
| 3.12 | 3.12.15 | 0.27.8 | `pyodide-2024.0-wasm32` |
28+
| 3.13 | 3.13.16 | 0.29.5 | `pyemscripten-2025.0-wasm32` |
29+
| 3.14 | 3.14.8 | 314.0.7 | `pyemscripten-2026.0-wasm32` |
3030

3131
The default is the latest stable row (currently **3.14**) when neither
3232
`--python-version` nor `SERIOUS_PYTHON_VERSION` is set. When running through
@@ -57,11 +57,11 @@ Import Serious Python package into your app:
5757

5858
`import 'package:serious_python/serious_python.dart';`
5959

60-
The plugin is built against iOS 13.0, so you might need to update iOS version in `ios/Podfile`:
60+
The plugin is built against iOS 15.0, so you might need to update iOS version in `ios/Podfile`:
6161

6262
```bash
6363
# Uncomment this line to define a global platform for your project
64-
platform :ios, '13.0'
64+
platform :ios, '15.0'
6565
```
6666

6767
Package your Python app with the CLI (see [Packaging Python app](#packaging-python-app) below). Its sources are placed **unpacked inside the app bundle**, next to the Python stdlib and site-packages — on Android they ship as a *stored* `app.zip` asset inside the APK and are unpacked once on first launch. Then run it:
@@ -370,19 +370,19 @@ The following matrix shows which platform you should build on to target specific
370370

371371
### macOS
372372

373-
macOS 11.0 (Big Sur) is the minimal supported version of macOS (the bundled
374-
`Python.framework` requires 11.0).
373+
macOS 12.0 (Monterey) is the minimal supported version of macOS (the bundled
374+
`Python.framework` requires 12.0).
375375

376376
You have to update your Flutter app's `macos/Podfile` to have this line at the very top:
377377

378378
```ruby
379-
platform :osx, '11.0'
379+
platform :osx, '12.0'
380380
```
381381

382382
Also, make sure `macos/Runner.xcodeproj/project.pbxproj` contains:
383383

384384
```objc
385-
MACOSX_DEPLOYMENT_TARGET = 11.0;
385+
MACOSX_DEPLOYMENT_TARGET = 12.0;
386386
```
387387

388388
### Android

‎src/serious_python/bin/package_command.dart‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,13 @@ const spmKeyFileEnvironmentVariable = "SERIOUS_PYTHON_SPM_KEY_FILE";
5151

5252
const platforms = {
5353
"iOS": {
54-
"iphoneos.arm64": {"tag": "ios-13.0-arm64-iphoneos", "mac_ver": ""},
54+
"iphoneos.arm64": {"tag": "ios-15.0-arm64-iphoneos", "mac_ver": ""},
5555
"iphonesimulator.arm64": {
56-
"tag": "ios-13.0-arm64-iphonesimulator",
56+
"tag": "ios-15.0-arm64-iphonesimulator",
5757
"mac_ver": ""
5858
},
5959
"iphonesimulator.x86_64": {
60-
"tag": "ios-13.0-x86_64-iphonesimulator",
60+
"tag": "ios-15.0-x86_64-iphonesimulator",
6161
"mac_ver": ""
6262
}
6363
},

‎src/serious_python/example/bridge_example/ios/Podfile‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Uncomment this line to define a global platform for your project
2-
# platform :ios, '13.0'
2+
# platform :ios, '15.0'
33

44
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
55
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

‎src/serious_python/example/bridge_example/ios/Podfile.lock‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ EXTERNAL SOURCES:
1111
SPEC CHECKSUMS:
1212
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
1313

14-
PODFILE CHECKSUM: 3c63482e143d1b91d2d2560aee9fb04ecc74ac7e
14+
PODFILE CHECKSUM: 3ba3a73b1b12adcf321a227a745625fe0888cc82
1515

1616
COCOAPODS: 1.14.3

‎src/serious_python/example/bridge_example/ios/Runner.xcodeproj/project.pbxproj‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@
451451
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
452452
GCC_WARN_UNUSED_FUNCTION = YES;
453453
GCC_WARN_UNUSED_VARIABLE = YES;
454-
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
454+
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
455455
MTL_ENABLE_DEBUG_INFO = NO;
456456
SDKROOT = iphoneos;
457457
SUPPORTED_PLATFORMS = iphoneos;
@@ -580,7 +580,7 @@
580580
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
581581
GCC_WARN_UNUSED_FUNCTION = YES;
582582
GCC_WARN_UNUSED_VARIABLE = YES;
583-
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
583+
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
584584
MTL_ENABLE_DEBUG_INFO = YES;
585585
ONLY_ACTIVE_ARCH = YES;
586586
SDKROOT = iphoneos;
@@ -631,7 +631,7 @@
631631
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
632632
GCC_WARN_UNUSED_FUNCTION = YES;
633633
GCC_WARN_UNUSED_VARIABLE = YES;
634-
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
634+
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
635635
MTL_ENABLE_DEBUG_INFO = NO;
636636
SDKROOT = iphoneos;
637637
SUPPORTED_PLATFORMS = iphoneos;

‎src/serious_python/example/bridge_example/macos/Podfile‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
platform :osx, '11.0'
1+
platform :osx, '12.0'
22

33
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
44
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

‎src/serious_python/example/bridge_example/macos/Podfile.lock‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ EXTERNAL SOURCES:
1111
SPEC CHECKSUMS:
1212
FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1
1313

14-
PODFILE CHECKSUM: 346bfb2deb41d4a6ebd6f6799f92188bde2d246f
14+
PODFILE CHECKSUM: 1e95c36afbfd1cb6423ceca4de7a8e1b256fb6ac
1515

1616
COCOAPODS: 1.14.3

‎src/serious_python/example/bridge_example/macos/Runner.xcodeproj/project.pbxproj‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -549,7 +549,7 @@
549549
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
550550
GCC_WARN_UNUSED_FUNCTION = YES;
551551
GCC_WARN_UNUSED_VARIABLE = YES;
552-
MACOSX_DEPLOYMENT_TARGET = 11.0;
552+
MACOSX_DEPLOYMENT_TARGET = 12.0;
553553
MTL_ENABLE_DEBUG_INFO = NO;
554554
SDKROOT = macosx;
555555
SWIFT_COMPILATION_MODE = wholemodule;
@@ -631,7 +631,7 @@
631631
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
632632
GCC_WARN_UNUSED_FUNCTION = YES;
633633
GCC_WARN_UNUSED_VARIABLE = YES;
634-
MACOSX_DEPLOYMENT_TARGET = 11.0;
634+
MACOSX_DEPLOYMENT_TARGET = 12.0;
635635
MTL_ENABLE_DEBUG_INFO = YES;
636636
ONLY_ACTIVE_ARCH = YES;
637637
SDKROOT = macosx;
@@ -681,7 +681,7 @@
681681
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
682682
GCC_WARN_UNUSED_FUNCTION = YES;
683683
GCC_WARN_UNUSED_VARIABLE = YES;
684-
MACOSX_DEPLOYMENT_TARGET = 11.0;
684+
MACOSX_DEPLOYMENT_TARGET = 12.0;
685685
MTL_ENABLE_DEBUG_INFO = NO;
686686
SDKROOT = macosx;
687687
SWIFT_COMPILATION_MODE = wholemodule;

‎src/serious_python/example/bridge_example/pubspec.yaml‎

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,5 @@ dev_dependencies:
2424
sdk: flutter
2525
flutter_lints: ^2.0.0
2626

27-
# jni arrives transitively (path_provider -> path_provider_android ->
28-
# jni_flutter -> jni). 1.0.1 added global_jni_env.c, which passes a `va_list`
29-
# where a `void *` is expected: fine on x86_64, where va_list is an array type
30-
# that decays to a pointer, but a hard error on aarch64, where it's a struct.
31-
# That breaks `flutter build linux` on ARM64 hosts. Tracked upstream at
32-
# dart-lang/native#3498 — drop this override once a fixed jni is released.
33-
dependency_overrides:
34-
jni: 1.0.0
35-
3627
flutter:
3728
uses-material-design: true

0 commit comments

Comments
 (0)