July saw a lot of our attention being consumed by the upcoming Python 3.13 release; but we've also seen some other improvements to the BeeWare suite.
What we've done
- We've resolved a number of issues with iOS and Android compatibility in CPython 3.13. Although patches for iOS and Android compatibility landed months ago, a number of changes have been landed since then which have inadvertently broken compatibility with these platforms. These issues usually indicate a subtle issue with the implementation of the feature that has been added - but diagnosing and correcting the source of the problem can often take days. There have also been some small improvements made to the iOS patches, such as a configuration option ensuring App Store compliance for both iOS and macOS.
- We've begun the process of backporting the CPython changes for iOS compatibility to the older supported CPython releases. So far, we've completed the port to 3.12, and the 3.11 port is mostly complete; backports for 3.10 and 3.9 should be underway shortly. This includes significant changes to the Python-Apple-support repository, switching the build of the macOS support package to be based on the official CPython download, and adding a CI test suite that can be used to simplify the process of making a new release.
- We've almost completed adding a test runner script for Android. This will form the basis for an Android CPython buildbot in the very near future.
- We've added support for using an externally managed libmpdec implementation to the iOS patch. This is a change that was recently introduced to CPython, and will become required in CPython 3.15.
- We've almost completed work on a new API for document-based apps.
- We've developed an initial design and prototype for status icon apps.
- We've added an API to make it easier to add and remove commands from a Toga app.
- We corrected an issue that was causing intermittent Toga CI failures on macOS.
- We've improved Briefcase's validation of the version of Git that a user has installed.
- We've corrected an issue with the way macOS signs apps. This was causing problems with apps that have particularly complex application layouts.
- We've modified Briefcase to use the newly available "stripped" Python Standalone binaries on Linux.
- We've improved the validation of document type declarations in a Briefcase project.
What's next?
In August, we'll be continuing preparations for the upcoming Python 3.13 release, and working on the mobile Python binary packaging ecosystem. The initial release candidate for Python 3.13 will be released very soon; with any luck, this means there should be less inadvertent breakages to diagnose, so we can focus on improvements to tools like pip, cibuildwheel, meson-python and more. We expect that this work will take most of the rest of the quarter to release; but there should be some initial signs of progress by the end of the month.
We'll also be at Kiwi PyCon, presenting a keynote about the future of Python.
Want to get involved?
Want to get involved? Here are some open issues that would be a great place to get started with contributing to a BeeWare project. They're all relatively minor changes, but would provide a big improvement to the lives of BeeWare users:
- Update the Toga testbed test suite to use Pixel 7 Pro device sizes
- Filter out a message generated after Xcode updates
- Add the ability to configure the ABIs built by an Android project
- Rationalise the application of adhoc signing on macOS
- Add support for custom PyPI repositories
- Document how to debug an application in popular IDEs
- Add an option to select the Android base image when creating new emulators
- Add an API to entirely replace the style of a widget
- Correct the handling of quotation marks in Android apps
Pick one of these tickets, drop a comment on the ticket to let others know you're looking at it, and try your hand at a PR! We have a guide on setting up a Briefcase development environment; but if you need any additional assistance or guidance, you can ask on the ticket, or join us on the BeeWare Discord server.
- Next entry
- August 2024 Status Update
- Previous entry
- 2024Q3 Roadmap