Prepare 0.86.2 release: fix stale code under flet debug android (serious_python 4.3.4)#6690
Merged
Conversation
…rious_python 4.3.4) `flet debug android` kept running previously-unpacked, stale app code after a re-run. `flet debug` reinstalls the same-version APK on each iteration (`flutter run` does an update install that preserves app data), and serious_python's on-device extraction cache — keyed only on `versionName+versionCode` — never saw the version change, so it skipped re-unpacking the new `app.zip`. Bump the build template's serious_python pin to 4.3.4, which folds the APK's `lastUpdateTime` into the cache key so every (re)install re-extracts the current code. `flet build apk` was never affected. Fixes #6682
Deploying flet-website-v2 with
|
| Latest commit: |
79da1b4
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://2d674a08.flet-website-v2.pages.dev |
| Branch Preview URL: | https://flet-0-86-2.flet-website-v2.pages.dev |
…6694) * fix(video): re-apply player settings after visibility toggle (#6683) Video's media player lives on the Flutter State, but the 'last applied' sentinels (_volume, _pitch, _playback_rate, _shuffle_playlist, _playlist_mode, _subtitle_track) were stored on the persistent control model. Toggling `visible` off/on disposes and recreates the State and its Player (a fresh Player defaults to volume 100), but the model-side sentinels survived, so build()'s diff saw no change and skipped re-applying them — leaving volume (and the others) stuck at their defaults. Move these sentinels to State instance fields so they share the player's lifetime (mirroring flet-audio), and reset them in _setup() to cover the didUpdateWidget control-swap path. build() now re-applies every player property to a freshly created Player. _fullscreen intentionally stays on the control model: it is Video-widget UI state, not a Player property. * add .gitignore to flet-secure-storage * update pubspec.yaml * update changelogs * update * docs(video): clarify why _setup resets the player-setting sentinels Address Copilot PR review: the old comment implied the visible off/on path is what makes the _setup reset necessary, but that path recreates the whole State (fields already null). The reset is actually required for the didUpdateWidget control-swap path, where the same State is reused with a fresh player. No behavior change. * ci: collapse duplicate push + pull_request runs via branch-keyed concurrency When a branch has an open PR, a push fires both a 'push' and a 'pull_request' event. ci.yml's concurrency group keyed on github.event_name (and PR number vs ref), so the two events landed in different groups and the full Build & Publish matrix ran twice, in parallel, for every push. Key the group on the branch (github.event.pull_request.head.ref || github.ref_name) instead — as flet-build-test/flet-test/macos-integration-tests already do — so push + PR collapse into a single run. Tag/main pushes have no PR event and stay uniquely keyed by ref_name, so releases are unaffected. Also add the same branch-keyed concurrency to zizmor.yml, which had none and therefore also ran twice per push.
Updates the pinned `PYTHON_BUILD_RELEASE_DATE` in `python_versions.py` so Flet CLI tracks the latest python-build release date and stays aligned with serious_python version metadata.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #6682 — code edits not taking effect under
flet debug android.flet debug androidre-packages the app, rebuilds the APK, andflutter run -d <device>reinstalls it, so the new code is in the freshly installed APK's assets. But on Android,serious_pythoncopies the app payload out of the APK to a writable dir only when its cache key changes, and that key wasversionName+versionCode.flet debugnever bumps the version between iterations, andflutter rundoes an update install that preserves app data (including the cache marker), so the key never changed → re-extraction was skipped → the app kept running stale code.flet build apkwas never affected (fresh/version-bumped install), which matched the reporter's observation. iOS/desktop are also unaffected — they run the app straight from the read-only app bundle, whichflutter runfully replaces each reinstall.Change
Bump the
flet buildtemplate'sserious_pythonpin 4.3.3 → 4.3.4. serious_python 4.3.4 folds the APK'sPackageManager.lastUpdateTimeinto the extraction cache key, so every (re)install re-extracts the current code while ordinary relaunches still hit the cache.Files, mirroring the 0.86.1 release-prep convention:
sdk/python/templates/build/.../pubspec.yaml— pin bump.CHANGELOG.md—## 0.86.2bug-fix entry.packages/flet/CHANGELOG.md+packages/flet/pubspec.yaml— Dart package version bumped for release coordination (no code change).This depends on serious_python 4.3.4, which is prepared in flet-dev/serious-python#235 but not yet published to pub.dev. Do not merge/release this until 4.3.4 is live on pub.dev, or
flet buildwill fail to resolve the pin.Verification
Not exercised on a device here. End-to-end check once 4.3.4 is published:
flet debug android→ confirm app shows → editmain.py→flet debug androidagain → confirm the edit now appears (previously it wouldn't).Summary by Sourcery
Prepare the 0.86.2 release to fix stale code when using
flet debug androidby updating the serious_python dependency and coordinating package versions.Bug Fixes:
flet debug androidby relying on serious_python 4.3.4’s improved on-device extraction cache behavior.Enhancements:
Documentation:
Chores:
fletDart package version to 0.86.2 for release coordination, without changing its code.