August has seen some good progress on BeeWare's support for Python 3.13, plus a number of long-awaited features landing in a stable release of Toga.
What we've done
- We've completed the process of backporting the CPython changes for iOS compatibility to Python 3.9 through 3.12. We've published support packages and stub binaries that incorporate these changes, and made the changes to Briefcase needed to support these new versions.
- We've begun work on updating Mobile Forge and related binary tooling to support the new official binary tag and framework format required by the PEP-compliant patch for iOS support. So far, we're able to compile simple binary packages like lru-dict, and non-Python dependencies like libjpeg; we're working on restoring binary support for more complex binary dependencies.
- We've landed the Android test runner script, fixed a number of issues that have arisen in CPython's Android support since the original patches landed, and deployed an Android CPython buildbot. This buildbot has revealed some edge cases (primarily in socket and signal handling) that only appear to manifest under the unusual load conditions generated by a buildbot; so, we've temporarily disabled the buildbot while we investigate the cause of these problems.
- We completed work on a new API for document-based apps.
- We completed work on an API for status icon apps.
- We released Toga 0.4.6. This includes the support for document-based apps, status icon apps, and a number of other long-awaited features, such as apps without menubars, available in a stable release.
- We updated the support for WebView on Windows to a more recent version, and resolved an issue with compatibility with Windows Store Python.
- We diagnosed and contributed fixes for a number of issues in tools that BeeWare depends on for our build tooling. This includes updates to CI configurations to support Sphinx 8, fixes for Sphinx 8 support in a Sphinx plugin, and diagnosing issues with a recent Towncrier update.
- We presented a keynote at Kiwi PyCon on the future of Python.
What's next?
In September, we'll be continuing work on binary package support for mobile platforms. Once we've restored support for binary wheels using the new binary tag and framework format, and added support for Python 3.13, we'll start upstreaming the changes we've made so that the wider Python ecosystem can start supporting iOS and Android. We'll also start working on the fixes to tools like pip, cibuildwheel, and meson-python that need to have explicit iOS support. We expect that this work will be ongoing for several months, but some of the work should be submitted upstream for review by the end of the month.
We'll also be presenting at talk at PyBay in San Francisco on mobile app development in Python, followed by the CPython core team sprint.
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.
- Następny wpis
- September 2024 Status Update
- Poprzedni wpis
- July 2024 Status Update