You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`flet-dev/python-build` 20260611 switched from per-minor v-tags
(`v3.14` + `python-*-3.14-*.tar.gz`) to date-keyed tags carrying the full
patch version (`20260611` + `python-*-3.14.6-*.tar.gz`); one date release
now ships every supported minor. Astral PBS advanced to 20260610 (now
ships 3.13.14 / 3.14.6); Pyodide 314.0.0 GA'd.
Registry (`_pythonReleases` in package_command.dart) updates:
* 3.12 row: PBS date 20260610 (CPython 3.12.13 unchanged).
* 3.13 row: CPython 3.13.14, PBS date 20260610.
* 3.14 row: CPython 3.14.6, PBS date 20260610, Pyodide 314.0.0.
* All three rows gain `pythonBuildReleaseDate: "20260611"`.
The 3.13 wheel platform tag was also wrong — `pyodide-2025.0-wasm32`
where it should have been `pyemscripten-2025.0-wasm32` (the prefix
transition happened at Pyodide 0.28/0.29, not at 314.0). Anyone
attempting `flet build web --python-version 3.13` against a Pyodide-built
native wheel would have failed to match anything. Fixed in the registry.
Plugin build scripts (android/build.gradle, darwin/prepare_{ios,macos}.sh,
linux + windows CMakeLists.txt) now read two new env vars exported by
`flet build`:
* SERIOUS_PYTHON_FULL_VERSION (e.g. 3.14.6) — used in the URL filename
* SERIOUS_PYTHON_BUILD_DATE (e.g. 20260611) — used as the URL tag
Each plugin keeps a baked-in default so standalone (non-`flet build`)
consumers keep working without setting the new vars. The per-plugin
cache directory key (`$FLET_CACHE_DIR/python-build/v<…>/`) switches from
short to full version so a patch bump doesn't reuse a stale tarball.
README + 5 changelog entries updated.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: src/serious_python/CHANGELOG.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,9 +4,11 @@
4
4
***Breaking change:** Android `sysconfig.get_platform()` tag format changed from `android-24-arm64-v8a` to `android-24-arm64_v8a` (and similarly for `armeabi-v7a`). The emitted wheel tag (`android_24_arm64_v8a`) is unchanged, but anything reading the raw `sysconfig.get_platform()` string from `sitecustomize.py` should switch separators.
5
5
***Breaking change:** Windows host arch identifier dropped the `-shared` suffix (`x86_64-pc-windows-msvc-shared` → `x86_64-pc-windows-msvc`); follows astral-sh/python-build-standalone, which only publishes the combined (already shared) `install_only_stripped` build.
6
6
* Multi-version Python support. The `package` command accepts `--python-version` (or `SERIOUS_PYTHON_VERSION` env var) to select between Python 3.12 / 3.13 / 3.14. The matching CPython-standalone build, Pyodide release, and Emscripten wheel platform tag are looked up from a new `_pythonReleases` table. Adding a future pre-release line (e.g. 3.15 beta) is a one-row append with `prerelease: true`; the Flet CLI uses that flag to keep open-ended `requires-python` specifiers (`>=3.14`) on stable, while still letting `--python-version 3.15` or `==3.15.*` opt in.
7
-
* The Emscripten pip platform tag is now derived per Python release (e.g. `pyodide-2024.0-wasm32` for 0.27.7, `pyemscripten-2026.0-wasm32` for 314.0.0a2), via a `pyodide_platform_tag` field in the version registry. The previous static `pyodide-2024.0-wasm32` entry in `platforms["Emscripten"]` has been removed.
7
+
* The Emscripten pip platform tag is now derived per Python release (e.g. `pyodide-2024.0-wasm32` for 0.27.7, `pyemscripten-2026.0-wasm32` for 314.0.0), via a `pyodide_platform_tag` field in the version registry. The previous static `pyodide-2024.0-wasm32` entry in `platforms["Emscripten"]` has been removed.
8
8
*`sitecustomize.py` now shims `platform.android_ver` so the new pip / packaging that ships with python-build-standalone 20260602+ can compute Android wheel tags on Python 3.12 hosts (where `android_ver` didn't exist) and on Python 3.13+ hosts (where it returns `api_level=0` off-device).
9
9
* Skip 32-bit Android ABIs (`armeabi-v7a`, `x86`) when Python ≥ 3.13 — PEP 738 dropped 32-bit Android support, and `flet-dev/python-build` no longer publishes those runtimes for those versions.
10
+
* Migrate the platform-plugin download URLs to `flet-dev/python-build`'s new date-keyed release scheme (`…/<YYYYMMDD>/python-*-<full-version>-*.tar.gz`) — one release tag now ships every supported Python patch instead of per-minor `v3.X` releases. Plugins (Android `build.gradle`, Darwin `prepare_*.sh`, Linux/Windows `CMakeLists.txt`) read two new env vars set by `flet build`: `SERIOUS_PYTHON_FULL_VERSION` (e.g. `3.14.6`) and `SERIOUS_PYTHON_BUILD_DATE` (e.g. `20260611`); both fall back to baked-in defaults so standalone (non-`flet build`) usage continues to work. Bump bundled versions to **3.12.13 / 3.13.14 / 3.14.6** (Astral PBS `20260610`, python-build `20260611`) and Pyodide for 3.14 to **314.0.0** (GA).
11
+
***Bug fix:** the Pyodide 0.29 wheel platform tag for the 3.13 row in the version registry was `pyodide-2025.0-wasm32`, but Pyodide actually publishes its wheels under `pyemscripten_2025_0_wasm32` (the `pyodide_` → `pyemscripten_` prefix transition happened at 0.28/0.29, not at 314.0). `flet build web --python-version 3.13` would have failed to match any Pyodide-built native wheel; corrected to `pyemscripten-2025.0-wasm32` in the registry.
Copy file name to clipboardExpand all lines: src/serious_python_android/CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,7 @@
4
4
* Multi-version Python support. `python_version` in `android/build.gradle` reads from `SERIOUS_PYTHON_VERSION` and drives the `flet-dev/python-build` download URL.
5
5
* The Dart runtime no longer hardcodes `libpython3.12.so` — it scans `nativeLibraryDir` for `libpython3.*.so` so whichever libpython the plugin bundled is loaded automatically.
6
6
*`abiFilters` now branches on `python_version`: keep `armeabi-v7a` for 3.12, restrict to `arm64-v8a` + `x86_64` for 3.13+ (python-build dropped 32-bit Android per PEP 738).
7
+
* Migrate `downloadDistArchive_*` to `flet-dev/python-build`'s new date-keyed release scheme (`…/<YYYYMMDD>/python-android-dart-<full-version>-<abi>.tar.gz` instead of `…/v<short>/python-android-dart-<short>-<abi>.tar.gz`). Two new env vars — `SERIOUS_PYTHON_FULL_VERSION` (e.g. `3.14.6`) and `SERIOUS_PYTHON_BUILD_DATE` (e.g. `20260611`) — are read alongside `SERIOUS_PYTHON_VERSION`, both with baked-in defaults so standalone (non-`flet build`) usage continues to work. The cache directory key (`$FLET_CACHE_DIR/python-build/v<…>/`) switches from short to full version so patch bumps don't reuse a stale tarball.
Copy file name to clipboardExpand all lines: src/serious_python_darwin/CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,7 @@
2
2
3
3
***Breaking change:** default bundled Python version is now 3.14 (was 3.12). Apps built without an explicit `SERIOUS_PYTHON_VERSION` env var pull `python-ios-dart-3.14.tar.gz` / `python-macos-dart-3.14.tar.gz` from `flet-dev/python-build`. Set `SERIOUS_PYTHON_VERSION=3.12` to preserve the previous default.
4
4
* Multi-version Python support. `python_version` in `serious_python_darwin.podspec` reads from `SERIOUS_PYTHON_VERSION`; `prepare_ios.sh` / `prepare_macos.sh` already took the version as `$1` and download the matching tarballs.
5
+
* Migrate `prepare_ios.sh` / `prepare_macos.sh` to `flet-dev/python-build`'s new date-keyed release scheme (`…/<YYYYMMDD>/python-{ios,macos}-dart-<full-version>.tar.gz`). The podspec now reads `SERIOUS_PYTHON_FULL_VERSION` and `SERIOUS_PYTHON_BUILD_DATE` (defaults baked in) and passes them as positional args `$2` / `$3` to the prepare scripts.
Copy file name to clipboardExpand all lines: src/serious_python_linux/CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,7 @@
2
2
3
3
***Breaking change:** default bundled Python version is now 3.14 (was 3.12). The plugin downloads `python-linux-dart-3.14-<arch>.tar.gz` from `flet-dev/python-build` and bundles `libpython3.14.so.1.0` unless `SERIOUS_PYTHON_VERSION=3.12` is set in the build environment.
4
4
* Multi-version Python support. `PYTHON_VERSION` in `linux/CMakeLists.txt` reads from `SERIOUS_PYTHON_VERSION`, and all `python3.12` / `libpython3.12.so.1.0` / `lib/python3.12` paths are derived from it. The plugin source receives the version via a `SERIOUS_PYTHON_VERSION` compile-time macro so the runtime module path matches the bundled distro.
5
+
* Migrate the `python-linux-dart` download URL to `flet-dev/python-build`'s new date-keyed release scheme (`…/<YYYYMMDD>/python-linux-dart-<full-version>-<arch>.tar.gz`). `CMakeLists.txt` now reads `SERIOUS_PYTHON_FULL_VERSION` and `SERIOUS_PYTHON_BUILD_DATE` from the environment (with baked-in defaults) and the cache directory key uses the full version so patch bumps don't reuse a stale tarball.
0 commit comments