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
{{ message }}
Repository navigation
Commit abd90cb
Browse filesBrowse the repository at this point in the historyBrowse files
Bump to 6.2.0: Python 3.15 (3.15.2) as a pre-release line
Adds 3.15 to the generated version tables. They are generated from
python-build's `support-py3.15` manifest on top of the pinned release
date 20261027, which is otherwise identical to that release's manifest:
CPython 3.15.2, PBS 20261026, Pyodide 315.0.0a2 with wheel tag
pyemscripten-2026.5-wasm32, and all three Android ABIs. The row is
`prerelease: true`, so 3.15 is opt-in (`--python-version 3.15` /
SERIOUS_PYTHON_VERSION=3.15) and 3.14 stays the default. Pyodide 3.15 is
still an alpha and pypi.flet.dev has no cp315 mobile wheels yet.
The 3.15 runtimes and the Android `-py3.15` dart_bridge binaries exist
only as python-build / dart-bridge CI artifacts until those repos cut
releases. To build against them:
* Android: new SERIOUS_PYTHON_ANDROID_PYTHON_DIST=<dir> takes the
`python-android-dart-<full>-<abi>.tar.gz` archives from <dir>
instead of the release, the counterpart of the existing
SERIOUS_PYTHON_DART_BRIDGE_DIST. Seeding the cache doesn't work here
because the Gradle download task re-checks the release URL
(onlyIfModified) and 404s. SERIOUS_PYTHON_BUILD_DIST doesn't fit
either, because it skips the stdlib/site-packages staging.
* Darwin/iOS/Linux/Windows already skip the download when the cached
file exists.
* `.github/scripts/seed_unreleased_runtimes.sh <platform>` does both
from GitHub Actions run artifacts. Assets the pinned releases already
publish are left alone, so it is a no-op for 3.12-3.14.
CI:
* 3.15 joins every bridge_example matrix (macOS and iOS x
cocoapods/spm, Android, Windows, Linux amd64/arm64). Each job runs
the seeding step with PYTHON_BUILD_RUN_ID / DART_BRIDGE_RUN_ID set to
the python-build and dart-bridge `support-py3.15` runs. Clear both
once 3.15 is released.
* version_tables_in_sync compares against PYTHON_BUILD_MANIFEST_URL
(the python-build branch manifest) when set, again on top of the
pinned date.
Windows: CPython 3.15 bundles Tcl/Tk 9 (`tcl90.dll`, `tcl9tk90.dll`,
`libtommath.dll`). The Tk cleanup now drops them like it drops the 8.6
DLLs.
No Dart or native logic needed to change for the new minor. Wheel tags,
the extension-suffix regex, the sitecustomize shims and _sp_bootstrap's
importlib hooks are minor-agnostic and unchanged in 3.15.2.
Copy file name to clipboardExpand all lines: src/serious_python/CHANGELOG.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,8 @@
1
+
## 6.2.0
2
+
3
+
***Python 3.15 (3.15.2) as a pre-release line.** Select it with `--python-version 3.15` / `SERIOUS_PYTHON_VERSION=3.15`. It is never the default: 3.14 stays the default until Pyodide 3.15 is final and `pypi.flet.dev` has cp315 mobile wheels. Web builds use Pyodide `315.0.0a2` (wheel tag `pyemscripten-2026.5-wasm32`). The 3.15 runtimes and Android `dart_bridge` binaries come from python-build and dart-bridge releases that are not cut yet. Until then, build 3.15 against their CI artifacts (see "Testing unreleased runtimes" in the README).
4
+
* New `SERIOUS_PYTHON_ANDROID_PYTHON_DIST` env var points Android builds at a directory of runtime archives instead of the python-build release. See serious_python_android 6.2.0.
5
+
1
6
## 6.1.3
2
7
3
8
* Fix the `package` command hiding why a step failed when the error went to stdout, such as the `SyntaxError` from compiling an app file, which made `flet build` fail with no explanation unless run with `-vv` ([#262](https://github.com/flet-dev/serious-python/pull/262), [flet-dev/flet#7029](https://github.com/flet-dev/flet/issues/7029)).
***Android** always re-checks the release URL, so point it at local files
180
+
instead: `SERIOUS_PYTHON_ANDROID_PYTHON_DIST=<dir>` for
181
+
`python-android-dart-<full>-<abi>.tar.gz` and
182
+
`SERIOUS_PYTHON_DART_BRIDGE_DIST=<dir>` for
183
+
`libdart_bridge-android-<abi>-py<X.Y>.so`.
184
+
185
+
`.github/scripts/seed_unreleased_runtimes.sh` does this from GitHub Actions run
186
+
artifacts. CI uses it to test a Python minor before its runtimes are released.
187
+
165
188
#### Installing requirements
166
189
167
190
Python app dependencies are installed with the `--requirements` option (alias `-r`). The value is passed verbatim to `pip`, so any flag pip accepts works. Pass each dependency as its own option to support specifiers that contain commas:
*`SERIOUS_PYTHON_ANDROID_PYTHON_DIST=<dir>` makes the build take `python-android-dart-<full>-<abi>.tar.gz` from `<dir>` instead of downloading it from the python-build release. It mirrors `SERIOUS_PYTHON_DART_BRIDGE_DIST`. Unlike `SERIOUS_PYTHON_BUILD_DIST`, the archives still go through the normal stdlib/site-packages staging. The cached download can't be used for this because the build re-checks the release URL even when the file is cached.
5
+
1
6
## 6.1.3
2
7
3
8
* Align with the serious_python **6.1.3** release ([#262](https://github.com/flet-dev/serious-python/pull/262)).
0 commit comments