June 2026 Status Update
June saw a major push on logging support for macOS 26, a continuing overhaul of Toga's Canvas API, as well as many other improvements.
What we've done¶
- We hosted our first "The Buzz: Live" community call!
- We migrated Apple platform logging from
NSLogtoos_log, as macOS 26 now marksNSLogcontent as private. This required Briefcase to adopt theos_log-based logger, updates to the macOS Xcode template, the Python support testbed, and upstream in CPython. - We refined the encoding of ASCII
NULcharacters instd-nslog. - We refactored Briefcase's handling of virtual environments, providing a cleaner interface for creating Python environments. This is the start of a larger piece of work adding support for using alternative environment managers - such as
uv, Conda, or Pixi in Briefcase projects. - We added support for automatically resuming an interrupted macOS notarization, including the ability to avoid waiting for the macOS notarization response. These changes make it much easier to notarize a macOS app in a CI environment.
- We added support for post-install scripts in macOS PKG installers.
- We added support for enforcing a minimum OS version.
- We made MSI installers more resilient when uninstalling an application that is currently running.
- We improved the validation of Briefcase application names.
- We added warnings to guard against project paths that are known to cause problems.
- We added a warning when an app description exceeds the recommended length.
- We added the ability for Linux applications to provide a custom man page.
- We added validation that the requested Flatpak base is installed before building an app.
- We modified how Briefcase asks questions so that if there's a single option, that response is provided as a default answer.
- We documented how to generate a self-signed Windows code signing certificate.
- We finished rolling out the use of Briefcase's warning banner helper, ensuring that warnings in Briefcase are consistently formatted.
- We continued aligning Toga's
Canvaswidget with the HTML5 Canvas API, deprecatingwrite_textin favor offill_textandstroke_text, turning the transform methods into states, adding keyword parameters toCanvas.state(), and more clearly delineating between the Canvas API levels in the documentation. - We corrected a number of issues with Toga's
Canvasimplementation, including fixing an issue withreset_transformon Cocoa and iOS, issues withDrawingActioncolor aliasing logic, an inconsistency in the default Canvas stroke width, and the handling of line dashes on Qt Canvas objects. - We updated
toga-chartto use the revised Canvas API. - We corrected the colors used on
Buttonwidgets,DetailedListwidgets andWebViewwidgets on Windows. - We migrated the documentation for Podium and Toga Chart to Markdown and MkDocs.
- We corrected some issues with how project-specific additions to our contribution guide are rendered in the documentation of Briefcase, Toga and
rubicon-objc. - We fixed the
ds_storeCLI, and improved the rendering of.plistblob values in theds_storeCLI output. - We landed a round of Android fixes in
cibuildwheel, updating to current Python versions and removing a testbed patch. - We added an "Available for hire" page to the BeeWare website.
- We added Vietnamese and Tamil translations of the website.
Much of this work is due to the contributions of members of the BeeWare community. Thanks to
What's next?¶
We're currently doing our planning for Q3; we'll be publishing those plans in the coming weeks. However, it's safe to assume that a lot of our time will be consumed with preparations for the Python 3.15 release in October. The availability of official iOS installers will require some changes to Briefcase; the annual cycle of Android Studio releases will also require testing and verification. There are also some lingering issues with GitHub Actions macOS testing and macOS 26 support that we need to address. Lastly, we're hoping to spend some time focusing on security, adding download checksum validation to Briefcase, and possibly adding SBOM support for CPython's iOS and Android releases.
We'll be at EuroPython in July, where Malcolm Smith is presenting on supporting iOS and Android in Python packages; we'll also be at PyCon AU, where Russell Keith-Magee will be speaking about packaging Python code for distribution, and Kattni will be speaking about switching from Sphinx to Markdown. You can also Join us on Discord on July 9 at 11PM UTC (7PM EDT, 4PM PDT, 9AM AEST).
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.