November 2024 Status Update

Publicado por Russell Keith-Magee em 1 December 2024

In November, BeeWare made more good progress on mobile packaging - however, that work has revealed a number of upstream tools that need modification before we can contribute wheels for mobile platforms.

What we've done

  • We attended PyCon AU; video of the talk we gave on accessing phone hardware from Python is available on YouTube. We also had a very productive sprint - 9 contributors earned their challenge coin, for contributions ranging from corrections to the tutorial, to the addition of a dark mode flag to Toga. We also gave out one Yak Herder coin, for someone who helps other people to get their challenge coin. A huge thank you to everyone that came along and participated!
  • Our patch for Pillow isolating its build system from Homebrew when building on macOS has been finalised and merged. This is essential for iOS support, as it's easy for Homebrew macOS ARM64 binaries to leak into iOS builds; but it also has benefits for macOS builds.
  • We've completed work on modifications to the Pillow build system to support building for iOS. However, testing this work has revealed the need for additional changes to cibuildwheel and the upstream CPython support for iOS.
  • We've submitted a PR to cibuildwheel to add a test-sources configuration item. This feature is required for iOS testing, but can also be used on other platforms, so we've contributed it independently in order to make the iOS changes easier to test.
  • We've started work on some modifications to how the CPython iOS testbed project is run. This has become necessary because of a change introduced in Xcode 16, but in order to fix the problem, we'll also be able to improve the reporting of test output during a test run, and also make the test harness useful as a generic utility for any iOS project.
  • We've made good progress towards resolving a long-standing memory management issue in Rubicon. This change will remove almost all need for manual memory management of ObjC objects, making iOS and macOS development much more robust.
  • We resolved a number of CPython test stability issues on Android. In most cases, this wasn't an indicator of a broken feature, but of an unstable test - but as a result of the extensive testing done by CPython as a project, even a small instability can manifest as a semi-regular test failure.
  • We've started work on modifying Toga's web backend to be compatible with Micropython. This significantly reduces the startup time for a Toga app; we're hoping to be able to spend a lot more time on the web backend in the coming year.
  • We've formally taken on responsibility for restoring Emscripten to Tier 3 support in CPython, and reviewed a number of patches aimed at restoring Emscripten support.

What's next?

December will be a short month because of end-of-year holidays; we'll be continuing to work on binary packaging. The work we've done porting Pillow to iOS has revealed a number of gaps in the tooling needed to develop and test packages for iOS; so we will be working on getting that upstream tooling in place, using Pillow as a demonstrator for that work. Our overall goal hasn't changed - to get tools in place so that third-party projects can officially support iOS and Android - but it's become clear that there's a lot more upstream work required than we originally anticipated. However, we'll keep working toward this goal until creating packages for iOS and Android is as straightforward as any other platform.

We'll also be continuing 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.

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. Document how to debug an application in popular IDEs
  6. Add an option to select the Android base image when creating new emulators
  7. Add an API to entirely replace the style of a widget
  8. Investigate the source of a Table column resize issue on Windows

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.

October 2024 Status Update

Publicado por Russell Keith-Magee em 1 November 2024

In October, BeeWare saw some important releases, plus more good progress on binary packaging for iOS.

What we've done

What's next?

We will be continuing to work on binary packaging in November. We're using Pillow as a demonstrator for this work - it's a package that has a significant binary component, is widely used (including on mobile), but has a non-trivial build process (largely due to the non-Python binary dependencies). The hope is that by the time we're able to compile Pillow for iOS, we will have resolved many of the issues facing other binary packages. Our goal remains to have at least some third-party projects officially supporting iOS and Android by the end of the year, but this may be impeded by the sequence of dependencies that need to land and be published before upstream projects can accept iOS and Android patches.

We'll also be speaking at PyCon AU at the end of the month, including attending both days of the sprints. If you're able to make it to Narrm/Melbourne, we hope we'll see you there!

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. Add an option to select the Android base image when creating new emulators
  8. Add an API to entirely replace the style of a widget
  9. Correct the handling of quotation marks in Android 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.

2024Q4 Roadmap

Publicado por Russell Keith-Magee em 2 October 2024

Q3 has seen some major progress against long term goals of the BeeWare project. As always, this roadmap should be read as a guide to what we aim to focus on over the coming quarter, rather than a hard commitment of features that will be made available on a specific deadline.

Q3 progress

