March 2026 Status Update
March has seen some big improvements in Briefcase, as well as some major discussions of design and policy issues in the rest of the project.
What we've done¶
- We released Briefcase 0.4.0! This release makes a major change to how development mode operates for apps, isolating the dependencies of the app being developed from the environment that is running Briefcase.
- We upgraded Briefcase to use PEP639 license format.
- We added support for dynamic PEP 621 project metadata. This allows apps to have their version number configured by version control tags.
- We addressed CVE-2026-33430, a security issue which allowed for potential privilege escalation in Windows MSI installers.
- We added the ability to configure the Android ABIs that are targeted as part of a Briefcase build.
- We made a retry mechanism to make project cleanup mechanisms more robust on Windows.
- We started experimenting with the use of
tyto enforce type compliance in the Briefcase codebase. - We added validation of MIME type definitions on document types.
- We modified MSI installers to allow install scripts to inherit elevated privileges of the installing user.
- In order to address some emerging issues and questions about the use of AI tools in contributions to BeeWare, we discussed the possible adoption of an AI contribution policy, and then published a draft policy and drafted a set of agent guides for Briefcase.
- We published a design plan for the next collection of Toga widgets, governing "Big Picture" app navigation.
- We added a FastAPI bootstrap for Toga's Positron plugin.
- We experimented with a PyScript bootstrap for Positron. This work is still dependent on some experimental tools, but we hope we'll be able to release this in the near future.
- We added support for column resizing in Qt tables.
- We modified the API for
TableandTreeto allow explicit definition of columns. This provides a much more flexible mechanism for configuring the display ofTableandTreewidgets. - We added a mechanism for lazy loading and dynamic registration of widgets. In addition to reducing app startup time, this allows third party libraries to provide widget implementations that Toga doesn't provide, and to register entirely new widget types.
- We added a Switch widget for Toga's Textual backend.
- We added a Tree widget to the WinForms backend. This has one of the more notable missing widgets from Toga's API.
- We modified how notifications from data sources are handled so that a
ListSourcecan be a listener on other sources. - We corrected a bug in Toga's handling of presentation mode that would prevent more than one window from being put into presentation mode.
- We migrated Rubicon ObjC's test suite to pytest, and performed a large refactor of the tests to break up some large test files.
- We contributed a migration of CPython's iOS build code to the new "Platforms" directory, and reviewed a comparable change for Emscripten. CPython has grown a number of new platforms in recent releases; this refactor is an organizational change that allows all platform-specific build tooling to be in a single subdirectory, rather than having lots of top-level directories. A similar set of patches for Android are in development.
- We made some improvements to the CPython iOS build script and Android build script for consistency with other platform tools.
- We submitted Android support to auditwheel and meson-python, and enabled automated Android testing of pybind11.
- After the launch of the updated BeeWare website at the end of last month, we've addressed a number of small cosmetic, linking and translation issues that were reported, including improvements to the layout of upcoming events, improvements in mobile rendering, and ensuring as much content as possible can be translated.
- We added sections to the contribution guide on retrieving repository tags, and using the
ghtool to open issues. - We resolved an issue with the preservation of spaces in code blocks when copying sample code content.
- We optimized the build of the tutorial to build all languages in a single pass.
- We replaced the use of a JSON API with an internal link under our control.
Much of this work is due to the contributions of members of the BeeWare community. Thanks to
What's next?¶
We'll be publishing our Q2 roadmap in a couple of weeks. In addition to some progress in Toga that is aligned with the design plans we laid out this quarter, we're hoping that Q2 will see some experimentation with how Briefcase can be used to improve the process of developing and deploying apps. The hope is by making some relatively small changes to how Briefcase starts mobile applications, we will be able to speed up the app development process, and enable some interesting use cases for deploying applications to mobile platforms.
We'll also be preparing for our attendance at PyCon US. We're presenting talks on mechanisms for distributing Python code and switching your project documentation from Sphinx to Markdown. We'll be there for both days of the sprints, as well as participating in a number of other events and generally lurking around the hallways.
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.