April 2026 Status Update
April saw some extremely important improvements to BeeWare's Windows support, and some important new policy decisions.
What we've done¶
- We formally adopted an AI and Autonomous code contribution policy. This policy is neutral on whether AI tools can be used for contribution, but clearly places the responsibility on a human contributor to take full responsibility for the output of any tool they use, and to declare if AI tooling has been used.
- As part of adopting a format AI usage policy, we've added an
AGENTS.mdfile, and a Spec Kit constitution to Briefcase, Toga, and Rubicon ObjC. We expect we'll be tweaking and tuning those configurations over time as we discover what does (and doesn't) work. If you've got experience in developing these foundational AI configuration files, we'd appreciate any suggestions or feedback you may have. - You can now build native ARM64 Windows binaries and installers with Briefcase.
- We added support for detecting if .NET is installed as part of a Windows MSI installer.
- We added the ability to customize the banner and background images in an MSI installer.
- We added a utility method for formatting the banner-style warning messages that Briefcase generates. We haven't rolled out the usage of this banner across all parts of the Briefcase codebase, but it will allow us to improve consistency in the display of warning output.
- We modified the new project wizard to improve the visibility of known third-party bootstraps.
- We added a runtime checks for using an x86-64 Python interpreter on an Apple Silicon Mac. This configuration can cause issues when trying to run an iOS simulator.
- We added the ability to create a "skinless" Android emulator. This is mostly useful for CI configurations, where the extra visual detail doesn't help, but downloading the skin will sometimes fail due to rate limits imposed by Google's servers.
- We improved the verification of installed Android SDK images.
- We added support for the use of .NET Core 10 in Toga. This was primarily required to support WinForms on ARM64, but it also means features like dark mode are now possible on WinForms.
- We performed a major refactor of the internals of the Canvas widget, and modified the Canvas API to align better with JavaScript's HTML5 Canvas API.
- We migrated Toga's Web backend to use WebAwesome, rather than Shoelace. WebAwesome is effectively "Shoelace 3", after the Shoelace project was adopted by the FontAwesome team.
- We added a full implementation of
DetailedListon WinForms. This was the last widget in Beta status on WinForms - WinForms is now widget complete! - We corrected some crashes that could occur on macOS when clicking on empty rows of a table, or the table header row.
- We corrected an unusual bounce when calling
scroll_to_bottom()on a WinFormsMultilineTextwidget. - We made the definition of accessors optional when defining sources.
- We added support for fonts that have been system-registered on iOS and macOS.
- We normalized the feature set of the CPython Android build script with other platform build scripts.
- We completed the migration of CPython Android build tooling to the Platforms folder.
- We increased the RAM available to the Python Android testbed to accommodate more demanding test suites.
- We submitted updates to
cibuildwheelto support Android packages that use Fortran, NumPy's C API, and external libraries bundled with auditwheel.
Much of this work is due to the contributions of members of the BeeWare community. Thanks to
Special thanks go to
What's next?¶
A lot of May will be spent preparing for and attending 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, hosting some open spaces (watch the boards at the venue for details), attending the community showcase, as well as participating in a other events and generally lurking around the hallways. Tickets are still available - if you're around, come say hi! We're actively looking for stories of how you're using BeeWare, or how you'd like to use BeeWare.
In what time that remains in the month, we'll be focused primarily on Briefcase, adding more customizations for MSI installers, and starting to experiment with mechanisms for improving the development experience for mobile apps.
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.