Skip to content

Conversation

@FeodorFitsner
Copy link
Contributor

No description provided.

Introduces the zipDirectoryPosix method to ensure archive entries use POSIX-style paths. Updates archive creation to use this method for better cross-platform compatibility.
Changed calls to encoder.addFile and encoder.close to be awaited, ensuring proper handling of asynchronous file operations during package creation.
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.
Added target_compile_features to require C++20 for the plugin. This ensures the code is compiled with C++20 features and compatibility.
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.
Configured ctypes argument and return types for liblog.__android_log_write to ensure correct interaction with the native Android logging library.
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request updates the serious-python project to require C++20 for the Windows plugin and introduces several improvements for cross-platform compatibility and development tooling.

Changes:

  • Added C++20 requirement for Windows plugin CMakeLists.txt
  • Improved Windows path handling by normalizing backslashes to forward slashes and using proper System32 capitalization
  • Replaced zipDirectory with new zipDirectoryPosix method to ensure POSIX-compliant paths in archives for cross-platform compatibility
  • Pinned flet dependency to version 0.28.3 across all CI workflows for reproducible builds
  • Updated macOS project configuration with secure state restoration support and GPU validation
  • Added Swift and Xcode build directories to .gitignore

Reviewed changes

Copilot reviewed 7 out of 10 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/serious_python_windows/windows/CMakeLists.txt Added C++20 requirement and improved Windows path handling with variable normalization
src/serious_python/example/flet_example/pubspec.lock Updated dependency versions (transitive dependencies from flet 0.28.3)
src/serious_python/example/flet_example/macos/Runner/AppDelegate.swift Added applicationSupportsSecureRestorableState for security best practices
src/serious_python/example/flet_example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme Enabled GPU validation mode for development
src/serious_python/example/flet_example/macos/Podfile.lock Updated pod dependencies and checksums (device_info_plus, file_picker, screen_retriever_macos)
src/serious_python/example/flet_example/app/app.zip.hash Build artifact updated from new zip method
src/serious_python/example/flet_example/.gitignore Added .build/ and .swiftpm/ directories
src/serious_python/bin/package_command.dart Implemented zipDirectoryPosix method for cross-platform path compatibility
.github/workflows/ci.yml Pinned flet to 0.28.3 for reproducible builds across all test platforms

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

# 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)
Copy link

Copilot AI Jan 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The C++20 requirement appears to be added to support the #include header (line 23 of serious_python_windows_plugin.cpp), which is a C++20 feature. However, std::format doesn't appear to be used anywhere in the code. If the header is not needed, consider removing it to avoid unnecessarily raising the minimum C++ standard requirement. This would improve compatibility with older development environments and reduce potential build issues for users.

Suggested change
target_compile_features(${PLUGIN_NAME} PRIVATE cxx_std_20)
target_compile_features(${PLUGIN_NAME} PRIVATE cxx_std_17)

Copilot uses AI. Check for mistakes.
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.
@FeodorFitsner FeodorFitsner changed the title Cxx 20 Require C++20 for the Windows plugin and Logcat crash fix Jan 31, 2026
@FeodorFitsner FeodorFitsner merged commit 2a95061 into main Jan 31, 2026
15 checks passed
@FeodorFitsner FeodorFitsner deleted the cxx-20 branch February 1, 2026 00:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants