It's the start of a new year, and we've already seen some big improvements to BeeWare!
What we've done
- We released Briefcase 0.3.21.
- We modified Briefcase to use the native iOS platform support that was added in pip v24.3.
- We made substantial improvements to Briefcase's macOS notarization tools. It is now possible to suspend and resume a Briefcase notarization attempt.
- We made Briefcase's check of system tools more resilient on Debian-based systems, accounting for situations where users have installed all the constituent pieces of the build-essential meta package, but haven't actually installed build-essential.
- We modified the Briefcase bootstrap API to give the bootstrap access to the Briefcase console and logging tools.
- We simplified the handling of console, input and logging in Briefcase.
- We promoted Linux on ARM64 to a fully supported platform in Briefcase.
- We improved error reporting when the underlying tools used by Briefcase fail.
- We resolved some memory leaks in Toga's iOS backend.
- We added an API to Toga's WebView for retrieving cookies.
- We modified the constructor of Toga widgets to allow for style definitions to be provided as keyword arguments to the widget, rather than requiring a separate Pack object.
- We added aliases for some common horizontal and vertical alignment style properties to Pack.
- We added Row and Column functions as aliases for a Box with horizontal and vertical direction styles, respectively.
- We added event handlers for changes in focus and visibility on Toga Window objects. This also provides a mechanism for mobile apps to respond to being moved to and from a background state.
- We migrated the Travertino codebase into the Toga repository, and got Travertino's test suite to 100% branch coverage. This should make it easier to coordinate changes in Travertino with the corresponding changes in Toga.
- We corrected some issues with background color handling on iOS.
- We modified Rubicon ObjC to add support for recent changes to the way Python manages asyncio event loops.
- We formally published setuptools-dynamic-dependencies. This is a setuptools plugin that allows dependencies to be specified as dynamic properties. This is a tool that we've used for a while to ensure that toga-cocoa==X has a dependency on toga-core==X; it's now been formally published on PyPI for anyone to use.
- We continued to work on binary iOS packaging. We're almost ready to submit some changes to cibuildwheel to formally add support for building iOS packages.
What's next?
In February, we'll continue to work on binary packaging - we hope to be able to submit pull requests to cibuildwheel adding iOS support in the coming weeks. We may also begin the process of adding Android binary wheel support, mirroring the changes we've made for iOS.
We'll continue to work on Python Emscripten support. We're almost ready to stand up an Emscripten buildbot; this may happen in February. Lastly, we'll continue to work on Toga's Web backend, with the eventual aim of getting the web backend to the same level of support as the other Toga backends.
Want to get involved?
Want to get involved? Here are some open issues that would be a great place to get started with contributing to a BeeWare project. They're all relatively minor changes, but would provide a big improvement to the lives of BeeWare users:
- Update the Toga testbed test suite to use Pixel 7 Pro device sizes
- Filter out a message generated after Xcode updates
- Add the ability to configure the ABIs built by an Android project
- Rationalise the application of adhoc signing on macOS
- Document how to debug an application in popular IDEs
- Add an option to select the Android base image when creating new emulators
- Add an API to request that an app be given focus
- Investigate the source of a Table column resize issue on Windows
- Correct the handling of double quotes in formal names
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.
- Anterior entrada
- 2025Q1 Roadmap