BeeWare activity in May was dominated by preparing for and attending PyCon US in Pittsburgh. That event generated a lot of activity in the BeeWare project - but we've also added some other significant improvements.
What we've done
- We attended PyCon US. We presented on the state of mobile support in CPython to the Language Summit; we presented a tutorial to over 30 attendees; we ran a booth in Community Row; we presented a talk on writing a data visualisation app with BeeWare tools; and we ran an extremely successful sprint. At the peak, we had over 30 people sprinting on BeeWare projects; and we handed out over 20 challenge coins to first time contributors. Many of the new features in this status update can be attributed to contributions from sprint participants.
- We modified Toga's Window API to allow setting the content of the window when the window is constructed, and improved the APIs for replacing children in an existing window layout.
- We modified how validation of TextInput widgets are handled so that change handlers aren't invoked until validation has been performed.
- We modified how the DetailedList is created on Android so that the dependency on the native SwipeRefreshLayout widget only exists if your app actually uses a DetailedList widget.
- We improved the error handling around camera permissions on macOS, and ensured that Briefcase will generate the right permissions for macOS Sonoma.
- We diagnosed some issues associated with code signing on macOS when running on iCloud-mirrored drives, and when Git has been configured to preserve Windows newlines. We also improved the error handling when notarisation fails.
- We formally documented the plugin extension points that Briefcase provides. With this formally documented interface, Pygame-CE and PPB, have taken formal ownership of their Briefcase bootstraps.
- We formally adopted PEP 621 format for specifying license files in Briefcase.
- We loosened the restrictions on bundle identifiers, and improved handling of applications with special characters in their formal names.
- We developed a draft implementation of a change that will allow Briefcase to package console applications. We expect this change will land in the next week or so, and be released soon after that.
- We started work on removing binary stubs from the macOS and Windows app templates. This was starting to become a significant performance issue for first-time Briefcase users.
- We improved the mechanism for invoking methods in Rubicon ObjC, making it possible to invoke methods with repeated argument names.
What's next?
In June, we're expecting to see progress in three main areas.
Firstly, we'll be finalising the work on packaging console applications. We expect to see a Briefcase release by mid month that will incorporate this, and all the other improvements that have landed over the last month.
Secondly, we'll be working on the APIs for the Toga App and Window classes. We've already done a lot of prototyping work in this area; once this work is complete, Toga should have support for apps without a menubar in their main window, support for status bar apps without a main window, vastly improved abilities to customise standard menu items, and a stable API for document-based apps.
Thirdly, we'll start looking at the broader CPython binary packaging ecosystem. The work we've done so far this year has led to CPython 3.13 formally supporting iOS and Android as Tier 3 supported platforms; the next step is ensuring that the rest of the community can build iOS and Android packages. This will involve improvements to tools like pip, cibuildwheel, meson-python and more. We expect that this work will take much longer than a month to complete, but we hope to be able to share some progress in June.
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
- Add support for custom PyPI repositories
- Document how to debug an application in popular IDEs
- Correctly handle incomplete project deletions
- Add an option to select the Android base image when creating new emulators
- Add an API to entirely replace the style of a widget
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.
- Następny wpis
- June 2024 Status update
- Poprzedni wpis
- April 2024 Status Update