In October, BeeWare saw some important releases, plus more good progress on binary packaging for iOS.
What we've done
- Most importantly, we released Briefcase 0.3.20 and Toga 0.4.8, including support for Python 3.13 - which includes the official support in Python for iOS and Android! This is a major milestone for BeeWare as a project, representing a significant portion of the work done over the last 12 months.
- We've prepared an initial patch to cibuildwheel that is able to build and test simple iOS wheels. This patch isn't ready to submit upstream, but it is able to build simple iOS wheels.
- We've submitted a patch to Pillow to isolate its build system from Homebrew when building on macOS. This is essential for iOS support, as it's easy for Homebrew macOS ARM64 binaries to leak into iOS builds; but it also has benefits for macOS builds.
- We've made a number of improvements to multibuild, the tooling that Pillow uses to compile non-Python binary dependencies.
- We've modified the CPython iOS testbed project so that it can be used as a testbed for any iOS Python project.
- We've improved error reporting when Briefcase can't clone a template.
- We've switched to using httpx instead of requests for Briefcase's internal download handling. This provides slightly better error handling, better options for improving HTTP/2 usage, and we're now consistently using httpx in Briefcase and in our example code.
- We've modified Toga to lazily load components, rather than importing everything into the toga namespace at startup. This should improve application startup times, especially on platforms like mobile and web where this startup time is noticeable.
- We resolved an issue causing intermittent test failures when testing Toga on Wayland.
What's next?
We will be continuing to work on binary packaging in November. We're using Pillow as a demonstrator for this work - it's a package that has a significant binary component, is widely used (including on mobile), but has a non-trivial build process (largely due to the non-Python binary dependencies). The hope is that by the time we're able to compile Pillow for iOS, we will have resolved many of the issues facing other binary packages. Our goal remains to have at least some third-party projects officially supporting iOS and Android by the end of the year, but this may be impeded by the sequence of dependencies that need to land and be published before upstream projects can accept iOS and Android patches.
We'll also be speaking at PyCon AU at the end of the month, including attending both days of the sprints. If you're able to make it to Narrm/Melbourne, we hope we'll see you there!
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.
- voce precedente
- 2024Q4 Roadmap