October 2026 Status Update
October 2026 Status Update
October has been a busy month of releases and security updates - but we also found time to add some notable improvements to BeeWare.
What we've done
- We published Briefcase 0.4.7 - this is a security update addressing the eMudhra Intermediate CA exploit, and a Windows path traversal issue that was reported independently. These are both high severity security issues; we strongly advice all users to upgrade if they haven't already. This also required the release of Chaquopy 17.2.0.
- The security releases for Chaquopy and Briefcase were follow ups on the Chaquopy 17.1.0 and Briefcase 0.4.6 feature releases that were made earlier in the month. These releases were primarily to add Python 3.15 support for Android, but also included a number of other improvements.
- We published Toga 0.5.7, containing all the features from the last three months of Toga development.
- We attended the CPython Core Team summit in San Francisco. This gave us the opportunity to discuss goals and make plans for the Python 3.16 release, as well as making plans for formalizing some of the ad-hoc practices that have emerged in the Python ecosystem around cross-platform builds.
- We contributed support for tvOS, visionOS and watchOS to CPython, upstreaming patches that BeeWare has maintained independently for some time.
- We added support for free-threaded and debug builds of CPython on iOS.
- We contributed a fix to CPython that disables
PIP_REQUIRE_VIRTUALENVwhen updating certificates. Previously if you had a shell configuration that enabled this option, it was not possible to use the certificate update script that ships with the macOS Python installer. - We optimized the CPython iOS testbed by disabling the collection of test diagnostics. These test diagnostics are rarely useful in diagnosing Python issues, but can slow down the completion of a failing test suite by several minutes.
- We added the ability for
ctypescallbacks to returnstructanduniontypes, resolving a CPython issue that had been open since 2009. This will allow us to deprecate a monkey-patch that we've carried in Rubicon ObjC. - We contributed a patch for Android support in Pillow.
- We published
xbuild0.4.1. This is the first "ready for prime-time" release ofxbuild, our suite of tools for managing cross-platform virtual environments. It includes a number of new features, including the ability to automatically configure the environment for cross-platform builds, and allowing the use ofxbuildfrom inside an existing cross-platform environment. - We modified
xbuildto allow the re-use of existing work directories, - We added support for
xbuildto create virtual environments withuvorvirtualenv, - We added Emscripten (Pyodide) support to
xbuildandxvenv. - We added Android support for Python 3.11 and 3.12 to
xbuild. - We added support for subprocesses to Briefcase apps on macOS, Windows, and Linux.
- We added the ability to customize the completion screen of Windows MSI installers and uninstallers.
- We corrected the handling of MSI installers creating desktop shortcuts during silent installs.
- We modified Briefcase to use PEP 621 project names, rather than requiring a separate
tool.briefcase.project_namesetting. - We added an actionable error message when Docker isn't available in WSL 2.
- We improved error handling when a Windows machine has the bootstrap binary for Visual Studio, but hasn't installed the Visual Studio IDE.
- We added new
toga-code-editorandtoga-consolewidgets. These widgets allow building apps that display code, or need to display console output. - We modified Toga to recognize official external widgets by their package metadata.
- We ensured that canvas resize events are only triggered once, avoiding potential infinite recursion on macOS, iOS, Android, and Qt.
- We fixed a memory leak when loading images on GTK.
- We fixed a hang in GTK's
MultilineTextInput. - We made Pack layouts honor
display=none, and corrected the handling of thehiddenstyle argument on GTK3. - We continued work on Toga's "Big Picture" app refactor. The base refactor needed to add app scaffolds for macOS and iOS are nearing completion.
- We prevented errors when clicking on non-data rows in macOS
Treewidgets. - We fixed Android
OptionContainercontent being hidden behind the tab bar. - We continued to improve test coverage for Rubicon ObjC.
- We changed
dmgbuildto create images without a partition map by default, fixing builds that silently produced DMGs with missing files. - We improved
dmgbuild's handling of subprocess failures. - We aligned the CLI detach retry default with the Python API.
- We added privacy-respecting analytics to BeeWare's websites.
- We improved the reliability of our translation workflows, including better handling of Weblate locking failures and retries on server errors.
- We continued hardening our GitHub Actions workflows, adding
zizmorchecks and Dependabot cool-off delays to several repositories.
Much of this work is due to the contributions of members of the BeeWare community. Thanks to Rahul Patel (@100jinwoo001), @aaravgauba, Abdo (@abdnh), @cgkoutzigiannis, Filip Łajszczak (@filiplajszczak), Julien (@fjjjuv), @fukalous, Garvit Sharma (@garvitshrma), @Gise23, Hiroshiba (@Hiroshiba), Hood Chatham (@hoodmane), Henrik (@HT-573), John (@johnzhou721), Mgs. Tabrani (@mgstabrani), Rohan Singhvi (@rsinghvi-maxon), Alex Shuvalov (@skritosss), Skytuhua (@Skytuhua), Volkan Gezer (@vgezer), and Yanis (@ynaamane) for their code and documentation contributions this month.
What's next?
With the 3.15 release finalized, we can turn our attention to other parts of the BeeWare ecosystem. We're expecting two major areas of focus.
The first is Toga. We have a backlog of PRs adding new widgets, including GTK4 support for a lot of widgets, and a bar code scanner widget for iOS. We're also hoping to be able to make significant progress on the scaffolding work that part of the "Big Picture" app refactor.
The second is the finalization of some packaging work that has been ongoing for the last 18 months. We want to get iOS and Android to Tier 2 support in NumPy; this would enable the upcoming NumPy 2.6 release will be able to include iOS and Android wheels for the first time. We'll also be working with the Pillow team to finalize the patch adding Android support.
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.
We need your help.
If this project proves anything, it's that money makes things happen. If you're excited by the prospects of Python on mobile platforms, please consider joining the BeeWare Project as a financial member.
Individual membership starts at US$10/month. If your employer would benefit from being able to write native desktop and mobile apps in Python, please encourage them to donate; corporate memberships start at as little as US$200/month.
Already a member? Thank you so much! Your continued support ensures that we can continue to develop BeeWare.
If you've any other interesting ideas, or questions about the project please get in touch.