In Q3 the biggest milestone we achieved was the finalisation of Tier 3 support for Android in CPython. The last of the compatibility and documentation issues associated with Android have been resolved, and Android buildbots are now running for both x86_64 and ARM64. Python 3.13.0 is due for release in about a week; we should be in a position to support this release very soon after the official release.

We've also made significant progress on binary packaging. We've backported all the Python 3.13 patches for iOS into BeeWare's support for Python 3.9-3.12, and we've updated our Mobile Forge infrastructure to generate binary wheels for a number of popular packages. We've developed iOS compatibility patches for pip and crossenv; these patches have been submitted and received initial reviews; we'll continue to work with those projects to land these patches upstream.

Q4 priorities

In Q4, we'll be focussing on the tools and documentation needed to for third-party Python packages to add Android and iOS support to their official CI and release processes. In addition to contributing to tools like pip and cibuildwheel, we'll develop the tools and documentation needed so that it is easy to add CI configurations for mobile platforms. The hope is that by the end of the year, there will be at least one third-party package that produces Android and iOS wheels without any direct involvement of the BeeWare team.

Longer term goals

Once we've got a strong story for packaging third-party packages for iOS and Android, we'll be able to turn our focus back to Toga, and the work needed to make iOS and Android compelling app development platforms. There's a number of navigation and data organization widgets that need to be developed; we also need to improve documentation of some common development patterns that are sources of common questions in BeeWare support channels.

There are also further improvements that we'd like to see in Python itself. This year we've been able to get Android and iOS to Tier 3 support; getting those platforms to Tier 2 is an obvious goal for future Python releases. We'd also like to contribute the tooling needed so that Python is able to distribute official binary releases of iOS and Android, and add an official macOS artefact that mirrors the "Windows embedded" installer. We've had discussions with the Python core team about how this could be achieved; over the coming year, we hope to land these changes.

September 2024 Status Update

Publicado por Russell Keith-Magee em 1 October 2024

In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.

What we've done

What's next?

In October, we will continuing working on binary package support for mobile platforms. In addition to responding to any review feedback on the patches we've already submitted, we'll be working on new patches for cibuildwheel and meson-python, as well as tooling to make it easy for third-party libraries to run CPython test suites on mobile platforms. We should also be able finalise Briefcase's Python 3.13 support for Android, and start work on Android packaging. Supporting packaging for mobile platforms is a long term project which we expect to continue for several months; the hope is that by the end of the year, we will be able to contribute patches to third-party projects so that iOS and Android wheels become officially produced, rather than BeeWare-maintained artefacts.

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. Add an option to select the Android base image when creating new emulators
  8. Add an API to entirely replace the style of a widget
  9. Correct the handling of quotation marks in Android 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.

August 2024 Status Update

Publicado por Russell Keith-Magee em 1 September 2024

August has seen some good progress on BeeWare's support for Python 3.13, plus a number of long-awaited features landing in a stable release of Toga.

What we've done

What's next?

In September, we'll be continuing work on binary package support for mobile platforms. Once we've restored support for binary wheels using the new binary tag and framework format, and added support for Python 3.13, we'll start upstreaming the changes we've made so that the wider Python ecosystem can start supporting iOS and Android. We'll also start working on the fixes to tools like pip, cibuildwheel, and meson-python that need to have explicit iOS support. We expect that this work will be ongoing for several months, but some of the work should be submitted upstream for review by the end of the month.

We'll also be presenting at talk at PyBay in San Francisco on mobile app development in Python, followed by the CPython core team sprint.

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. Add an option to select the Android base image when creating new emulators
  8. Add an API to entirely replace the style of a widget
  9. Correct the handling of quotation marks in Android 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.

July 2024 Status Update

Publicado por Russell Keith-Magee em 1 August 2024

July saw a lot of our attention being consumed by the upcoming Python 3.13 release; but we've also seen some other improvements to the BeeWare suite.

What we've done

What's next?

In August, we'll be continuing preparations for the upcoming Python 3.13 release, and working on the mobile Python binary packaging ecosystem. The initial release candidate for Python 3.13 will be released very soon; with any luck, this means there should be less inadvertent breakages to diagnose, so we can focus on improvements to tools like pip, cibuildwheel, meson-python and more. We expect that this work will take most of the rest of the quarter to release; but there should be some initial signs of progress by the end of the month.

We'll also be at Kiwi PyCon, presenting a keynote about the future of Python.

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. Add an option to select the Android base image when creating new emulators
  8. Add an API to entirely replace the style of a widget
  9. Correct the handling of quotation marks in Android 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.

