During May, BeeWare saw a number of major improvements - many of which came as a result of our attendance at PyCon US 2025.
What we've done
- We attended PyCon US! We gave presentations at the Language Summit and the Packaging Summit, presented a tutorial, presented in the main conference track, and spent time in the Anaconda booth demonstrating BeeWare. After all that, we ran a 3 day sprint, during which 19 new contributors earned their challenge coins, and a bunch of existing contributors returned to contribute as well. Many of the contributions described in this blog post come from PyCon US contributions.
- Our proposed changes to Meson and Meson-python have all been accepted, and will be included in the next releases of those tools. There have been some other conversations with the Meson team that have led to some minor improvements in the features added to support mobile binary packaging.
- We made a major set of updates to the BeeWare website, transitioning all the content to Markdown, and moving the translation infrastructure to Weblate.
- We modified the Briefcase new project wizard to draw default values from a user's Git configuration, where possible
- We modified Briefcase's handling of licenses to use SPDX standard abbreviations
- We optimised the handling of signing on macOS to remove a redundant ad hoc signing pass when packaging an app
- We improved warnings for users who have an old version of Python, which would result in them having an old version of Briefcase, but be unaware of this fact.
- We modified Briefcase to use the system certificate store. This should remove a very common source of errors on some corporate-managed VPNs. We also improved error handling to provide more context for any remaining SSL or related connection errors.
- We improved error messages when one of the required wheels can't be found on iOS and macOS
- We corrected the events that are generated by Tables on Windows.
- We improved the error handling when an app doesn't return valid window content as part of its startup method
- We added a mechanism for detecting dark mode on Android
- We significantly improved the handling of type annotations, allowing for Toga's lazy loading main module.
- We made some modifications to the WebView widget, adding support for setting content at time of construction, and simplifying the interface for setting static content
- Our student contributors have continued to work on Toga's web backend. They've added new TimeInput widget, and they've begun planning some larger contributions to Briefcase and Toga to improve the tools for testing the Web backend. There should be a blog post in a couple of weeks that details their plans for the remainder of the year.
What's next?
For most this year, we've been trying to get the pieces in place to support binary packaging on mobile platforms. We're now at a point where the code required to support iOS is mostly in place; and the code to support Android is almost in place; however, it will be difficult to make further progress until those changes are available in public releases.
So, in June, we'll be changing focus. We're aiming to take a look at Briefcase, with 2 major improvements in mind. Firstly, we want to upgrade our Windows packaging story, and upgrade our WiX support from WiX 3 to a current version. This should resolve some issues with packaging large apps and apps with lots of files; it should also enable us to package applications for ARM64. Secondly, we've had some requests to expose Briefcase's packaging and signing infrastructure so it can be used on projects that aren't built with Briefcase - we're hoping to add this as well.
We're also hoping to follow up on some of our discussion with the Python core team at PyCon, and begin the process of integrating the production of iOS and Android binary artefacts into Python releases. This will hopefully also involve integrating iOS and Android into CPython's pre-merge CI tooling, which will hopefully limit the incidence of changes that are landed into CPython that break iOS and Android.
Lastly, we'll continue to work on Python Emscripten support. Last month, we thought we were one issue away from a working buildbot; however, some new issues have emerged since then. We still hope to have a working buildbot before 3.14 is finalised, which will restore Emscripten to Tier 3 status.
Want to get involved?
Want to get involved? We curate issues that should be approachable for first-time contributors to BeeWare. They're all relatively minor changes, but would provide a big improvement to the lives of BeeWare users:
- If you're interested in the tooling for deploying applications to various platforms, take a look at Briefcase
- Or, if you're interested in GUI widgets, take a look at Toga
These lists can also be filtered by platform - so you can find issues that are specific to your preferred operating system. 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.
- Previous entry
- April 2025 Status Update