Work in December (and the publication of this update!) was slowed by the end-of-year break; but BeeWare still made some significant progress to round out the year.
What we've done
- We added a GTK implementation of Geolocation services.
- We made a number of improvements to Pack, Toga's style API. This includes adding a "justify-content" style directive, adding a "gap" style directive, and updating a number of Pack properties to match their CSS names.
- We standardised the way in which Toga widgets are instantiated. This simplifies the implementation process, and guarantees that the initial styles added to a widget are always applied.
- We added an API for reporting and controlling the state of Toga windows.
- We began modifying Toga to be compatible with MicroPython. MicroPython is significantly smaller than the full CPython install, reducing the startup time for web apps.
- We updated Briefcase's web template to use a more recent PyScript version.
- We added support for console apps in the Briefcase project conversion wizard.
- We improved error handling when updating Briefcase templates, accounting for some global git configuration options that were causing problems for some users.
- We added explicit support for passing options to pip when installing dependencies with Briefcase. This is mostly useful for specifying alternative package repositories (with --index-url or --extra-index-url) or local folders that contain wheels (with --find-links); but any pip arguments can be passed down to the pip invocation.
- We corrected an error in the default D-Bus configuration of Flatpak apps.
- We resolved a long-standing memory management issue in Rubicon. This change removes almost all need for manual memory management of ObjC objects, making iOS and macOS development much more robust. It also resolves some memory leak issues on Toga's iOS backend.
- We added support for CPython to stream stdout and stderr to the system log on iOS and macOS. This change included a improved tool for running CPython test suites, making it possible to stream the output of a CPython test suite while the test suite is running, and to run the an arbitrary test suite, not just the CPython test suite.
- Our patch adding a test-sources configuration in cibuildwheel has been accepted, and should be merged in a couple of days.
- We reviewed a large number of improvements to Emscripten support in CPython.
What's next?
We'll publish a full Q1 roadmap in a day or two; but our goal for January will be to continue the work we were doing in December. We'll continue to push patches upstream to support binary packaging, with iOS support for Pillow being the immediate goal. We'll continue to work on Python Emscripten support, and Toga's Web backend, with the eventual aim of getting the web backend to the same level of support as the other Toga backends. We're planning to publish new versions of Rubicon ObjC, Travertino and Toga in the coming days; these are major updates that will involve some minor backwards compatibilities. Lastly, we've had a number of reports of bugs with Briefcase's macOS notarization and Windows packaging which we will be investigating.
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
- Modify the default bootstrap to provide more helpful initial values
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.
- Next entry
- 2025Q1 Roadmap
- Previous entry
- November 2024 Status Update