diff --git a/content/news/buzz/november-2023-status-update/contents.lr b/content/news/buzz/november-2023-status-update/contents.lr new file mode 100644 index 0000000000..931d746065 --- /dev/null +++ b/content/news/buzz/november-2023-status-update/contents.lr @@ -0,0 +1,61 @@ +title: November 2023 Status Update +--- +author: Russell Keith-Magee +--- +body: + +November has been a month of focus on the code that enables us to run Python on iOS and Android - but there has still been some other high profile developments in other parts of BeeWare. + +What we've done +---------------- + +* `PEP730 `__, formalizing the introduction of iOS as a Tier 3 platform in CPython, has been `submitted to the Python Steering Council for ratification `__. + +* One of the major topics covered by the `discussion about PEP730 `__ was the use of a deprecated compiler argument. This led to some re-examination of how CPython could be delivered on iOS without using that argument. As a result of that discussion, modifications to `use CPython as a dynamically loaded framework `__ have been prepared. Although the original focus of this work was iOS, the same change will be also used for macOS - which means BeeWare no longer needs to compile a macOS support package (although we will still be lightly re-packaging the official CPython installer). + +* We modified Toga's Image APIs so that `Pillow images can be used as source data `__. + +* We `switched CI testing of Android apps to use a Linux machine `__. This wasn't previously possible, because Github didn't expose the necessary permissions in their Linux images; however, now that *is* possible, our Android tests run up to 5 times faster, and are less likely to be held up in CI because of availability of macOS testing machines. + +* We corrected an issue on macOS where an OS-level setting controlling the use of tabs could `cause test failures in the Toga test suite `__. + +* There have been some extended discussions and draft PRs related to Toga's `Application base class `__, and the addition of support for `status icons `__. These PRs are still in active development, but they will open up some interesting possibilities for Toga apps when they are completed. + +* `Briefcase `__, `Toga `__ and `Rubicon ObjC `__ were all modified to use PEP621 metadata, removing the need for ``setup.cfg``, ``setup.py``, and ``MANIFEST.in`` files. As part of this change, we wrote a new `setuptools plugin `__ to allow for dependencies to be dynamically defined. + +* We modified Briefcase so that `answers to the new project wizard `__ and `values for configuration settings when running commands `__ can be overridden at the command line. This is mostly useful for testing purposes - it's now possible to generate a project and build it against a local template or support package build without needing to modify a ``pyproject.toml`` file or override input handling. + +* We refactored the new project wizard so that `support for GUI toolkits is generated by an extensible plugin `__. Although we still ship with support for Toga, PySide, Pygame and PPB, this support is provided through a public interface, allowing other GUI toolkits to provide Briefcase with toolkit-specific modifications to the new project. + +* We switched the default Android skin used by Briefcase from the `Pixel 3a device skin to the Pixel 7 skin `__. This is an entirely cosmetic change, but it does mean that screenshots will use a device that looks a little more modern. + +* We've made significant progress on the `modifications to Chaquopy to support CPython 3.12 `__. This support will hopefully be released at the same time as the upcoming Android Studio "Hedgehog" release. + +* We've made significant progress on running CPython's unit test suite on iOS in a CI configuration. + +What's next? +-------------- + +We won't see as much progress as normal in December as a result of the end-of-year holidays. However, before we sign off for the year, we're hoping to start looking at OptionContainer on mobile platforms, and possibly start looking at Camera API support. + +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: + +1. `Update the Toga testbed test suite to use Pixel 7 Pro device sizes `__ +2. `Filter out a message generated after Xcode updates `__ +3. `Add the ability to configure the ABIs built by an Android project `__ +4. `Rationalise the application of adhoc signing on macOS `__ +5. `Add support for custom PyPI repositories `__ +6. `Document how to debug an application in popular IDEs `__ +7. `Correctly handle incomplete project deletions `__ +8. `Add an option to select the Android base image when creating new emulators `__ +9. `Print notarisation log failures when building macOS apps `__ + +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 `__. + +--- +mastodon_handle: @freakboy3742@cloudisland.nz +--- +pub_date: 2023-12-01