2024Q3 Roadmap

Publicado por Russell Keith-Magee em 2 July 2024

We're halfway through the year, and BeeWare has seen another quarter of significant progress. As always, this roadmap should be read as a guide to what we aim to focus on over the coming quarter, rather than a hard commitment of features that will be made available on a specific deadline.

Q2 progress

The biggest news for the quarter is that iOS is now officially a Tier 3 supported platform in CPython. All the patches required for iOS compatibility have been landed, and a buildbot is in place; as of 3.13.0b1, CPython will build for iOS without any patching. Android support is close behind; the only missing piece is the buildbot.

We made some major improvements to the BeeWare tutorial, adding sections on customization of the packaged app, and handling permissions for apps. We were able to use these changes as part of a well-received tutorial at PyCon US. We also ran a very successful booth and sprint at PyCon US.

We also completed a lot of improvements in Briefcase and Toga, expanding the types of apps that can be supported. Briefcase can now package console apps; and Toga now has an official API for apps that don't have menu bars, background apps, and apps that aren't governed by the lifecycle of a single "main" window. These have been the subject of long-standing feature requests (some of them almost as old as Toga itself), so it's great to be able to finally address these limitations.

The one area where we weren't able to make an progress was in packaging for mobile platforms. However, we did have some very productive discussions at PyCon US, so we're confident we'll be able to make good progress on this in the coming quarter.

Q3 priorities

The highest priority for Q3 is to get ready for the Python 3.13 release in early October. This involves finalising the work on the Android buildbot so that Android is officially Tier 3; preparing Briefcase and the Python builds that BeeWare supports to be ready for the 3.13 release; and doing as much work as we can on the packaging ecosystem so that package maintainers can publish wheels for iOS and Android.

We'll also be attending Kiwi PyCon in August, and attending the Python Core Team summit in September.

Longer term goals

Getting the Python ecosystem to support iOS and Android is requires a lot more than just adding patches to CPython and some related tools. There will be a lot of education and support work required to help the community adopt iOS and Android; and there is certain to be ongoing maintenance as Python and the platforms evolve. There are also many ways that Python mobile support could be made even better, including the publication of official iOS and Android binaries, and potentially getting to Tier 2 (or even Tier 1) support.

There's also a lot of work that can be done to Toga to make iOS and Android compelling platforms to develop for. Toga is still missing some key widgets to support navigation and data organization; and even when these widgets exist, there will be a need for documentation and examples to demonstrate how to build apps for these platforms. We anticipate we'll be looking at these towards the end of the year. We also anticipate that we'll start looking more seriously at Toga's web backend, attempting to bring it to a level of support comparable to the desktop and mobile platforms.

Summary

It's been another busy quarter with a lot of progress, but as always, there's still plenty to do. Completing official support for iOS and Android means the foundational work needed to support mobile platforms will be complete; we can then focus on what we - and the community - build on that foundation.

June 2024 Status update

Publicado por Russell Keith-Magee em 1 July 2024

In June, BeeWare made a lot of progress, landing lots of new features - many of which have been the subject of requests and discussions for a long time.

What we've done

What's next?

Work on Toga's App interface isn't quite finished - we're expecting to finalise the Document API in the near future. Once that work is complete, our focus will be the mobile Python 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 most of the rest of the quarter to release; but there should be some initial signs of progress by the end of the month.

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. Add an option to select the Android base image when creating new emulators
  8. Add an API to entirely replace the style of a widget
  9. Correct the handling of quotation marks in Android 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.

May 2024 Status Update

Publicado por Russell Keith-Magee em 3 June 2024

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

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:

  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. 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.

April 2024 Status Update

Publicado por Russell Keith-Magee em 1 May 2024

This month has seen BeeWare reach one major milestone, almost reach a second, as well as landing several smaller improvements.

What we've done

What's next?

The bulk of May will be taken up by preparing for and attending PyCon US. We're presenting a talk and a tutorial; we're also presenting at the Language Summit, we will have a booth in the community section of the Expo Hall, and we'll be there for the first 3 days of the sprints. If you're coming to Pittsburgh and you'd like to attend that tutorial session, ticket sales are open!. We're also hoping that we'll be able to wrap up the work on Android support in CPython, and start work on supporting command line applications in Briefcase.

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
  10. Add an API to replace a child of a widget
  11. Add an API to entirely replace the style of a widget
  12. Add the ability to define content when creating a window

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.

RSS Feed

Archive