|
| 1 | +title: May 2024 Status Update |
| 2 | +--- |
| 3 | +author: Russell Keith-Magee |
| 4 | +--- |
| 5 | +body: |
| 6 | + |
| 7 | +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. |
| 8 | + |
| 9 | +What we've done |
| 10 | +---------------- |
| 11 | + |
| 12 | +* We attended PyCon US. We presented on the `state of mobile support in CPython to the Language Summit <https://us.pycon.org/2024/events/language-summit/>`__; we `presented a tutorial <https://us.pycon.org/2024/schedule/presentation/41/>`__ to over 30 attendees; we ran a booth in Community Row; we `presented a talk <https://us.pycon.org/2024/schedule/presentation/40/>`__ 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. |
| 13 | + |
| 14 | +* We modified Toga's Window API to allow `setting the content of the window when the window is constructed <https://github.com/beeware/toga/pull/2314>`__, and `improved the APIs for replacing children in an existing window layout <https://github.com/beeware/toga/pull/2591>`__. |
| 15 | + |
| 16 | +* We modified how validation of TextInput widgets are handled so that `change handlers aren't invoked until validation has been performed <https://github.com/beeware/toga/pull/2596>`__. |
| 17 | + |
| 18 | +* 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 <https://github.com/beeware/toga/pull/2595>`__. |
| 19 | + |
| 20 | +* We `improved the error handling around camera permissions on macOS <https://github.com/beeware/toga/pull/2590>`__, and ensured that `Briefcase will generate the right permissions for macOS Sonoma <https://github.com/beeware/briefcase/pull/1820>`__. |
| 21 | + |
| 22 | +* We diagnosed some issues associated with code signing on macOS `when running on iCloud-mirrored drives <https://github.com/beeware/briefcase/issues/1808>`__, and when `Git has been configured to preserve Windows newlines <https://github.com/beeware/briefcase/issues/1831>`__. We also `improved the error handling when notarisation fails <https://github.com/beeware/briefcase/pull/1825>`__. |
| 23 | + |
| 24 | +* We `formally documented the plugin extension points that Briefcase provides <https://github.com/beeware/briefcase/pull/1807>`__. With this formally documented interface, Pygame-CE and `PPB <https://github.com/beeware/briefcase/pull/1834>`__, have taken formal ownership of their Briefcase bootstraps. |
| 25 | + |
| 26 | +* We `formally adopted PEP 621 format for specifying license files in Briefcase <https://github.com/beeware/briefcase/pull/1812>`__. |
| 27 | + |
| 28 | +* We `loosened the restrictions on bundle identifiers <https://github.com/beeware/briefcase/pull/1824>`__, and `improved handling of applications with special characters in their formal names <https://github.com/beeware/briefcase/pull/1811>`__. |
| 29 | + |
| 30 | +* We developed a draft implementation of a change that will `allow Briefcase to package console applications <https://github.com/beeware/briefcase/pull/1781>`__. We expect this change will land in the next week or so, and be released soon after that. |
| 31 | + |
| 32 | +* We started work on `removing binary stubs from the macOS and Windows app templates <https://github.com/beeware/briefcase/pull/1849>`__. This was starting to become a significant performance issue for first-time Briefcase users. |
| 33 | + |
| 34 | +* We improved the mechanism for invoking methods in Rubicon ObjC, making it possible to `invoke methods with repeated argument names <https://github.com/beeware/rubicon-objc/pull/462>`__. |
| 35 | + |
| 36 | +What's next? |
| 37 | +-------------- |
| 38 | + |
| 39 | +In June, we're expecting to see progress in three main areas. |
| 40 | + |
| 41 | +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. |
| 42 | + |
| 43 | +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 <https://github.com/beeware/toga/pull/2244>`__; 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. |
| 44 | + |
| 45 | +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. |
| 46 | + |
| 47 | +Want to get involved? |
| 48 | +----------------------- |
| 49 | + |
| 50 | +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: |
| 51 | + |
| 52 | +1. `Update the Toga testbed test suite to use Pixel 7 Pro device sizes <https://github.com/beeware/toga/issues/2251>`__ |
| 53 | +2. `Filter out a message generated after Xcode updates <https://github.com/beeware/briefcase/issues/780>`__ |
| 54 | +3. `Add the ability to configure the ABIs built by an Android project <https://github.com/beeware/briefcase/issues/808>`__ |
| 55 | +4. `Rationalise the application of adhoc signing on macOS <https://github.com/beeware/briefcase/issues/1099>`__ |
| 56 | +5. `Add support for custom PyPI repositories <https://github.com/beeware/briefcase/issues/1270>`__ |
| 57 | +6. `Document how to debug an application in popular IDEs <https://github.com/beeware/briefcase/issues/1393>`__ |
| 58 | +7. `Correctly handle incomplete project deletions <https://github.com/beeware/briefcase/issues/394>`__ |
| 59 | +8. `Add an option to select the Android base image when creating new emulators <https://github.com/beeware/briefcase/issues/737>`__ |
| 60 | +9. `Add an API to entirely replace the style of a widget <https://github.com/beeware/toga/issues/2305>`__ |
| 61 | + |
| 62 | +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 <https://briefcase.readthedocs.io/en/latest/how-to/contribute-code.html>`__; but if you need any additional assistance or guidance, you can ask on the ticket, or join us on the `BeeWare Discord server <https://beeware.org/bee/chat/>`__. |
| 63 | + |
| 64 | +--- |
| 65 | +mastodon_handle: @freakboy3742@cloudisland.nz |
| 66 | +--- |
| 67 | +pub_date: 2024-06-03 |
0 commit comments