From b0f95977abf91315d2d47706194bea4db50c33ca Mon Sep 17 00:00:00 2001 From: Feodor Fitsner Date: Mon, 29 Dec 2025 18:43:19 -0800 Subject: [PATCH 1/7] Add zipDirectoryPosix to create POSIX-compliant archives Introduces the zipDirectoryPosix method to ensure archive entries use POSIX-style paths. Updates archive creation to use this method for better cross-platform compatibility. --- src/serious_python/bin/package_command.dart | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/serious_python/bin/package_command.dart b/src/serious_python/bin/package_command.dart index 514e54ca..17080a5a 100644 --- a/src/serious_python/bin/package_command.dart +++ b/src/serious_python/bin/package_command.dart @@ -432,8 +432,7 @@ class PackageCommand extends Command { // create archive stdout.writeln( "Creating app archive at ${dest.path} from a temp directory"); - final encoder = ZipFileEncoder(); - await encoder.zipDirectory(tempDir, filename: dest.path); + await zipDirectoryPosix(tempDir, dest); // create hash file stdout.writeln("Writing app archive hash to ${dest.path}.hash"); @@ -517,6 +516,21 @@ class PackageCommand extends Command { return proc.exitCode; } + Future zipDirectoryPosix(Directory source, File dest) async { + final encoder = ZipFileEncoder(); + encoder.create(dest.path); + await for (final entity + in source.list(recursive: true, followLinks: false)) { + if (entity is! File) { + continue; + } + final relativePath = path.relative(entity.path, from: source.path); + final posixPath = path.posix.joinAll(path.split(relativePath)); + encoder.addFile(entity, posixPath); + } + encoder.close(); + } + Future runPython(List args, {Map? environment}) async { if (_pythonDir == null) { From 782af86fcadd80ff35eca6f09950d6148800526e Mon Sep 17 00:00:00 2001 From: Feodor Fitsner Date: Mon, 29 Dec 2025 18:53:51 -0800 Subject: [PATCH 2/7] Await async calls in package file encoding Changed calls to encoder.addFile and encoder.close to be awaited, ensuring proper handling of asynchronous file operations during package creation. --- src/serious_python/bin/package_command.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/serious_python/bin/package_command.dart b/src/serious_python/bin/package_command.dart index 17080a5a..21100e00 100644 --- a/src/serious_python/bin/package_command.dart +++ b/src/serious_python/bin/package_command.dart @@ -526,9 +526,9 @@ class PackageCommand extends Command { } final relativePath = path.relative(entity.path, from: source.path); final posixPath = path.posix.joinAll(path.split(relativePath)); - encoder.addFile(entity, posixPath); + await encoder.addFile(entity, posixPath); } - encoder.close(); + await encoder.close(); } Future runPython(List args, From 0335ed6e6ed5383444bfcea0932abe2fee173691 Mon Sep 17 00:00:00 2001 From: Feodor Fitsner Date: Mon, 29 Dec 2025 19:12:30 -0800 Subject: [PATCH 3/7] Pin flet version in CI and update dependencies CI workflow now pins the flet dependency to version 0.28.3 for all platforms. Updated .gitignore for macOS build artifacts, enabled GPU validation in Xcode scheme, and added secure restorable state support in AppDelegate. Dependency versions were updated in pubspec.lock and Podfile.lock, including upgrades to serious_python packages and other transitive dependencies. --- .github/workflows/ci.yml | 10 ++-- .../example/flet_example/.gitignore | 2 + .../example/flet_example/app/app.zip.hash | 2 +- .../example/flet_example/macos/Podfile.lock | 38 ++++++++++----- .../xcshareddata/xcschemes/Runner.xcscheme | 1 + .../macos/Runner/AppDelegate.swift | 4 ++ .../example/flet_example/pubspec.lock | 48 +++++++++++-------- 7 files changed, 66 insertions(+), 39 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0dda04c3..f2648d55 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,7 @@ jobs: - name: Run tests working-directory: "src/serious_python/example/flet_example" run: | - dart run serious_python:main package app/src --platform Darwin --requirements flet + dart run serious_python:main package app/src --platform Darwin --requirements flet==0.28.3 flutter test integration_test --device-id macos ios: @@ -62,7 +62,7 @@ jobs: - name: Run tests working-directory: "src/serious_python/example/flet_example" run: | - dart run serious_python:main package app/src --platform iOS --requirements flet + dart run serious_python:main package app/src --platform iOS --requirements flet==0.28.3 flutter test integration_test --device-id ${{ steps.simulator.outputs.udid }} android: @@ -115,7 +115,7 @@ jobs: pre-emulator-launch-script: | sdkmanager --list_installed script: | - cd src/serious_python/example/flet_example && dart run serious_python:main package app/src --platform Android --requirements flet + cd src/serious_python/example/flet_example && dart run serious_python:main package app/src --platform Android --requirements flet==0.28.3 cd src/serious_python/example/flet_example && flutter test integration_test --device-id emulator-${{ env.EMULATOR_PORT }} windows: @@ -134,7 +134,7 @@ jobs: - name: Run tests working-directory: "src/serious_python/example/flet_example" run: | - dart run serious_python:main package app/src --platform Windows --requirements flet + dart run serious_python:main package app/src --platform Windows --requirements flet==0.28.3 flutter test integration_test -d windows linux: @@ -205,7 +205,7 @@ jobs: working-directory: src/serious_python/example/flet_example run: | flutter pub get - dart run serious_python:main package app/src --platform Linux --requirements flet + dart run serious_python:main package app/src --platform Linux --requirements flet==0.28.3 xvfb-run flutter test integration_test -d linux publish: diff --git a/src/serious_python/example/flet_example/.gitignore b/src/serious_python/example/flet_example/.gitignore index 24476c5d..6c319542 100644 --- a/src/serious_python/example/flet_example/.gitignore +++ b/src/serious_python/example/flet_example/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/src/serious_python/example/flet_example/app/app.zip.hash b/src/serious_python/example/flet_example/app/app.zip.hash index a846e48f..4a9ba080 100644 --- a/src/serious_python/example/flet_example/app/app.zip.hash +++ b/src/serious_python/example/flet_example/app/app.zip.hash @@ -1 +1 @@ -43f8a7b00e44a09647dda36299259976950ba7259c5060de20677c449690fc73 \ No newline at end of file +2ce2f5ff38bcf342e42fb77b2bc8e4262d90d73d5bc3284055242c6313cbe5c0 \ No newline at end of file diff --git a/src/serious_python/example/flet_example/macos/Podfile.lock b/src/serious_python/example/flet_example/macos/Podfile.lock index b75f985f..3cbcdcdf 100644 --- a/src/serious_python/example/flet_example/macos/Podfile.lock +++ b/src/serious_python/example/flet_example/macos/Podfile.lock @@ -1,13 +1,17 @@ PODS: + - device_info_plus (0.0.1): + - FlutterMacOS + - file_picker (0.0.1): + - FlutterMacOS - FlutterMacOS (1.0.0) - package_info_plus (0.0.1): - FlutterMacOS - path_provider_foundation (0.0.1): - Flutter - FlutterMacOS - - screen_retriever (0.0.1): + - screen_retriever_macos (0.0.1): - FlutterMacOS - - serious_python_darwin (0.8.0): + - serious_python_darwin (0.9.8): - Flutter - FlutterMacOS - shared_preferences_foundation (0.0.1): @@ -21,10 +25,12 @@ PODS: - FlutterMacOS DEPENDENCIES: + - device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`) + - file_picker (from `Flutter/ephemeral/.symlinks/plugins/file_picker/macos`) - FlutterMacOS (from `Flutter/ephemeral`) - package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`) - path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`) - - screen_retriever (from `Flutter/ephemeral/.symlinks/plugins/screen_retriever/macos`) + - screen_retriever_macos (from `Flutter/ephemeral/.symlinks/plugins/screen_retriever_macos/macos`) - serious_python_darwin (from `Flutter/ephemeral/.symlinks/plugins/serious_python_darwin/darwin`) - shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`) - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) @@ -32,14 +38,18 @@ DEPENDENCIES: - window_to_front (from `Flutter/ephemeral/.symlinks/plugins/window_to_front/macos`) EXTERNAL SOURCES: + device_info_plus: + :path: Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos + file_picker: + :path: Flutter/ephemeral/.symlinks/plugins/file_picker/macos FlutterMacOS: :path: Flutter/ephemeral package_info_plus: :path: Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos path_provider_foundation: :path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin - screen_retriever: - :path: Flutter/ephemeral/.symlinks/plugins/screen_retriever/macos + screen_retriever_macos: + :path: Flutter/ephemeral/.symlinks/plugins/screen_retriever_macos/macos serious_python_darwin: :path: Flutter/ephemeral/.symlinks/plugins/serious_python_darwin/darwin shared_preferences_foundation: @@ -52,15 +62,17 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/window_to_front/macos SPEC CHECKSUMS: + device_info_plus: 4fb280989f669696856f8b129e4a5e3cd6c48f76 + file_picker: 7584aae6fa07a041af2b36a2655122d42f578c1a FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 - package_info_plus: fa739dd842b393193c5ca93c26798dff6e3d0e0c - path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 - screen_retriever: 59634572a57080243dd1bf715e55b6c54f241a38 - serious_python_darwin: 351e50099cb9e34f344f75af29b1d36d3c0922f2 - shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 - url_launcher_macos: c82c93949963e55b228a30115bd219499a6fe404 - window_manager: 3a1844359a6295ab1e47659b1a777e36773cd6e8 - window_to_front: 4cdc24ddd8461ad1a55fa06286d6a79d8b29e8d8 + package_info_plus: a8a591e70e87ce97ce5d21b2594f69cea9e0312f + path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + screen_retriever_macos: 452e51764a9e1cdb74b3c541238795849f21557f + serious_python_darwin: d8fa26f4b226e433b51fdb0259c60b3ec9c48527 + shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 + url_launcher_macos: 0fba8ddabfc33ce0a9afe7c5fef5aab3d8d2d673 + window_manager: 1d01fa7ac65a6e6f83b965471b1a7fdd3f06166c + window_to_front: 9e76fd432e36700a197dac86a0011e49c89abe0a PODFILE CHECKSUM: 9ebaf0ce3d369aaa26a9ea0e159195ed94724cf3 diff --git a/src/serious_python/example/flet_example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/src/serious_python/example/flet_example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index aece3479..410c6419 100644 --- a/src/serious_python/example/flet_example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/src/serious_python/example/flet_example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -59,6 +59,7 @@ ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" + enableGPUValidationMode = "1" allowLocationSimulation = "YES"> diff --git a/src/serious_python/example/flet_example/macos/Runner/AppDelegate.swift b/src/serious_python/example/flet_example/macos/Runner/AppDelegate.swift index 8e02df28..b3c17614 100644 --- a/src/serious_python/example/flet_example/macos/Runner/AppDelegate.swift +++ b/src/serious_python/example/flet_example/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/src/serious_python/example/flet_example/pubspec.lock b/src/serious_python/example/flet_example/pubspec.lock index 01e6f551..eacde972 100644 --- a/src/serious_python/example/flet_example/pubspec.lock +++ b/src/serious_python/example/flet_example/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: archive - sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d + sha256: "2fde1607386ab523f7a36bb3e7edb43bd58e6edaf2ffb29d8a6d578b297fdbbd" url: "https://pub.dev" source: hosted - version: "3.6.1" + version: "4.0.7" args: dependency: transitive description: @@ -21,10 +21,10 @@ packages: dependency: transitive description: name: async - sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 url: "https://pub.dev" source: hosted - version: "2.13.0" + version: "2.12.0" boolean_selector: dependency: transitive description: @@ -117,10 +117,10 @@ packages: dependency: transitive description: name: fake_async - sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.2" ffi: dependency: transitive description: @@ -280,10 +280,10 @@ packages: dependency: transitive description: name: intl - sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted - version: "0.20.2" + version: "0.19.0" js: dependency: transitive description: @@ -304,10 +304,10 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec url: "https://pub.dev" source: hosted - version: "10.0.9" + version: "10.0.8" leak_tracker_flutter_testing: dependency: transitive description: @@ -476,6 +476,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.8" + posix: + dependency: transitive + description: + name: posix + sha256: "6323a5b0fa688b6a010df4905a56b00181479e6d10534cecfecede2aa55add61" + url: "https://pub.dev" + source: hosted + version: "6.0.3" process: dependency: transitive description: @@ -554,42 +562,42 @@ packages: path: "../.." relative: true source: path - version: "0.9.3" + version: "0.9.8" serious_python_android: dependency: transitive description: path: "../../../serious_python_android" relative: true source: path - version: "0.9.3" + version: "0.9.8" serious_python_darwin: dependency: transitive description: path: "../../../serious_python_darwin" relative: true source: path - version: "0.9.3" + version: "0.9.8" serious_python_linux: dependency: transitive description: path: "../../../serious_python_linux" relative: true source: path - version: "0.9.3" + version: "0.9.8" serious_python_platform_interface: dependency: transitive description: path: "../../../serious_python_platform_interface" relative: true source: path - version: "0.9.3" + version: "0.9.8" serious_python_windows: dependency: transitive description: path: "../../../serious_python_windows" relative: true source: path - version: "0.9.3" + version: "0.9.8" shared_preferences: dependency: transitive description: @@ -839,10 +847,10 @@ packages: dependency: transitive description: name: vm_service - sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" url: "https://pub.dev" source: hosted - version: "15.0.0" + version: "14.3.1" web: dependency: transitive description: @@ -863,10 +871,10 @@ packages: dependency: transitive description: name: webdriver - sha256: "2f3a14ca026957870cfd9c635b83507e0e51d8091568e90129fbf805aba7cade" + sha256: "3d773670966f02a646319410766d3b5e1037efb7f07cc68f844d5e06cd4d61c8" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.0.4" win32: dependency: transitive description: From d9c9e18551ec0a19518f1a6548dbcad4885ea632 Mon Sep 17 00:00:00 2001 From: Feodor Fitsner Date: Mon, 12 Jan 2026 18:05:19 -0800 Subject: [PATCH 4/7] Enforce C++20 standard for plugin build Added target_compile_features to require C++20 for the plugin. This ensures the code is compiled with C++20 features and compatibility. --- src/serious_python_windows/windows/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/serious_python_windows/windows/CMakeLists.txt b/src/serious_python_windows/windows/CMakeLists.txt index d13a5c11..9a160f57 100644 --- a/src/serious_python_windows/windows/CMakeLists.txt +++ b/src/serious_python_windows/windows/CMakeLists.txt @@ -42,6 +42,7 @@ add_library(${PLUGIN_NAME} SHARED # application-level CMakeLists.txt. This can be removed for plugins that want # full control over build settings. apply_standard_settings(${PLUGIN_NAME}) +target_compile_features(${PLUGIN_NAME} PRIVATE cxx_std_20) # Symbols are hidden by default to reduce the chance of accidental conflicts # between plugins. This should not be removed; any symbols that should be @@ -105,4 +106,4 @@ if(DEFINED ENV{SERIOUS_PYTHON_SITE_PACKAGES}) "$ENV{SERIOUS_PYTHON_SITE_PACKAGES}" "${CMAKE_BINARY_DIR}/runner/$<$:Release>$<$:Debug>/site-packages" ) -endif() \ No newline at end of file +endif() From 9d8530b142b25909618d21c8d46b1a9b13c16a74 Mon Sep 17 00:00:00 2001 From: Feodor Fitsner Date: Mon, 12 Jan 2026 18:28:36 -0800 Subject: [PATCH 5/7] Normalize WINDIR path for bundled DLLs in CMake Replaces backslashes with forward slashes in the WINDIR environment variable and updates DLL paths to use the normalized variable. This ensures consistent path formatting for bundled system libraries. --- src/serious_python_windows/windows/CMakeLists.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/serious_python_windows/windows/CMakeLists.txt b/src/serious_python_windows/windows/CMakeLists.txt index 9a160f57..17046ec6 100644 --- a/src/serious_python_windows/windows/CMakeLists.txt +++ b/src/serious_python_windows/windows/CMakeLists.txt @@ -69,12 +69,13 @@ target_link_libraries(${PLUGIN_NAME} PRIVATE # List of absolute paths to libraries that should be bundled with the plugin. # This list could contain prebuilt libraries, or libraries created by an # external build triggered from this build file. +string(REPLACE "\\" "/" SERIOUS_PYTHON_WINDIR "$ENV{WINDIR}") set(serious_python_windows_bundled_libraries "${PYTHON_PACKAGE}/python312$<$:_d>.dll" "${PYTHON_PACKAGE}/python3$<$:_d>.dll" - "$ENV{WINDIR}/system32/msvcp140.dll" - "$ENV{WINDIR}/system32/vcruntime140.dll" - "$ENV{WINDIR}/system32/vcruntime140_1.dll" + "${SERIOUS_PYTHON_WINDIR}/System32/msvcp140.dll" + "${SERIOUS_PYTHON_WINDIR}/System32/vcruntime140.dll" + "${SERIOUS_PYTHON_WINDIR}/System32/vcruntime140_1.dll" PARENT_SCOPE ) From 00dee35ead6eaa8341fca6272d9eb6923654149a Mon Sep 17 00:00:00 2001 From: Feodor Fitsner Date: Sat, 31 Jan 2026 10:54:40 -0800 Subject: [PATCH 6/7] Set argtypes and restype for __android_log_write Configured ctypes argument and return types for liblog.__android_log_write to ensure correct interaction with the native Android logging library. --- src/serious_python_android/lib/src/cpython.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/serious_python_android/lib/src/cpython.dart b/src/serious_python_android/lib/src/cpython.dart index d81522c5..9182eb6a 100644 --- a/src/serious_python_android/lib/src/cpython.dart +++ b/src/serious_python_android/lib/src/cpython.dart @@ -33,9 +33,11 @@ import logging,sys if not getattr(sys, "__serious_python_logcat_configured__", False): sys.__serious_python_logcat_configured__ = True - from ctypes import cdll + from ctypes import cdll, c_int, c_char_p liblog = cdll.LoadLibrary("liblog.so") ANDROID_LOG_INFO = 4 + liblog.__android_log_write.argtypes = [c_int, c_char_p, c_char_p] + liblog.__android_log_write.restype = c_int def _log_to_logcat(msg, level=ANDROID_LOG_INFO): if not msg: From 436e370ca8c0e6f5f2e390fab8bec854d233348f Mon Sep 17 00:00:00 2001 From: Feodor Fitsner Date: Sat, 31 Jan 2026 11:00:10 -0800 Subject: [PATCH 7/7] Bump version to 0.9.9 and update changelogs Release 0.9.9 for all serious_python packages. Adds zipDirectoryPosix for POSIX-compliant app archives on Windows, enforces C++20 standard for plugin build, normalizes WINDIR path for bundled DLLs in CMake, and fixes Logcat logging crash on some Android devices. Updates pubspecs and build files to reflect the new version. --- src/serious_python/CHANGELOG.md | 7 +++ .../example/flask_example/pubspec.lock | 40 ++++++++++------- .../example/run_example/pubspec.lock | 44 +++++++++++-------- src/serious_python/pubspec.yaml | 2 +- src/serious_python_android/CHANGELOG.md | 7 +++ .../android/build.gradle | 2 +- src/serious_python_android/pubspec.yaml | 2 +- src/serious_python_darwin/CHANGELOG.md | 7 +++ .../darwin/serious_python_darwin.podspec | 2 +- src/serious_python_darwin/pubspec.yaml | 2 +- src/serious_python_linux/CHANGELOG.md | 7 +++ src/serious_python_linux/pubspec.yaml | 2 +- .../CHANGELOG.md | 7 +++ .../pubspec.yaml | 2 +- src/serious_python_windows/CHANGELOG.md | 7 +++ src/serious_python_windows/pubspec.yaml | 2 +- 16 files changed, 100 insertions(+), 42 deletions(-) diff --git a/src/serious_python/CHANGELOG.md b/src/serious_python/CHANGELOG.md index 09cd00dd..6a5cb2e8 100644 --- a/src/serious_python/CHANGELOG.md +++ b/src/serious_python/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.9.9 + +* Add zipDirectoryPosix to create POSIX-compliant app archives on Windows. +* Enforce C++20 standard for `serious_python` plugin build. +* Fix: Normalize `WINDIR` path for bundled DLLs in CMake. +* Fix Logcat logging crash on some Android devices. + ## 0.9.8 * Fix logging on Android. diff --git a/src/serious_python/example/flask_example/pubspec.lock b/src/serious_python/example/flask_example/pubspec.lock index 260ed69f..abbca891 100644 --- a/src/serious_python/example/flask_example/pubspec.lock +++ b/src/serious_python/example/flask_example/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: archive - sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d + sha256: "2fde1607386ab523f7a36bb3e7edb43bd58e6edaf2ffb29d8a6d578b297fdbbd" url: "https://pub.dev" source: hosted - version: "3.6.1" + version: "4.0.7" args: dependency: transitive description: @@ -21,10 +21,10 @@ packages: dependency: transitive description: name: async - sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 url: "https://pub.dev" source: hosted - version: "2.13.0" + version: "2.12.0" boolean_selector: dependency: transitive description: @@ -77,10 +77,10 @@ packages: dependency: transitive description: name: fake_async - sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.2" ffi: dependency: transitive description: @@ -143,10 +143,10 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec url: "https://pub.dev" source: hosted - version: "10.0.9" + version: "10.0.8" leak_tracker_flutter_testing: dependency: transitive description: @@ -275,48 +275,56 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.8" + posix: + dependency: transitive + description: + name: posix + sha256: "6323a5b0fa688b6a010df4905a56b00181479e6d10534cecfecede2aa55add61" + url: "https://pub.dev" + source: hosted + version: "6.0.3" serious_python: dependency: "direct main" description: path: "../.." relative: true source: path - version: "0.9.3" + version: "0.9.9" serious_python_android: dependency: transitive description: path: "../../../serious_python_android" relative: true source: path - version: "0.9.3" + version: "0.9.9" serious_python_darwin: dependency: transitive description: path: "../../../serious_python_darwin" relative: true source: path - version: "0.9.3" + version: "0.9.9" serious_python_linux: dependency: transitive description: path: "../../../serious_python_linux" relative: true source: path - version: "0.9.3" + version: "0.9.9" serious_python_platform_interface: dependency: transitive description: path: "../../../serious_python_platform_interface" relative: true source: path - version: "0.9.3" + version: "0.9.9" serious_python_windows: dependency: transitive description: path: "../../../serious_python_windows" relative: true source: path - version: "0.9.3" + version: "0.9.9" shelf: dependency: transitive description: @@ -406,10 +414,10 @@ packages: dependency: transitive description: name: vm_service - sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" url: "https://pub.dev" source: hosted - version: "15.0.0" + version: "14.3.1" web: dependency: transitive description: diff --git a/src/serious_python/example/run_example/pubspec.lock b/src/serious_python/example/run_example/pubspec.lock index d614cac1..d6dc6e51 100644 --- a/src/serious_python/example/run_example/pubspec.lock +++ b/src/serious_python/example/run_example/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: archive - sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d + sha256: "2fde1607386ab523f7a36bb3e7edb43bd58e6edaf2ffb29d8a6d578b297fdbbd" url: "https://pub.dev" source: hosted - version: "3.6.1" + version: "4.0.7" args: dependency: transitive description: @@ -21,10 +21,10 @@ packages: dependency: transitive description: name: async - sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 url: "https://pub.dev" source: hosted - version: "2.13.0" + version: "2.12.0" boolean_selector: dependency: transitive description: @@ -77,10 +77,10 @@ packages: dependency: transitive description: name: fake_async - sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.2" ffi: dependency: transitive description: @@ -158,10 +158,10 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec url: "https://pub.dev" source: hosted - version: "10.0.9" + version: "10.0.8" leak_tracker_flutter_testing: dependency: transitive description: @@ -290,6 +290,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.8" + posix: + dependency: transitive + description: + name: posix + sha256: "6323a5b0fa688b6a010df4905a56b00181479e6d10534cecfecede2aa55add61" + url: "https://pub.dev" + source: hosted + version: "6.0.3" process: dependency: transitive description: @@ -304,42 +312,42 @@ packages: path: "../.." relative: true source: path - version: "0.9.3" + version: "0.9.9" serious_python_android: dependency: transitive description: path: "../../../serious_python_android" relative: true source: path - version: "0.9.3" + version: "0.9.9" serious_python_darwin: dependency: transitive description: path: "../../../serious_python_darwin" relative: true source: path - version: "0.9.3" + version: "0.9.9" serious_python_linux: dependency: transitive description: path: "../../../serious_python_linux" relative: true source: path - version: "0.9.3" + version: "0.9.9" serious_python_platform_interface: dependency: transitive description: path: "../../../serious_python_platform_interface" relative: true source: path - version: "0.9.3" + version: "0.9.9" serious_python_windows: dependency: transitive description: path: "../../../serious_python_windows" relative: true source: path - version: "0.9.3" + version: "0.9.9" shelf: dependency: transitive description: @@ -437,10 +445,10 @@ packages: dependency: transitive description: name: vm_service - sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" url: "https://pub.dev" source: hosted - version: "15.0.0" + version: "14.3.1" web: dependency: transitive description: @@ -453,10 +461,10 @@ packages: dependency: transitive description: name: webdriver - sha256: "2f3a14ca026957870cfd9c635b83507e0e51d8091568e90129fbf805aba7cade" + sha256: "3d773670966f02a646319410766d3b5e1037efb7f07cc68f844d5e06cd4d61c8" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.0.4" xdg_directories: dependency: transitive description: diff --git a/src/serious_python/pubspec.yaml b/src/serious_python/pubspec.yaml index 04deeb68..ba8975a4 100644 --- a/src/serious_python/pubspec.yaml +++ b/src/serious_python/pubspec.yaml @@ -2,7 +2,7 @@ name: serious_python description: A cross-platform plugin for adding embedded Python runtime to your Flutter apps. homepage: https://flet.dev repository: https://github.com/flet-dev/serious-python -version: 0.9.8 +version: 0.9.9 platforms: ios: diff --git a/src/serious_python_android/CHANGELOG.md b/src/serious_python_android/CHANGELOG.md index 1f5d9c5d..00985cb6 100644 --- a/src/serious_python_android/CHANGELOG.md +++ b/src/serious_python_android/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.9.9 + +* Add zipDirectoryPosix to create POSIX-compliant app archives on Windows. +* Enforce C++20 standard for `serious_python` plugin build. +* Fix: Normalize `WINDIR` path for bundled DLLs in CMake. +* Fix Logcat logging crash on some Android devices. + ## 0.9.8 * Fix logging on Android. diff --git a/src/serious_python_android/android/build.gradle b/src/serious_python_android/android/build.gradle index 570e65b6..d69650a2 100644 --- a/src/serious_python_android/android/build.gradle +++ b/src/serious_python_android/android/build.gradle @@ -1,5 +1,5 @@ group 'com.flet.serious_python_android' -version '0.9.8' +version '0.9.9' def python_version = '3.12' diff --git a/src/serious_python_android/pubspec.yaml b/src/serious_python_android/pubspec.yaml index cff7d312..445a4d24 100644 --- a/src/serious_python_android/pubspec.yaml +++ b/src/serious_python_android/pubspec.yaml @@ -2,7 +2,7 @@ name: serious_python_android description: Android implementation of the serious_python plugin homepage: https://flet.dev repository: https://github.com/flet-dev/serious-python -version: 0.9.8 +version: 0.9.9 environment: sdk: ">=3.0.0 <4.0.0" diff --git a/src/serious_python_darwin/CHANGELOG.md b/src/serious_python_darwin/CHANGELOG.md index 198f8877..31614b39 100644 --- a/src/serious_python_darwin/CHANGELOG.md +++ b/src/serious_python_darwin/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.9.9 + +* Add zipDirectoryPosix to create POSIX-compliant app archives on Windows. +* Enforce C++20 standard for `serious_python` plugin build. +* Fix: Normalize `WINDIR` path for bundled DLLs in CMake. +* Fix Logcat logging crash on some Android devices. + ## 0.9.8 * Fix logging on Android. diff --git a/src/serious_python_darwin/darwin/serious_python_darwin.podspec b/src/serious_python_darwin/darwin/serious_python_darwin.podspec index 85f8ab9a..2f1be9e6 100644 --- a/src/serious_python_darwin/darwin/serious_python_darwin.podspec +++ b/src/serious_python_darwin/darwin/serious_python_darwin.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'serious_python_darwin' - s.version = '0.9.8' + s.version = '0.9.9' s.summary = 'A cross-platform plugin for adding embedded Python runtime to your Flutter apps.' s.description = <<-DESC A cross-platform plugin for adding embedded Python runtime to your Flutter apps. diff --git a/src/serious_python_darwin/pubspec.yaml b/src/serious_python_darwin/pubspec.yaml index c7c85435..bcd65a07 100644 --- a/src/serious_python_darwin/pubspec.yaml +++ b/src/serious_python_darwin/pubspec.yaml @@ -2,7 +2,7 @@ name: serious_python_darwin description: iOS and macOS implementations of the serious_python plugin homepage: https://flet.dev repository: https://github.com/flet-dev/serious-python -version: 0.9.8 +version: 0.9.9 environment: sdk: ">=3.0.0 <4.0.0" diff --git a/src/serious_python_linux/CHANGELOG.md b/src/serious_python_linux/CHANGELOG.md index 49a447b3..69f6ddba 100644 --- a/src/serious_python_linux/CHANGELOG.md +++ b/src/serious_python_linux/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.9.9 + +* Add zipDirectoryPosix to create POSIX-compliant app archives on Windows. +* Enforce C++20 standard for `serious_python` plugin build. +* Fix: Normalize `WINDIR` path for bundled DLLs in CMake. +* Fix Logcat logging crash on some Android devices. + ## 0.9.8 * Fix logging on Android. diff --git a/src/serious_python_linux/pubspec.yaml b/src/serious_python_linux/pubspec.yaml index 3b33cea4..8f202ec1 100644 --- a/src/serious_python_linux/pubspec.yaml +++ b/src/serious_python_linux/pubspec.yaml @@ -2,7 +2,7 @@ name: serious_python_linux description: Linux implementations of the serious_python plugin homepage: https://flet.dev repository: https://github.com/flet-dev/serious-python -version: 0.9.8 +version: 0.9.9 environment: sdk: '>=3.1.3 <4.0.0' diff --git a/src/serious_python_platform_interface/CHANGELOG.md b/src/serious_python_platform_interface/CHANGELOG.md index a01d0f60..d19ed9cd 100644 --- a/src/serious_python_platform_interface/CHANGELOG.md +++ b/src/serious_python_platform_interface/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.9.9 + +* Add zipDirectoryPosix to create POSIX-compliant app archives on Windows. +* Enforce C++20 standard for `serious_python` plugin build. +* Fix: Normalize `WINDIR` path for bundled DLLs in CMake. +* Fix Logcat logging crash on some Android devices. + ## 0.9.8 * Fix logging on Android. diff --git a/src/serious_python_platform_interface/pubspec.yaml b/src/serious_python_platform_interface/pubspec.yaml index f0203c34..29d740f2 100644 --- a/src/serious_python_platform_interface/pubspec.yaml +++ b/src/serious_python_platform_interface/pubspec.yaml @@ -2,7 +2,7 @@ name: serious_python_platform_interface description: A common platform interface for the serious_python plugin. homepage: https://flet.dev repository: https://github.com/flet-dev/serious-python -version: 0.9.8 +version: 0.9.9 environment: sdk: ">=3.0.0 <4.0.0" diff --git a/src/serious_python_windows/CHANGELOG.md b/src/serious_python_windows/CHANGELOG.md index b291d8cb..5be374ac 100644 --- a/src/serious_python_windows/CHANGELOG.md +++ b/src/serious_python_windows/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.9.9 + +* Add zipDirectoryPosix to create POSIX-compliant app archives on Windows. +* Enforce C++20 standard for `serious_python` plugin build. +* Fix: Normalize `WINDIR` path for bundled DLLs in CMake. +* Fix Logcat logging crash on some Android devices. + ## 0.9.8 * Fix logging on Android. diff --git a/src/serious_python_windows/pubspec.yaml b/src/serious_python_windows/pubspec.yaml index ada16c01..16b2ae58 100644 --- a/src/serious_python_windows/pubspec.yaml +++ b/src/serious_python_windows/pubspec.yaml @@ -2,7 +2,7 @@ name: serious_python_windows description: Windows implementations of the serious_python plugin homepage: https://flet.dev repository: https://github.com/flet-dev/serious-python -version: 0.9.8 +version: 0.9.9 environment: sdk: '>=3.1.3 <4.0.0'