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.
+
+
+
+
+
+
+
+
+
+
diff --git a/ar_AR/news/buzz/atom.xml b/ar_AR/news/buzz/atom.xml
index a017c8076a..84c690e933 100644
--- a/ar_AR/news/buzz/atom.xml
+++ b/ar_AR/news/buzz/atom.xml
@@ -1,5 +1,20 @@
-The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-01T00:00:00ZBeeWare's official blogSeptember 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
+The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-02T00:00:00ZBeeWare's official blog2024Q4 Roadmap2024-10-02T00:00:00ZRussell Keith-Mageeurn:uuid:10dd2b41-f023-3662-89b5-5c2a39279898<p>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.</p>
+<div class="section" id="q3-progress">
+<h2>Q3 progress</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+<div class="section" id="q4-priorities">
+<h2>Q4 priorities</h2>
+<p>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 <tt class="docutils literal">pip</tt> and <tt class="docutils literal">cibuildwheel</tt>, 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.</p>
+</div>
+<div class="section" id="longer-term-goals">
+<h2>Longer term goals</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+September 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
<div class="section" id="what-we-ve-done">
<h2>What we've done</h2>
<ul class="simple">
@@ -1688,95 +1703,4 @@ Also shout out to the BeeWare community for answering my queries and reviewing m
<p>This is obviously a big job. <a class="reference external" href="https://www.w3.org/TR/CSS/#css-levels">CSS is a big specification</a>, so there's a lot of work to be done - but that also means there's lots of places to contribute! Pick a paragraph of the CSS specification, build some test cases that demonstrate the cases described in that paragraph, and submit a patch implementing that behaviour!</p>
<p>It also highlights why your financial support is so important. While we <em>could</em> do this entirely with volunteered effort, we're going to make much faster progress if a small group of people could focus on this project full time. Financial support would allow up to significantly ramp up the development speed of Colosseum, and the rest of the BeeWare suite.</p>
<p>If you would like to see Colosseum and the rest of BeeWare develop to the point where it can be used for commercial applications, please consider supporting BeeWare financially. And if you have any leads for larger potential sources of funding, please <a class="reference external" href="mailto:russell@keith-magee.com">get in touch</a>.</p>
-2017 Google Summer of Code - Port Cricket to use Toga, instead of Tkinter2017-08-25T00:00:00ZDayanne Fernandesurn:uuid:0ff8a1e8-e78b-37d7-a7aa-c4aae3da494a<p>After almost 4 months of work on <a class="reference external" href="https://developers.google.com/open-source/gsoc/">Google Summer of Code</a> 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> , <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> and <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> were detailed on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a>.</p>
-<div class="section" id="eating-your-own-dog-food">
-<h2>"Eating your own dog food"</h2>
-<p>The best way to show that a product is reliable to the customers is use it. So, the way to show that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> is an effective tool to build a GUI is to build a complete application using it.</p>
-<p><a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> is a graphical tool that helps you run your test suites. Its current version is implemented using <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> as the main GUI framework. So, why not test <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> inside of another product from <a class="reference external" href="https://beeware.org">BeeWare</a>? That's what I have acomplished during my GSoC work.</p>
-</div>
-<div class="section" id="results">
-<h2>Results</h2>
-<p>The proposal focus not only on the port of <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, but on mapping the necessary widgets for a real application using <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> framework. To help me to map this I studied more about <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a>, <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, <a class="reference external" href="/project/projects/libraries/colosseum/">Colosseum</a>, <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>, <a class="reference external" href="https://developer.apple.com/documentation/objectivec">Objective-C</a>, <a class="reference external" href="http://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/Cocoa.html">Cocoa</a> and <a class="reference external" href="https://www.w3.org/Style/CSS/">CSS</a>.</p>
-<p>The work I did during GSoC were sent throught the <a class="reference external" href="https://github.com/beeware/cricket/pull/65">PR 65</a>, reported on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a> and the final demonstration of the work can be seen in this <a class="reference external" href="https://youtu.be/5kz_CmQYFYE">link</a>. There were widgets used on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that weren't ready yet on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, so some improvements were necessary on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> so that I could use them on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>. In summary here are some PRs and issues that I contributed to get my work done in <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<p>Open PR that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/201">PR 201</a> : [Core][Cocoa] Refactoring of the Tree widget</li>
-</ul>
-<p>Merged PRs that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/112">PR 112</a> : [Core][Cocoa] Enable/disable state for buttons, solved <a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/170">PR 170</a> : [Cocoa] Content and retry status for stack trace dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/172">PR 172</a> : [Cocoa] Window resize</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/173">PR 173</a> : [Core][Cocoa] Button color</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/174">PR 174</a> : [Doc] Examples folder and button features example</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/178">PR 178</a> : [Doc] Fix tutorial 2 setup</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/180">PR 180</a> : [Doc] Update <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets roadmap</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/182">PR 182</a> : [Cocoa] Update the label of the Stack trace button for critical dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/184">PR 184</a> : [Core][Cocoa] Hide/show boxes widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/188">PR 188</a> : [Cocoa] Fix error on MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/204">PR 204</a> : [Core][Cocoa] Clear method to MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/206">PR 206</a> : [Core][Cocoa] Readonly and placeholder for MultilineTextInput widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/208">PR 208</a> : [Cocoa] Fix apply style to a SplitContainer widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/pull/60">PR 60</a> : Fix test coverage, solved <a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/rubicon-objc/pull/34">PR 34</a> : [Doc] Add reference to NSObject</li>
-</ul>
-<p>Open issues that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/175">Issue 175</a> : [Core] Add more properties for Label and Font widgets</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/176">Issue 176</a> : [Core] Add "rehint()" on the background of the widget after changing font size</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/186">Issue 186</a> : [Core] Set initial position of the divisor of a SplitContainer</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/197">Issue 197</a> : [Core] Get the id of the selected Tab View on the OptionContainer</li>
-</ul>
-<p>Closed issues that I reported to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/167">Issue 167</a> : [Cocoa] Addition of a SplitContainer on a Box doesn't show the SplitContainer, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/168">Issue 168</a> : [Cocoa] Addition of 2 boxes on an OptionContainer emits Rubicon's error, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/169">Issue 169</a> : [Cocoa] Addition of 2 empty boxes on an OptionContainer emits error from <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> Cocoa platform, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/181">Issue 181</a> : [Core][Cocoa] "Hide" option for widgets, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a> : [Cocoa] Errors on MultilineTextInput, was fixed by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/189">Issue 189</a> : [Cocoa] ProgressBar doesn't appears in a Box, was fixed by <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/194">Issue 194</a> : [Cocoa] The frame of the MultilineTextInput doesn't appear, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/195">Issue 195</a> : [Cocoa] ProgressBar doesn't appear inside of a Box oriented by row, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/196">Issue 196</a> : [Cocoa] Set max value and value on a ProgressBar doesn't make any effect on the layout, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a> : [Core][Cocoa] Clear text on MultilineTextInput widget, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a> : [Cocoa] Set SplitContainer height doesn't update its size, was solved by me</li>
-</ul>
-<p>Closed issues that I didn't reported but I solved on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a> : API to disable buttons?</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/205">Issue 205</a> : adding MultiviewTextInput results in TypeError</li>
-</ul>
-<p>Closed issue that I reported to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a> : Run selected doesn't count/ runs every test selected in a test module, was fixed by me</li>
-</ul>
-<p>Open issue that I reported to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> <a class="reference external" href="https://github.com/ojii">Jonas Obrist</a> repository:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/ojii/rubicon-objc/issues/1">Issue 1</a> : Seg Fault when iterate through a NSIndexSet using block notation</li>
-</ul>
-</div>
-<div class="section" id="future-plans">
-<h2>Future Plans</h2>
-<p>There are some features on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that I want to help develop in a near future, for example:</p>
-<ul class="simple">
-<li>A button to refresh all the tests tree</li>
-<li>Cricket settings</li>
-</ul>
-<p>Also, there are some issues remained after this migration to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>. These issues will be fixed on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets in a near future too, for example:</p>
-<ul class="simple">
-<li>A gap between the output and error boxes when there is no output message</li>
-<li>Run a test if the user click on it</li>
-</ul>
-<p>I truly believe that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.</p>
-</div>
-<div class="section" id="final-considerations">
-<h2>Final Considerations</h2>
-<p>I would like to truly thank my mentors <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a> and <a class="reference external" href="https://github.com/eliasdorneles">Elias Dorneles</a> for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a>. Also, I want to thank <a class="reference external" href="https://github.com/phildini">Philip James</a> that made some reviews in my PRs and <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a> that fixed one issue that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>.</p>
-</div>
\ No newline at end of file
diff --git a/ar_AR/news/buzz/index.html b/ar_AR/news/buzz/index.html
index 4b1b54c2fd..8db388d477 100644
--- a/ar_AR/news/buzz/index.html
+++ b/ar_AR/news/buzz/index.html
@@ -188,6 +188,43 @@
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
-
-
What we've done
-
-
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
-
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
-
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
-
-
-
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:
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
+
+
What we've done
+
+
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
+
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
+
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
+
+
+
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:
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.
2023 is halfway done, and BeeWare continues to make steady 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
-
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
-
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
-
-
-
Q3 priorities
-
Our Q3 goals are:
-
-
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
-
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
-
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
-
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
-
-
-
-
Longer term goals
-
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
-
-
-
Summary
-
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
2023 is halfway done, and BeeWare continues to make steady 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
+
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
+
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
+
+
+
Q3 priorities
+
Our Q3 goals are:
+
+
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
+
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
+
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
+
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
+
+
+
+
Longer term goals
+
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
+
+
+
Summary
+
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
-
-
What we've done
-
During November:
-
-
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
-
-
-
Want to get involved?
-
Want to get involved? Here's 8 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:
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.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
+
+
What we've done
+
During November:
+
+
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
+
+
+
Want to get involved?
+
Want to get involved? Here's 8 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:
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.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
-
-
What we've done
-
During April:
-
-
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
-
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
-
-
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
-
-
-
What's next?
-
In May, we'll be focussing on:
-
-
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
-
Updating the support packages on Android to support Python 3.10.
-
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
-
-
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
+
+
What we've done
+
During April:
+
+
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
+
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
+
+
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
+
+
+
What's next?
+
In May, we'll be focussing on:
+
+
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
+
Updating the support packages on Android to support Python 3.10.
+
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
+
+
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
-
-نُشِرَ من طرف
-
-
- Dayanne Fernandes
-
-
-في
- 25 August 2017
-
-
-
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
-
-
"Eating your own dog food"
-
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
-
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
-
-
-
-
Future Plans
-
There are some features on Cricket that I want to help develop in a near future, for example:
-
-
A button to refresh all the tests tree
-
Cricket settings
-
-
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
-
-
A gap between the output and error boxes when there is no output message
-
Run a test if the user click on it
-
-
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
-
-
-
Final Considerations
-
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
+
+نُشِرَ من طرف
+
+
+ Dayanne Fernandes
+
+
+في
+ 25 August 2017
+
+
+
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
+
+
"Eating your own dog food"
+
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
+
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
+
+
+
+
Future Plans
+
There are some features on Cricket that I want to help develop in a near future, for example:
+
+
A button to refresh all the tests tree
+
Cricket settings
+
+
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
+
+
A gap between the output and error boxes when there is no output message
+
Run a test if the user click on it
+
+
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
+
+
+
Final Considerations
+
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
diff --git a/cs/news/buzz/atom.xml b/cs/news/buzz/atom.xml
index ab9eb69151..170cb46c6c 100644
--- a/cs/news/buzz/atom.xml
+++ b/cs/news/buzz/atom.xml
@@ -1,5 +1,20 @@
-The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-01T00:00:00ZBeeWare's official blogSeptember 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
+The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-02T00:00:00ZBeeWare's official blog2024Q4 Roadmap2024-10-02T00:00:00ZRussell Keith-Mageeurn:uuid:10dd2b41-f023-3662-89b5-5c2a39279898<p>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.</p>
+<div class="section" id="q3-progress">
+<h2>Q3 progress</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+<div class="section" id="q4-priorities">
+<h2>Q4 priorities</h2>
+<p>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 <tt class="docutils literal">pip</tt> and <tt class="docutils literal">cibuildwheel</tt>, 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.</p>
+</div>
+<div class="section" id="longer-term-goals">
+<h2>Longer term goals</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+September 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
<div class="section" id="what-we-ve-done">
<h2>What we've done</h2>
<ul class="simple">
@@ -1688,95 +1703,4 @@ Also shout out to the BeeWare community for answering my queries and reviewing m
<p>This is obviously a big job. <a class="reference external" href="https://www.w3.org/TR/CSS/#css-levels">CSS is a big specification</a>, so there's a lot of work to be done - but that also means there's lots of places to contribute! Pick a paragraph of the CSS specification, build some test cases that demonstrate the cases described in that paragraph, and submit a patch implementing that behaviour!</p>
<p>It also highlights why your financial support is so important. While we <em>could</em> do this entirely with volunteered effort, we're going to make much faster progress if a small group of people could focus on this project full time. Financial support would allow up to significantly ramp up the development speed of Colosseum, and the rest of the BeeWare suite.</p>
<p>If you would like to see Colosseum and the rest of BeeWare develop to the point where it can be used for commercial applications, please consider supporting BeeWare financially. And if you have any leads for larger potential sources of funding, please <a class="reference external" href="mailto:russell@keith-magee.com">get in touch</a>.</p>
-2017 Google Summer of Code - Port Cricket to use Toga, instead of Tkinter2017-08-25T00:00:00ZDayanne Fernandesurn:uuid:0ff8a1e8-e78b-37d7-a7aa-c4aae3da494a<p>After almost 4 months of work on <a class="reference external" href="https://developers.google.com/open-source/gsoc/">Google Summer of Code</a> 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> , <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> and <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> were detailed on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a>.</p>
-<div class="section" id="eating-your-own-dog-food">
-<h2>"Eating your own dog food"</h2>
-<p>The best way to show that a product is reliable to the customers is use it. So, the way to show that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> is an effective tool to build a GUI is to build a complete application using it.</p>
-<p><a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> is a graphical tool that helps you run your test suites. Its current version is implemented using <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> as the main GUI framework. So, why not test <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> inside of another product from <a class="reference external" href="https://beeware.org">BeeWare</a>? That's what I have acomplished during my GSoC work.</p>
-</div>
-<div class="section" id="results">
-<h2>Results</h2>
-<p>The proposal focus not only on the port of <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, but on mapping the necessary widgets for a real application using <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> framework. To help me to map this I studied more about <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a>, <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, <a class="reference external" href="/project/projects/libraries/colosseum/">Colosseum</a>, <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>, <a class="reference external" href="https://developer.apple.com/documentation/objectivec">Objective-C</a>, <a class="reference external" href="http://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/Cocoa.html">Cocoa</a> and <a class="reference external" href="https://www.w3.org/Style/CSS/">CSS</a>.</p>
-<p>The work I did during GSoC were sent throught the <a class="reference external" href="https://github.com/beeware/cricket/pull/65">PR 65</a>, reported on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a> and the final demonstration of the work can be seen in this <a class="reference external" href="https://youtu.be/5kz_CmQYFYE">link</a>. There were widgets used on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that weren't ready yet on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, so some improvements were necessary on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> so that I could use them on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>. In summary here are some PRs and issues that I contributed to get my work done in <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<p>Open PR that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/201">PR 201</a> : [Core][Cocoa] Refactoring of the Tree widget</li>
-</ul>
-<p>Merged PRs that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/112">PR 112</a> : [Core][Cocoa] Enable/disable state for buttons, solved <a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/170">PR 170</a> : [Cocoa] Content and retry status for stack trace dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/172">PR 172</a> : [Cocoa] Window resize</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/173">PR 173</a> : [Core][Cocoa] Button color</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/174">PR 174</a> : [Doc] Examples folder and button features example</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/178">PR 178</a> : [Doc] Fix tutorial 2 setup</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/180">PR 180</a> : [Doc] Update <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets roadmap</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/182">PR 182</a> : [Cocoa] Update the label of the Stack trace button for critical dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/184">PR 184</a> : [Core][Cocoa] Hide/show boxes widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/188">PR 188</a> : [Cocoa] Fix error on MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/204">PR 204</a> : [Core][Cocoa] Clear method to MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/206">PR 206</a> : [Core][Cocoa] Readonly and placeholder for MultilineTextInput widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/208">PR 208</a> : [Cocoa] Fix apply style to a SplitContainer widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/pull/60">PR 60</a> : Fix test coverage, solved <a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/rubicon-objc/pull/34">PR 34</a> : [Doc] Add reference to NSObject</li>
-</ul>
-<p>Open issues that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/175">Issue 175</a> : [Core] Add more properties for Label and Font widgets</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/176">Issue 176</a> : [Core] Add "rehint()" on the background of the widget after changing font size</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/186">Issue 186</a> : [Core] Set initial position of the divisor of a SplitContainer</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/197">Issue 197</a> : [Core] Get the id of the selected Tab View on the OptionContainer</li>
-</ul>
-<p>Closed issues that I reported to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/167">Issue 167</a> : [Cocoa] Addition of a SplitContainer on a Box doesn't show the SplitContainer, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/168">Issue 168</a> : [Cocoa] Addition of 2 boxes on an OptionContainer emits Rubicon's error, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/169">Issue 169</a> : [Cocoa] Addition of 2 empty boxes on an OptionContainer emits error from <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> Cocoa platform, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/181">Issue 181</a> : [Core][Cocoa] "Hide" option for widgets, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a> : [Cocoa] Errors on MultilineTextInput, was fixed by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/189">Issue 189</a> : [Cocoa] ProgressBar doesn't appears in a Box, was fixed by <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/194">Issue 194</a> : [Cocoa] The frame of the MultilineTextInput doesn't appear, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/195">Issue 195</a> : [Cocoa] ProgressBar doesn't appear inside of a Box oriented by row, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/196">Issue 196</a> : [Cocoa] Set max value and value on a ProgressBar doesn't make any effect on the layout, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a> : [Core][Cocoa] Clear text on MultilineTextInput widget, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a> : [Cocoa] Set SplitContainer height doesn't update its size, was solved by me</li>
-</ul>
-<p>Closed issues that I didn't reported but I solved on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a> : API to disable buttons?</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/205">Issue 205</a> : adding MultiviewTextInput results in TypeError</li>
-</ul>
-<p>Closed issue that I reported to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a> : Run selected doesn't count/ runs every test selected in a test module, was fixed by me</li>
-</ul>
-<p>Open issue that I reported to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> <a class="reference external" href="https://github.com/ojii">Jonas Obrist</a> repository:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/ojii/rubicon-objc/issues/1">Issue 1</a> : Seg Fault when iterate through a NSIndexSet using block notation</li>
-</ul>
-</div>
-<div class="section" id="future-plans">
-<h2>Future Plans</h2>
-<p>There are some features on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that I want to help develop in a near future, for example:</p>
-<ul class="simple">
-<li>A button to refresh all the tests tree</li>
-<li>Cricket settings</li>
-</ul>
-<p>Also, there are some issues remained after this migration to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>. These issues will be fixed on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets in a near future too, for example:</p>
-<ul class="simple">
-<li>A gap between the output and error boxes when there is no output message</li>
-<li>Run a test if the user click on it</li>
-</ul>
-<p>I truly believe that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.</p>
-</div>
-<div class="section" id="final-considerations">
-<h2>Final Considerations</h2>
-<p>I would like to truly thank my mentors <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a> and <a class="reference external" href="https://github.com/eliasdorneles">Elias Dorneles</a> for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a>. Also, I want to thank <a class="reference external" href="https://github.com/phildini">Philip James</a> that made some reviews in my PRs and <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a> that fixed one issue that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>.</p>
-</div>
\ No newline at end of file
diff --git a/cs_CZ/index.html b/cs_CZ/index.html
index 66fe65824d..6dfae8f195 100644
--- a/cs_CZ/index.html
+++ b/cs_CZ/index.html
@@ -302,7 +302,7 @@
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.
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
-
-
What we've done
-
-
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
-
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
-
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
-
-
-
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:
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
+
+
What we've done
+
+
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
+
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
+
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
+
+
+
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:
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.
2023 is halfway done, and BeeWare continues to make steady 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
-
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
-
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
-
-
-
Q3 priorities
-
Our Q3 goals are:
-
-
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
-
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
-
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
-
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
-
-
-
-
Longer term goals
-
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
-
-
-
Summary
-
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
2023 is halfway done, and BeeWare continues to make steady 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
+
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
+
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
+
+
+
Q3 priorities
+
Our Q3 goals are:
+
+
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
+
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
+
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
+
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
+
+
+
+
Longer term goals
+
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
+
+
+
Summary
+
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
-
-
What we've done
-
During November:
-
-
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
-
-
-
Want to get involved?
-
Want to get involved? Here's 8 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:
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.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
+
+
What we've done
+
During November:
+
+
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
+
+
+
Want to get involved?
+
Want to get involved? Here's 8 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:
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.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
-
-
What we've done
-
During April:
-
-
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
-
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
-
-
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
-
-
-
What's next?
-
In May, we'll be focussing on:
-
-
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
-
Updating the support packages on Android to support Python 3.10.
-
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
-
-
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
+
+
What we've done
+
During April:
+
+
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
+
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
+
+
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
+
+
+
What's next?
+
In May, we'll be focussing on:
+
+
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
+
Updating the support packages on Android to support Python 3.10.
+
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
+
+
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
-
-Posted by
-
-
- Dayanne Fernandes
-
-
-on
- 25 August 2017
-
-
-
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
-
-
"Eating your own dog food"
-
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
-
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
-
-
-
-
Future Plans
-
There are some features on Cricket that I want to help develop in a near future, for example:
-
-
A button to refresh all the tests tree
-
Cricket settings
-
-
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
-
-
A gap between the output and error boxes when there is no output message
-
Run a test if the user click on it
-
-
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
-
-
-
Final Considerations
-
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
+
+Posted by
+
+
+ Dayanne Fernandes
+
+
+on
+ 25 August 2017
+
+
+
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
+
+
"Eating your own dog food"
+
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
+
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
+
+
+
+
Future Plans
+
There are some features on Cricket that I want to help develop in a near future, for example:
+
+
A button to refresh all the tests tree
+
Cricket settings
+
+
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
+
+
A gap between the output and error boxes when there is no output message
+
Run a test if the user click on it
+
+
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
+
+
+
Final Considerations
+
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
diff --git a/da/news/buzz/atom.xml b/da/news/buzz/atom.xml
index 729e480186..01ebae5445 100644
--- a/da/news/buzz/atom.xml
+++ b/da/news/buzz/atom.xml
@@ -1,5 +1,20 @@
-The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-01T00:00:00ZBeeWare's official blogSeptember 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
+The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-02T00:00:00ZBeeWare's official blog2024Q4 Roadmap2024-10-02T00:00:00ZRussell Keith-Mageeurn:uuid:10dd2b41-f023-3662-89b5-5c2a39279898<p>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.</p>
+<div class="section" id="q3-progress">
+<h2>Q3 progress</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+<div class="section" id="q4-priorities">
+<h2>Q4 priorities</h2>
+<p>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 <tt class="docutils literal">pip</tt> and <tt class="docutils literal">cibuildwheel</tt>, 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.</p>
+</div>
+<div class="section" id="longer-term-goals">
+<h2>Longer term goals</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+September 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
<div class="section" id="what-we-ve-done">
<h2>What we've done</h2>
<ul class="simple">
@@ -1688,95 +1703,4 @@ Also shout out to the BeeWare community for answering my queries and reviewing m
<p>This is obviously a big job. <a class="reference external" href="https://www.w3.org/TR/CSS/#css-levels">CSS is a big specification</a>, so there's a lot of work to be done - but that also means there's lots of places to contribute! Pick a paragraph of the CSS specification, build some test cases that demonstrate the cases described in that paragraph, and submit a patch implementing that behaviour!</p>
<p>It also highlights why your financial support is so important. While we <em>could</em> do this entirely with volunteered effort, we're going to make much faster progress if a small group of people could focus on this project full time. Financial support would allow up to significantly ramp up the development speed of Colosseum, and the rest of the BeeWare suite.</p>
<p>If you would like to see Colosseum and the rest of BeeWare develop to the point where it can be used for commercial applications, please consider supporting BeeWare financially. And if you have any leads for larger potential sources of funding, please <a class="reference external" href="mailto:russell@keith-magee.com">get in touch</a>.</p>
-2017 Google Summer of Code - Port Cricket to use Toga, instead of Tkinter2017-08-25T00:00:00ZDayanne Fernandesurn:uuid:0ff8a1e8-e78b-37d7-a7aa-c4aae3da494a<p>After almost 4 months of work on <a class="reference external" href="https://developers.google.com/open-source/gsoc/">Google Summer of Code</a> 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> , <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> and <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> were detailed on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a>.</p>
-<div class="section" id="eating-your-own-dog-food">
-<h2>"Eating your own dog food"</h2>
-<p>The best way to show that a product is reliable to the customers is use it. So, the way to show that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> is an effective tool to build a GUI is to build a complete application using it.</p>
-<p><a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> is a graphical tool that helps you run your test suites. Its current version is implemented using <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> as the main GUI framework. So, why not test <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> inside of another product from <a class="reference external" href="https://beeware.org">BeeWare</a>? That's what I have acomplished during my GSoC work.</p>
-</div>
-<div class="section" id="results">
-<h2>Results</h2>
-<p>The proposal focus not only on the port of <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, but on mapping the necessary widgets for a real application using <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> framework. To help me to map this I studied more about <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a>, <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, <a class="reference external" href="/project/projects/libraries/colosseum/">Colosseum</a>, <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>, <a class="reference external" href="https://developer.apple.com/documentation/objectivec">Objective-C</a>, <a class="reference external" href="http://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/Cocoa.html">Cocoa</a> and <a class="reference external" href="https://www.w3.org/Style/CSS/">CSS</a>.</p>
-<p>The work I did during GSoC were sent throught the <a class="reference external" href="https://github.com/beeware/cricket/pull/65">PR 65</a>, reported on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a> and the final demonstration of the work can be seen in this <a class="reference external" href="https://youtu.be/5kz_CmQYFYE">link</a>. There were widgets used on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that weren't ready yet on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, so some improvements were necessary on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> so that I could use them on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>. In summary here are some PRs and issues that I contributed to get my work done in <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<p>Open PR that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/201">PR 201</a> : [Core][Cocoa] Refactoring of the Tree widget</li>
-</ul>
-<p>Merged PRs that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/112">PR 112</a> : [Core][Cocoa] Enable/disable state for buttons, solved <a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/170">PR 170</a> : [Cocoa] Content and retry status for stack trace dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/172">PR 172</a> : [Cocoa] Window resize</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/173">PR 173</a> : [Core][Cocoa] Button color</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/174">PR 174</a> : [Doc] Examples folder and button features example</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/178">PR 178</a> : [Doc] Fix tutorial 2 setup</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/180">PR 180</a> : [Doc] Update <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets roadmap</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/182">PR 182</a> : [Cocoa] Update the label of the Stack trace button for critical dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/184">PR 184</a> : [Core][Cocoa] Hide/show boxes widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/188">PR 188</a> : [Cocoa] Fix error on MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/204">PR 204</a> : [Core][Cocoa] Clear method to MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/206">PR 206</a> : [Core][Cocoa] Readonly and placeholder for MultilineTextInput widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/208">PR 208</a> : [Cocoa] Fix apply style to a SplitContainer widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/pull/60">PR 60</a> : Fix test coverage, solved <a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/rubicon-objc/pull/34">PR 34</a> : [Doc] Add reference to NSObject</li>
-</ul>
-<p>Open issues that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/175">Issue 175</a> : [Core] Add more properties for Label and Font widgets</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/176">Issue 176</a> : [Core] Add "rehint()" on the background of the widget after changing font size</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/186">Issue 186</a> : [Core] Set initial position of the divisor of a SplitContainer</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/197">Issue 197</a> : [Core] Get the id of the selected Tab View on the OptionContainer</li>
-</ul>
-<p>Closed issues that I reported to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/167">Issue 167</a> : [Cocoa] Addition of a SplitContainer on a Box doesn't show the SplitContainer, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/168">Issue 168</a> : [Cocoa] Addition of 2 boxes on an OptionContainer emits Rubicon's error, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/169">Issue 169</a> : [Cocoa] Addition of 2 empty boxes on an OptionContainer emits error from <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> Cocoa platform, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/181">Issue 181</a> : [Core][Cocoa] "Hide" option for widgets, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a> : [Cocoa] Errors on MultilineTextInput, was fixed by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/189">Issue 189</a> : [Cocoa] ProgressBar doesn't appears in a Box, was fixed by <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/194">Issue 194</a> : [Cocoa] The frame of the MultilineTextInput doesn't appear, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/195">Issue 195</a> : [Cocoa] ProgressBar doesn't appear inside of a Box oriented by row, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/196">Issue 196</a> : [Cocoa] Set max value and value on a ProgressBar doesn't make any effect on the layout, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a> : [Core][Cocoa] Clear text on MultilineTextInput widget, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a> : [Cocoa] Set SplitContainer height doesn't update its size, was solved by me</li>
-</ul>
-<p>Closed issues that I didn't reported but I solved on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a> : API to disable buttons?</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/205">Issue 205</a> : adding MultiviewTextInput results in TypeError</li>
-</ul>
-<p>Closed issue that I reported to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a> : Run selected doesn't count/ runs every test selected in a test module, was fixed by me</li>
-</ul>
-<p>Open issue that I reported to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> <a class="reference external" href="https://github.com/ojii">Jonas Obrist</a> repository:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/ojii/rubicon-objc/issues/1">Issue 1</a> : Seg Fault when iterate through a NSIndexSet using block notation</li>
-</ul>
-</div>
-<div class="section" id="future-plans">
-<h2>Future Plans</h2>
-<p>There are some features on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that I want to help develop in a near future, for example:</p>
-<ul class="simple">
-<li>A button to refresh all the tests tree</li>
-<li>Cricket settings</li>
-</ul>
-<p>Also, there are some issues remained after this migration to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>. These issues will be fixed on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets in a near future too, for example:</p>
-<ul class="simple">
-<li>A gap between the output and error boxes when there is no output message</li>
-<li>Run a test if the user click on it</li>
-</ul>
-<p>I truly believe that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.</p>
-</div>
-<div class="section" id="final-considerations">
-<h2>Final Considerations</h2>
-<p>I would like to truly thank my mentors <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a> and <a class="reference external" href="https://github.com/eliasdorneles">Elias Dorneles</a> for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a>. Also, I want to thank <a class="reference external" href="https://github.com/phildini">Philip James</a> that made some reviews in my PRs and <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a> that fixed one issue that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>.</p>
-</div>
\ No newline at end of file
diff --git a/da_DK/index.html b/da_DK/index.html
index 5c52d75b88..ab8c6e5d7a 100644
--- a/da_DK/index.html
+++ b/da_DK/index.html
@@ -302,7 +302,7 @@
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.
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
-
-
What we've done
-
-
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
-
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
-
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
-
-
-
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:
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
+
+
What we've done
+
+
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
+
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
+
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
+
+
+
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:
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.
2023 is halfway done, and BeeWare continues to make steady 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
-
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
-
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
-
-
-
Q3 priorities
-
Our Q3 goals are:
-
-
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
-
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
-
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
-
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
-
-
-
-
Longer term goals
-
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
-
-
-
Summary
-
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
2023 is halfway done, and BeeWare continues to make steady 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
+
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
+
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
+
+
+
Q3 priorities
+
Our Q3 goals are:
+
+
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
+
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
+
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
+
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
+
+
+
+
Longer term goals
+
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
+
+
+
Summary
+
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
-
-
What we've done
-
During November:
-
-
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
-
-
-
Want to get involved?
-
Want to get involved? Here's 8 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:
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.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
+
+
What we've done
+
During November:
+
+
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
+
+
+
Want to get involved?
+
Want to get involved? Here's 8 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:
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.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
-
-
What we've done
-
During April:
-
-
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
-
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
-
-
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
-
-
-
What's next?
-
In May, we'll be focussing on:
-
-
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
-
Updating the support packages on Android to support Python 3.10.
-
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
-
-
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
+
+
What we've done
+
During April:
+
+
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
+
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
+
+
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
+
+
+
What's next?
+
In May, we'll be focussing on:
+
+
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
+
Updating the support packages on Android to support Python 3.10.
+
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
+
+
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
-
-Posted by
-
-
- Dayanne Fernandes
-
-
-on
- 25 August 2017
-
-
-
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
-
-
"Eating your own dog food"
-
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
-
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
-
-
-
-
Future Plans
-
There are some features on Cricket that I want to help develop in a near future, for example:
-
-
A button to refresh all the tests tree
-
Cricket settings
-
-
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
-
-
A gap between the output and error boxes when there is no output message
-
Run a test if the user click on it
-
-
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
-
-
-
Final Considerations
-
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
+
+Posted by
+
+
+ Dayanne Fernandes
+
+
+on
+ 25 August 2017
+
+
+
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
+
+
"Eating your own dog food"
+
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
+
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
+
+
+
+
Future Plans
+
There are some features on Cricket that I want to help develop in a near future, for example:
+
+
A button to refresh all the tests tree
+
Cricket settings
+
+
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
+
+
A gap between the output and error boxes when there is no output message
+
Run a test if the user click on it
+
+
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
+
+
+
Final Considerations
+
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
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.
+
+
+
+
+
+
+
+
+
+
diff --git a/de_DE/news/buzz/atom.xml b/de_DE/news/buzz/atom.xml
index 74f51ffd96..f6ef56fd78 100644
--- a/de_DE/news/buzz/atom.xml
+++ b/de_DE/news/buzz/atom.xml
@@ -1,5 +1,20 @@
-The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-01T00:00:00ZBeeWare's official blogSeptember 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
+The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-02T00:00:00ZBeeWare's official blog2024Q4 Roadmap2024-10-02T00:00:00ZRussell Keith-Mageeurn:uuid:10dd2b41-f023-3662-89b5-5c2a39279898<p>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.</p>
+<div class="section" id="q3-progress">
+<h2>Q3 progress</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+<div class="section" id="q4-priorities">
+<h2>Q4 priorities</h2>
+<p>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 <tt class="docutils literal">pip</tt> and <tt class="docutils literal">cibuildwheel</tt>, 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.</p>
+</div>
+<div class="section" id="longer-term-goals">
+<h2>Longer term goals</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+September 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
<div class="section" id="what-we-ve-done">
<h2>What we've done</h2>
<ul class="simple">
@@ -1688,95 +1703,4 @@ Also shout out to the BeeWare community for answering my queries and reviewing m
<p>This is obviously a big job. <a class="reference external" href="https://www.w3.org/TR/CSS/#css-levels">CSS is a big specification</a>, so there's a lot of work to be done - but that also means there's lots of places to contribute! Pick a paragraph of the CSS specification, build some test cases that demonstrate the cases described in that paragraph, and submit a patch implementing that behaviour!</p>
<p>It also highlights why your financial support is so important. While we <em>could</em> do this entirely with volunteered effort, we're going to make much faster progress if a small group of people could focus on this project full time. Financial support would allow up to significantly ramp up the development speed of Colosseum, and the rest of the BeeWare suite.</p>
<p>If you would like to see Colosseum and the rest of BeeWare develop to the point where it can be used for commercial applications, please consider supporting BeeWare financially. And if you have any leads for larger potential sources of funding, please <a class="reference external" href="mailto:russell@keith-magee.com">get in touch</a>.</p>
-2017 Google Summer of Code - Port Cricket to use Toga, instead of Tkinter2017-08-25T00:00:00ZDayanne Fernandesurn:uuid:0ff8a1e8-e78b-37d7-a7aa-c4aae3da494a<p>After almost 4 months of work on <a class="reference external" href="https://developers.google.com/open-source/gsoc/">Google Summer of Code</a> 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> , <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> and <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> were detailed on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a>.</p>
-<div class="section" id="eating-your-own-dog-food">
-<h2>"Eating your own dog food"</h2>
-<p>The best way to show that a product is reliable to the customers is use it. So, the way to show that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> is an effective tool to build a GUI is to build a complete application using it.</p>
-<p><a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> is a graphical tool that helps you run your test suites. Its current version is implemented using <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> as the main GUI framework. So, why not test <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> inside of another product from <a class="reference external" href="https://beeware.org">BeeWare</a>? That's what I have acomplished during my GSoC work.</p>
-</div>
-<div class="section" id="results">
-<h2>Results</h2>
-<p>The proposal focus not only on the port of <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, but on mapping the necessary widgets for a real application using <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> framework. To help me to map this I studied more about <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a>, <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, <a class="reference external" href="/project/projects/libraries/colosseum/">Colosseum</a>, <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>, <a class="reference external" href="https://developer.apple.com/documentation/objectivec">Objective-C</a>, <a class="reference external" href="http://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/Cocoa.html">Cocoa</a> and <a class="reference external" href="https://www.w3.org/Style/CSS/">CSS</a>.</p>
-<p>The work I did during GSoC were sent throught the <a class="reference external" href="https://github.com/beeware/cricket/pull/65">PR 65</a>, reported on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a> and the final demonstration of the work can be seen in this <a class="reference external" href="https://youtu.be/5kz_CmQYFYE">link</a>. There were widgets used on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that weren't ready yet on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, so some improvements were necessary on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> so that I could use them on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>. In summary here are some PRs and issues that I contributed to get my work done in <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<p>Open PR that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/201">PR 201</a> : [Core][Cocoa] Refactoring of the Tree widget</li>
-</ul>
-<p>Merged PRs that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/112">PR 112</a> : [Core][Cocoa] Enable/disable state for buttons, solved <a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/170">PR 170</a> : [Cocoa] Content and retry status for stack trace dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/172">PR 172</a> : [Cocoa] Window resize</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/173">PR 173</a> : [Core][Cocoa] Button color</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/174">PR 174</a> : [Doc] Examples folder and button features example</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/178">PR 178</a> : [Doc] Fix tutorial 2 setup</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/180">PR 180</a> : [Doc] Update <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets roadmap</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/182">PR 182</a> : [Cocoa] Update the label of the Stack trace button for critical dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/184">PR 184</a> : [Core][Cocoa] Hide/show boxes widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/188">PR 188</a> : [Cocoa] Fix error on MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/204">PR 204</a> : [Core][Cocoa] Clear method to MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/206">PR 206</a> : [Core][Cocoa] Readonly and placeholder for MultilineTextInput widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/208">PR 208</a> : [Cocoa] Fix apply style to a SplitContainer widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/pull/60">PR 60</a> : Fix test coverage, solved <a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/rubicon-objc/pull/34">PR 34</a> : [Doc] Add reference to NSObject</li>
-</ul>
-<p>Open issues that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/175">Issue 175</a> : [Core] Add more properties for Label and Font widgets</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/176">Issue 176</a> : [Core] Add "rehint()" on the background of the widget after changing font size</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/186">Issue 186</a> : [Core] Set initial position of the divisor of a SplitContainer</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/197">Issue 197</a> : [Core] Get the id of the selected Tab View on the OptionContainer</li>
-</ul>
-<p>Closed issues that I reported to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/167">Issue 167</a> : [Cocoa] Addition of a SplitContainer on a Box doesn't show the SplitContainer, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/168">Issue 168</a> : [Cocoa] Addition of 2 boxes on an OptionContainer emits Rubicon's error, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/169">Issue 169</a> : [Cocoa] Addition of 2 empty boxes on an OptionContainer emits error from <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> Cocoa platform, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/181">Issue 181</a> : [Core][Cocoa] "Hide" option for widgets, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a> : [Cocoa] Errors on MultilineTextInput, was fixed by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/189">Issue 189</a> : [Cocoa] ProgressBar doesn't appears in a Box, was fixed by <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/194">Issue 194</a> : [Cocoa] The frame of the MultilineTextInput doesn't appear, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/195">Issue 195</a> : [Cocoa] ProgressBar doesn't appear inside of a Box oriented by row, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/196">Issue 196</a> : [Cocoa] Set max value and value on a ProgressBar doesn't make any effect on the layout, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a> : [Core][Cocoa] Clear text on MultilineTextInput widget, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a> : [Cocoa] Set SplitContainer height doesn't update its size, was solved by me</li>
-</ul>
-<p>Closed issues that I didn't reported but I solved on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a> : API to disable buttons?</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/205">Issue 205</a> : adding MultiviewTextInput results in TypeError</li>
-</ul>
-<p>Closed issue that I reported to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a> : Run selected doesn't count/ runs every test selected in a test module, was fixed by me</li>
-</ul>
-<p>Open issue that I reported to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> <a class="reference external" href="https://github.com/ojii">Jonas Obrist</a> repository:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/ojii/rubicon-objc/issues/1">Issue 1</a> : Seg Fault when iterate through a NSIndexSet using block notation</li>
-</ul>
-</div>
-<div class="section" id="future-plans">
-<h2>Future Plans</h2>
-<p>There are some features on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that I want to help develop in a near future, for example:</p>
-<ul class="simple">
-<li>A button to refresh all the tests tree</li>
-<li>Cricket settings</li>
-</ul>
-<p>Also, there are some issues remained after this migration to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>. These issues will be fixed on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets in a near future too, for example:</p>
-<ul class="simple">
-<li>A gap between the output and error boxes when there is no output message</li>
-<li>Run a test if the user click on it</li>
-</ul>
-<p>I truly believe that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.</p>
-</div>
-<div class="section" id="final-considerations">
-<h2>Final Considerations</h2>
-<p>I would like to truly thank my mentors <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a> and <a class="reference external" href="https://github.com/eliasdorneles">Elias Dorneles</a> for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a>. Also, I want to thank <a class="reference external" href="https://github.com/phildini">Philip James</a> that made some reviews in my PRs and <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a> that fixed one issue that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>.</p>
-</div>
\ No newline at end of file
diff --git a/de_DE/news/buzz/index.html b/de_DE/news/buzz/index.html
index 8afa4fde18..7ea61dac3b 100644
--- a/de_DE/news/buzz/index.html
+++ b/de_DE/news/buzz/index.html
@@ -188,6 +188,43 @@
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
-
-
What we've done
-
-
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
-
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
-
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
-
-
-
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:
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
+
+
What we've done
+
+
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
+
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
+
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
+
+
+
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:
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.
2023 is halfway done, and BeeWare continues to make steady 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
-
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
-
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
-
-
-
Q3 priorities
-
Our Q3 goals are:
-
-
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
-
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
-
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
-
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
-
-
-
-
Longer term goals
-
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
-
-
-
Summary
-
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
2023 is halfway done, and BeeWare continues to make steady 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
+
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
+
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
+
+
+
Q3 priorities
+
Our Q3 goals are:
+
+
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
+
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
+
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
+
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
+
+
+
+
Longer term goals
+
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
+
+
+
Summary
+
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
-
-
What we've done
-
During November:
-
-
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
-
-
-
Want to get involved?
-
Want to get involved? Here's 8 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:
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.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
+
+
What we've done
+
During November:
+
+
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
+
+
+
Want to get involved?
+
Want to get involved? Here's 8 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:
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.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
-
-
What we've done
-
During April:
-
-
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
-
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
-
-
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
-
-
-
What's next?
-
In May, we'll be focussing on:
-
-
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
-
Updating the support packages on Android to support Python 3.10.
-
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
-
-
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
+
+
What we've done
+
During April:
+
+
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
+
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
+
+
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
+
+
+
What's next?
+
In May, we'll be focussing on:
+
+
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
+
Updating the support packages on Android to support Python 3.10.
+
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
+
+
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
-
-Posted by
-
-
- Dayanne Fernandes
-
-
-on
- 25 August 2017
-
-
-
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
-
-
"Eating your own dog food"
-
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
-
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
-
-
-
-
Future Plans
-
There are some features on Cricket that I want to help develop in a near future, for example:
-
-
A button to refresh all the tests tree
-
Cricket settings
-
-
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
-
-
A gap between the output and error boxes when there is no output message
-
Run a test if the user click on it
-
-
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
-
-
-
Final Considerations
-
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
+
+Posted by
+
+
+ Dayanne Fernandes
+
+
+on
+ 25 August 2017
+
+
+
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
+
+
"Eating your own dog food"
+
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
+
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
+
+
+
+
Future Plans
+
There are some features on Cricket that I want to help develop in a near future, for example:
+
+
A button to refresh all the tests tree
+
Cricket settings
+
+
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
+
+
A gap between the output and error boxes when there is no output message
+
Run a test if the user click on it
+
+
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
+
+
+
Final Considerations
+
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
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.
+
+
+
+
+
+
+
+
+
+
diff --git a/es/noticias/zumbido/atom.xml b/es/noticias/zumbido/atom.xml
index c32d7d96a4..a3c4d42b0c 100644
--- a/es/noticias/zumbido/atom.xml
+++ b/es/noticias/zumbido/atom.xml
@@ -1,5 +1,20 @@
-El Zumbidourn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-01T00:00:00ZBeeWare's official blogSeptember 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
+El Zumbidourn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-02T00:00:00ZBeeWare's official blog2024Q4 Roadmap2024-10-02T00:00:00ZRussell Keith-Mageeurn:uuid:10dd2b41-f023-3662-89b5-5c2a39279898<p>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.</p>
+<div class="section" id="q3-progress">
+<h2>Q3 progress</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+<div class="section" id="q4-priorities">
+<h2>Q4 priorities</h2>
+<p>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 <tt class="docutils literal">pip</tt> and <tt class="docutils literal">cibuildwheel</tt>, 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.</p>
+</div>
+<div class="section" id="longer-term-goals">
+<h2>Longer term goals</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+September 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
<div class="section" id="what-we-ve-done">
<h2>What we've done</h2>
<ul class="simple">
@@ -1688,95 +1703,4 @@ Also shout out to the BeeWare community for answering my queries and reviewing m
<p>Esto es obviamente un trabajo grande. <a class="reference external" href="https://www.w3.org/TR/CSS/#css-levels">CSS es una gran especificación</a>, por lo que hay mucho trabajo por hacer, ¡pero eso también significa que hay muchos lugares para contribuir! Elije un párrafo de la especificación CSS, construye algunos casos de prueba que demuestren los casos descritos en ese párrafo y envía un parche que implemente ese comportamiento!</p>
<p>Esto resalta por que tu apoyo financiero es muy importante. Si bien <em>podríamos</em> hacer esto completamente con un esfuerzo voluntario, vamos a progresar mucho más rápido si un pequeño grupo de personas pudiera enfocarse en este proyecto de tiempo completo. El apoyo financiero permitiría aumentar significativamente la velocidad de desarrollo de Colosseum y el resto de la suite BeeWare.</p>
<p>Si deseas que Colosseum y el resto de BeeWare se desarrollen hasta el punto en que puedan utilizarse para aplicaciones comerciales, considera apoyar a BeeWare financieramente. Y si tienes alguna idea para fuentes de financiación potenciales más grandes, por favor <a class="reference external" href="mailto:russell@keith-magee.com">ponte en contacto</a>.</p>
-2017 Google Summer of Code - Portar Cricket a Toga, en lugar de Tkinter2017-08-25T00:00:00ZDayanne Fernandesurn:uuid:0ff8a1e8-e78b-37d7-a7aa-c4aae3da494a<p>Después de casi 4 meses de trabajo en <a class="reference external" href="https://developers.google.com/open-source/gsoc/">Google Summer of Code</a> 2017, finalmente estoy completando mi propuesta. Cada migración de widget y cada commit / PR / Issues / discusión con mis mentores sobre <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>, <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> y <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> fueron detallados en el <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a>.</p>
-<div class="section" id="comer-su-propia-comida-para-perros">
-<h2>"Comer su propia comida para perros"</h2>
-<p>La mejor manera de demostrar que un producto es confiable para los clientes es usarlo. Por lo tanto, la forma de demostrar que <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> es una herramienta eficaz para construir una interfaz gráfica de usuario es construir una aplicación completa que la utilice.</p>
-<p><a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> es una herramienta gráfica que le ayuda a ejecutar sus suites de prueba. Su versión actual se implementa utilizando <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> como el marco de la interfaz gráfica principal. Entonces, ¿por qué no probar <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> dentro de otro producto de <a class="reference external" href="/es/">BeeWare</a>? Eso es lo que he logrado durante mi trabajo de GSoC.</p>
-</div>
-<div class="section" id="resultados">
-<h2>Resultados</h2>
-<p>La propuesta se centra no sólo en el puerto de <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> a <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, sino en la asignación de los widgets necesarios para una aplicación real utilizando <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>. Para ayudarme a mapear esto he estudiado más sobre <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a>, <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, <a class="reference external" href="/es/proyecto/proyectos/librerias/colosseum/">Colosseum</a>, <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>, <a class="reference external" href="https://developer.apple.com/documentation/objectivec">Objective-C</a>, <a class="reference external" href="http://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/Cocoa.html">Cocoa</a> y <a class="reference external" href="https://www.w3.org/Style/CSS/">CSS</a>.</p>
-<p>El trabajo que hice durante GSoC se envió a través del <a class="reference external" href="https://github.com/beeware/cricket/pull/65">PR 65</a>, el informe en el <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a> y la demostración final se puede ver en este <a class="reference external" href="https://youtu.be/5kz_CmQYFYE">link</a>. Había widgets utilizados en <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> que no estaban listos todavía en <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, por lo que era necesario hacer algunas mejoras en <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> para que pudiera usarlas en <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>. En resumen, aquí hay algunos PR que contribuí para hacer mi trabajo en <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<p>PR abierto enviado a <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/201">PR 201</a> : [Core][Cocoa] Refactoring of the Tree widget</li>
-</ul>
-<p>PRs emergidos enviados <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/112">PR 112</a> : [Core][Cocoa] Enable/disable state for buttons, solved <a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/170">PR 170</a> : [Cocoa] Content and retry status for stack trace dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/172">PR 172</a> : [Cocoa] Window resize</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/173">PR 173</a> : [Core][Cocoa] Button color</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/174">PR 174</a> : [Doc] Examples folder and button features example</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/178">PR 178</a> : [Doc] Fix tutorial 2 setup</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/180">PR 180</a> : [Doc] Update <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets roadmap</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/182">PR 182</a> : [Cocoa] Update the label of the Stack trace button for critical dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/184">PR 184</a> : [Core][Cocoa] Hide/show boxes widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/188">PR 188</a> : [Cocoa] Fix error on MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/204">PR 204</a> : [Core][Cocoa] Clear method to MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/206">PR 206</a> : [Core][Cocoa] Readonly and placeholder for MultilineTextInput widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/208">PR 208</a> : [Cocoa] Fix apply style to a SplitContainer widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a></li>
-</ul>
-<p>PRs emergidos enviados <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/pull/60">PR 60</a> : Fix test coverage, solved <a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a></li>
-</ul>
-<p>PRs emergidos enviados <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/rubicon-objc/pull/34">PR 34</a> : [Doc] Add reference to NSObject</li>
-</ul>
-<p>Tiquetes abiertos enviados a <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/175">Issue 175</a> : [Core] Add more properties for Label and Font widgets</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/176">Issue 176</a> : [Core] Add "rehint()" on the background of the widget after changing font size</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/186">Issue 186</a> : [Core] Set initial position of the divisor of a SplitContainer</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/197">Issue 197</a> : [Core] Get the id of the selected Tab View on the OptionContainer</li>
-</ul>
-<p>Tiquetes cerrados en <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/167">Issue 167</a> : [Cocoa] Addition of a SplitContainer on a Box doesn't show the SplitContainer, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/168">Issue 168</a> : [Cocoa] Addition of 2 boxes on an OptionContainer emits Rubicon's error, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/169">Issue 169</a> : [Cocoa] Addition of 2 empty boxes on an OptionContainer emits error from <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> Cocoa platform, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/181">Issue 181</a> : [Core][Cocoa] "Hide" option for widgets, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a> : [Cocoa] Errors on MultilineTextInput, was fixed by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/189">Issue 189</a> : [Cocoa] ProgressBar doesn't appears in a Box, was fixed by <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/194">Issue 194</a> : [Cocoa] The frame of the MultilineTextInput doesn't appear, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/195">Issue 195</a> : [Cocoa] ProgressBar doesn't appear inside of a Box oriented by row, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/196">Issue 196</a> : [Cocoa] Set max value and value on a ProgressBar doesn't make any effect on the layout, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a> : [Core][Cocoa] Clear text on MultilineTextInput widget, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a> : [Cocoa] Set SplitContainer height doesn't update its size, was solved by me</li>
-</ul>
-<p>Tiquetes cerrados que no reporté pero que resolví en <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a> : API to disable buttons?</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/205">Issue 205</a> : adding MultiviewTextInput results in TypeError</li>
-</ul>
-<p>Tiquete cerrado que reporté a <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a> : Run selected doesn't count/ runs every test selected in a test module, was fixed by me</li>
-</ul>
-<p>Tiquete abierto que reporté a <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> <a class="reference external" href="https://github.com/ojii">Jonas Obrist</a> repository:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/ojii/rubicon-objc/issues/1">Issue 1</a> : Seg Fault when iterate through a NSIndexSet using block notation</li>
-</ul>
-</div>
-<div class="section" id="planes-futuros">
-<h2>Planes futuros</h2>
-<p>Hay algunas características en <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> que quiero ayudar a desarrollar en un futuro próximo, por ejemplo:</p>
-<ul class="simple">
-<li>Un botón para actualizar todo el árbol de pruebas</li>
-<li>Configuración de Cricket</li>
-</ul>
-<p>Además, hay algunos problemas que quedaron después de la migración a <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>. Estos problemas se arreglarán en <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> en un futuro próximo, por ejemplo:</p>
-<ul class="simple">
-<li>Una brecha entre la salida y los cuadros de error cuando no hay mensaje de salida</li>
-<li>Ejecutar una prueba si el usuario haga clic en ella</li>
-</ul>
-<p>Realmente creo que <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> será el framework oficial en Python para construir GUI para aplicaciones multi-plataforma, así que seguiré contribuyendo a este proyecto porque quiero usar en todas las aplicaciones que necesitaría una GUI.</p>
-</div>
-<div class="section" id="consideraciones-finales">
-<h2>Consideraciones finales</h2>
-<p>Me gustaría agradecer a mis mentores <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a> y <a class="reference external" href="https://github.com/eliasdorneles">Elias Dorneles</a> por guíarme y ayudarme tanto durante este período. La oportunidad de ser parte de esta comunidad fue un gran honor para mí, muchas gracias por aceptarme en este programa <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a>. Además, quiero agradecer a <a class="reference external" href="https://github.com/phildini">Philip James</a> que hizo algunas reseñas en mis PRs y <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a> quienes arreglaron un tema que envié a <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>.</p>
-</div>
\ No newline at end of file
diff --git a/es/noticias/zumbido/index.html b/es/noticias/zumbido/index.html
index cf78bf77f1..a8685d5529 100644
--- a/es/noticias/zumbido/index.html
+++ b/es/noticias/zumbido/index.html
@@ -188,6 +188,43 @@
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
-
-
What we've done
-
-
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
-
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
-
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
-
-
-
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:
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
+
+
What we've done
+
+
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
+
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
+
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
+
+
+
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:
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.
2023 is halfway done, and BeeWare continues to make steady 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
-
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
-
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
-
-
-
Q3 priorities
-
Our Q3 goals are:
-
-
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
-
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
-
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
-
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
-
-
-
-
Longer term goals
-
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
-
-
-
Summary
-
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
2023 is halfway done, and BeeWare continues to make steady 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
+
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
+
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
+
+
+
Q3 priorities
+
Our Q3 goals are:
+
+
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
+
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
+
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
+
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
+
+
+
+
Longer term goals
+
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
+
+
+
Summary
+
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
-
-
What we've done
-
During November:
-
-
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
-
-
-
Want to get involved?
-
Want to get involved? Here's 8 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:
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.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
+
+
What we've done
+
During November:
+
+
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
+
+
+
Want to get involved?
+
Want to get involved? Here's 8 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:
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.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
-
-
What we've done
-
During April:
-
-
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
-
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
-
-
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
-
-
-
What's next?
-
In May, we'll be focussing on:
-
-
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
-
Updating the support packages on Android to support Python 3.10.
-
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
-
-
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
+
+
What we've done
+
During April:
+
+
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
+
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
+
+
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
+
+
+
What's next?
+
In May, we'll be focussing on:
+
+
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
+
Updating the support packages on Android to support Python 3.10.
+
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
+
+
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
-
-Publicado por
-
-
- Dayanne Fernandes
-
-
-en
- 25 August 2017
-
-
-
Después de casi 4 meses de trabajo en Google Summer of Code 2017, finalmente estoy completando mi propuesta. Cada migración de widget y cada commit / PR / Issues / discusión con mis mentores sobre Cricket, Toga y rubicon-objc fueron detallados en el Issue 58.
-
-
"Comer su propia comida para perros"
-
La mejor manera de demostrar que un producto es confiable para los clientes es usarlo. Por lo tanto, la forma de demostrar que Toga es una herramienta eficaz para construir una interfaz gráfica de usuario es construir una aplicación completa que la utilice.
-
Cricket es una herramienta gráfica que le ayuda a ejecutar sus suites de prueba. Su versión actual se implementa utilizando Tkinter como el marco de la interfaz gráfica principal. Entonces, ¿por qué no probar Toga dentro de otro producto de BeeWare? Eso es lo que he logrado durante mi trabajo de GSoC.
-
-
-
Resultados
-
La propuesta se centra no sólo en el puerto de Tkinter a Toga, sino en la asignación de los widgets necesarios para una aplicación real utilizando Toga. Para ayudarme a mapear esto he estudiado más sobre Tkinter, Toga, Colosseum, rubicon-objc, Objective-C, Cocoa y CSS.
-
El trabajo que hice durante GSoC se envió a través del PR 65, el informe en el Issue 58 y la demostración final se puede ver en este link. Había widgets utilizados en Cricket que no estaban listos todavía en Toga, por lo que era necesario hacer algunas mejoras en Toga para que pudiera usarlas en Cricket. En resumen, aquí hay algunos PR que contribuí para hacer mi trabajo en Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
-
-
-
-
Planes futuros
-
Hay algunas características en Cricket que quiero ayudar a desarrollar en un futuro próximo, por ejemplo:
-
-
Un botón para actualizar todo el árbol de pruebas
-
Configuración de Cricket
-
-
Además, hay algunos problemas que quedaron después de la migración a Toga. Estos problemas se arreglarán en Toga en un futuro próximo, por ejemplo:
-
-
Una brecha entre la salida y los cuadros de error cuando no hay mensaje de salida
-
Ejecutar una prueba si el usuario haga clic en ella
-
-
Realmente creo que Toga será el framework oficial en Python para construir GUI para aplicaciones multi-plataforma, así que seguiré contribuyendo a este proyecto porque quiero usar en todas las aplicaciones que necesitaría una GUI.
-
-
-
Consideraciones finales
-
Me gustaría agradecer a mis mentores Russell Keith-Magee y Elias Dorneles por guíarme y ayudarme tanto durante este período. La oportunidad de ser parte de esta comunidad fue un gran honor para mí, muchas gracias por aceptarme en este programa Russell Keith-Magee. Además, quiero agradecer a Philip James que hizo algunas reseñas en mis PRs y Jonas Schell quienes arreglaron un tema que envié a Toga.
+
+Publicado por
+
+
+ Dayanne Fernandes
+
+
+en
+ 25 August 2017
+
+
+
Después de casi 4 meses de trabajo en Google Summer of Code 2017, finalmente estoy completando mi propuesta. Cada migración de widget y cada commit / PR / Issues / discusión con mis mentores sobre Cricket, Toga y rubicon-objc fueron detallados en el Issue 58.
+
+
"Comer su propia comida para perros"
+
La mejor manera de demostrar que un producto es confiable para los clientes es usarlo. Por lo tanto, la forma de demostrar que Toga es una herramienta eficaz para construir una interfaz gráfica de usuario es construir una aplicación completa que la utilice.
+
Cricket es una herramienta gráfica que le ayuda a ejecutar sus suites de prueba. Su versión actual se implementa utilizando Tkinter como el marco de la interfaz gráfica principal. Entonces, ¿por qué no probar Toga dentro de otro producto de BeeWare? Eso es lo que he logrado durante mi trabajo de GSoC.
+
+
+
Resultados
+
La propuesta se centra no sólo en el puerto de Tkinter a Toga, sino en la asignación de los widgets necesarios para una aplicación real utilizando Toga. Para ayudarme a mapear esto he estudiado más sobre Tkinter, Toga, Colosseum, rubicon-objc, Objective-C, Cocoa y CSS.
+
El trabajo que hice durante GSoC se envió a través del PR 65, el informe en el Issue 58 y la demostración final se puede ver en este link. Había widgets utilizados en Cricket que no estaban listos todavía en Toga, por lo que era necesario hacer algunas mejoras en Toga para que pudiera usarlas en Cricket. En resumen, aquí hay algunos PR que contribuí para hacer mi trabajo en Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
+
+
+
+
Planes futuros
+
Hay algunas características en Cricket que quiero ayudar a desarrollar en un futuro próximo, por ejemplo:
+
+
Un botón para actualizar todo el árbol de pruebas
+
Configuración de Cricket
+
+
Además, hay algunos problemas que quedaron después de la migración a Toga. Estos problemas se arreglarán en Toga en un futuro próximo, por ejemplo:
+
+
Una brecha entre la salida y los cuadros de error cuando no hay mensaje de salida
+
Ejecutar una prueba si el usuario haga clic en ella
+
+
Realmente creo que Toga será el framework oficial en Python para construir GUI para aplicaciones multi-plataforma, así que seguiré contribuyendo a este proyecto porque quiero usar en todas las aplicaciones que necesitaría una GUI.
+
+
+
Consideraciones finales
+
Me gustaría agradecer a mis mentores Russell Keith-Magee y Elias Dorneles por guíarme y ayudarme tanto durante este período. La oportunidad de ser parte de esta comunidad fue un gran honor para mí, muchas gracias por aceptarme en este programa Russell Keith-Magee. Además, quiero agradecer a Philip James que hizo algunas reseñas en mis PRs y Jonas Schell quienes arreglaron un tema que envié a Toga.
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.
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
-
-
What we've done
-
-
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
-
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
-
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
-
-
-
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:
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
+
+
What we've done
+
+
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
+
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
+
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
+
+
+
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:
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.
2023 is halfway done, and BeeWare continues to make steady 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
-
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
-
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
-
-
-
Q3 priorities
-
Our Q3 goals are:
-
-
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
-
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
-
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
-
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
-
-
-
-
Longer term goals
-
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
-
-
-
Summary
-
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
2023 is halfway done, and BeeWare continues to make steady 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
+
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
+
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
+
+
+
Q3 priorities
+
Our Q3 goals are:
+
+
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
+
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
+
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
+
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
+
+
+
+
Longer term goals
+
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
+
+
+
Summary
+
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
-
-
What we've done
-
During November:
-
-
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
-
-
-
Want to get involved?
-
Want to get involved? Here's 8 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:
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.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
+
+
What we've done
+
During November:
+
+
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
+
+
+
Want to get involved?
+
Want to get involved? Here's 8 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:
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.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
-
-
What we've done
-
During April:
-
-
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
-
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
-
-
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
-
-
-
What's next?
-
In May, we'll be focussing on:
-
-
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
-
Updating the support packages on Android to support Python 3.10.
-
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
-
-
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
+
+
What we've done
+
During April:
+
+
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
+
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
+
+
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
+
+
+
What's next?
+
In May, we'll be focussing on:
+
+
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
+
Updating the support packages on Android to support Python 3.10.
+
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
+
+
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
-
-Posté par
-
-
- Dayanne Fernandes
-
-
-le
- 25 August 2017
-
-
-
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
-
-
"Eating your own dog food"
-
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
-
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
-
-
-
-
Future Plans
-
There are some features on Cricket that I want to help develop in a near future, for example:
-
-
A button to refresh all the tests tree
-
Cricket settings
-
-
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
-
-
A gap between the output and error boxes when there is no output message
-
Run a test if the user click on it
-
-
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
-
-
-
Final Considerations
-
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
+
+Posté par
+
+
+ Dayanne Fernandes
+
+
+le
+ 25 August 2017
+
+
+
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
+
+
"Eating your own dog food"
+
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
+
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
+
+
+
+
Future Plans
+
There are some features on Cricket that I want to help develop in a near future, for example:
+
+
A button to refresh all the tests tree
+
Cricket settings
+
+
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
+
+
A gap between the output and error boxes when there is no output message
+
Run a test if the user click on it
+
+
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
+
+
+
Final Considerations
+
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
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.
+
+
+
+
+
+
+
+
+
+
diff --git a/it_IT/news/buzz/atom.xml b/it_IT/news/buzz/atom.xml
index 1dcef46542..2f32784aab 100644
--- a/it_IT/news/buzz/atom.xml
+++ b/it_IT/news/buzz/atom.xml
@@ -1,5 +1,20 @@
-The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-01T00:00:00ZBeeWare's official blogSeptember 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
+The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-02T00:00:00ZBeeWare's official blog2024Q4 Roadmap2024-10-02T00:00:00ZRussell Keith-Mageeurn:uuid:10dd2b41-f023-3662-89b5-5c2a39279898<p>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.</p>
+<div class="section" id="q3-progress">
+<h2>Q3 progress</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+<div class="section" id="q4-priorities">
+<h2>Q4 priorities</h2>
+<p>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 <tt class="docutils literal">pip</tt> and <tt class="docutils literal">cibuildwheel</tt>, 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.</p>
+</div>
+<div class="section" id="longer-term-goals">
+<h2>Longer term goals</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+September 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
<div class="section" id="what-we-ve-done">
<h2>What we've done</h2>
<ul class="simple">
@@ -1688,95 +1703,4 @@ Also shout out to the BeeWare community for answering my queries and reviewing m
<p>This is obviously a big job. <a class="reference external" href="https://www.w3.org/TR/CSS/#css-levels">CSS is a big specification</a>, so there's a lot of work to be done - but that also means there's lots of places to contribute! Pick a paragraph of the CSS specification, build some test cases that demonstrate the cases described in that paragraph, and submit a patch implementing that behaviour!</p>
<p>It also highlights why your financial support is so important. While we <em>could</em> do this entirely with volunteered effort, we're going to make much faster progress if a small group of people could focus on this project full time. Financial support would allow up to significantly ramp up the development speed of Colosseum, and the rest of the BeeWare suite.</p>
<p>If you would like to see Colosseum and the rest of BeeWare develop to the point where it can be used for commercial applications, please consider supporting BeeWare financially. And if you have any leads for larger potential sources of funding, please <a class="reference external" href="mailto:russell@keith-magee.com">get in touch</a>.</p>
-2017 Google Summer of Code - Port Cricket to use Toga, instead of Tkinter2017-08-25T00:00:00ZDayanne Fernandesurn:uuid:0ff8a1e8-e78b-37d7-a7aa-c4aae3da494a<p>After almost 4 months of work on <a class="reference external" href="https://developers.google.com/open-source/gsoc/">Google Summer of Code</a> 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> , <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> and <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> were detailed on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a>.</p>
-<div class="section" id="eating-your-own-dog-food">
-<h2>"Eating your own dog food"</h2>
-<p>The best way to show that a product is reliable to the customers is use it. So, the way to show that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> is an effective tool to build a GUI is to build a complete application using it.</p>
-<p><a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> is a graphical tool that helps you run your test suites. Its current version is implemented using <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> as the main GUI framework. So, why not test <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> inside of another product from <a class="reference external" href="https://beeware.org">BeeWare</a>? That's what I have acomplished during my GSoC work.</p>
-</div>
-<div class="section" id="results">
-<h2>Results</h2>
-<p>The proposal focus not only on the port of <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, but on mapping the necessary widgets for a real application using <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> framework. To help me to map this I studied more about <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a>, <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, <a class="reference external" href="/project/projects/libraries/colosseum/">Colosseum</a>, <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>, <a class="reference external" href="https://developer.apple.com/documentation/objectivec">Objective-C</a>, <a class="reference external" href="http://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/Cocoa.html">Cocoa</a> and <a class="reference external" href="https://www.w3.org/Style/CSS/">CSS</a>.</p>
-<p>The work I did during GSoC were sent throught the <a class="reference external" href="https://github.com/beeware/cricket/pull/65">PR 65</a>, reported on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a> and the final demonstration of the work can be seen in this <a class="reference external" href="https://youtu.be/5kz_CmQYFYE">link</a>. There were widgets used on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that weren't ready yet on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, so some improvements were necessary on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> so that I could use them on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>. In summary here are some PRs and issues that I contributed to get my work done in <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<p>Open PR that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/201">PR 201</a> : [Core][Cocoa] Refactoring of the Tree widget</li>
-</ul>
-<p>Merged PRs that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/112">PR 112</a> : [Core][Cocoa] Enable/disable state for buttons, solved <a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/170">PR 170</a> : [Cocoa] Content and retry status for stack trace dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/172">PR 172</a> : [Cocoa] Window resize</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/173">PR 173</a> : [Core][Cocoa] Button color</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/174">PR 174</a> : [Doc] Examples folder and button features example</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/178">PR 178</a> : [Doc] Fix tutorial 2 setup</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/180">PR 180</a> : [Doc] Update <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets roadmap</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/182">PR 182</a> : [Cocoa] Update the label of the Stack trace button for critical dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/184">PR 184</a> : [Core][Cocoa] Hide/show boxes widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/188">PR 188</a> : [Cocoa] Fix error on MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/204">PR 204</a> : [Core][Cocoa] Clear method to MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/206">PR 206</a> : [Core][Cocoa] Readonly and placeholder for MultilineTextInput widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/208">PR 208</a> : [Cocoa] Fix apply style to a SplitContainer widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/pull/60">PR 60</a> : Fix test coverage, solved <a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/rubicon-objc/pull/34">PR 34</a> : [Doc] Add reference to NSObject</li>
-</ul>
-<p>Open issues that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/175">Issue 175</a> : [Core] Add more properties for Label and Font widgets</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/176">Issue 176</a> : [Core] Add "rehint()" on the background of the widget after changing font size</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/186">Issue 186</a> : [Core] Set initial position of the divisor of a SplitContainer</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/197">Issue 197</a> : [Core] Get the id of the selected Tab View on the OptionContainer</li>
-</ul>
-<p>Closed issues that I reported to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/167">Issue 167</a> : [Cocoa] Addition of a SplitContainer on a Box doesn't show the SplitContainer, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/168">Issue 168</a> : [Cocoa] Addition of 2 boxes on an OptionContainer emits Rubicon's error, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/169">Issue 169</a> : [Cocoa] Addition of 2 empty boxes on an OptionContainer emits error from <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> Cocoa platform, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/181">Issue 181</a> : [Core][Cocoa] "Hide" option for widgets, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a> : [Cocoa] Errors on MultilineTextInput, was fixed by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/189">Issue 189</a> : [Cocoa] ProgressBar doesn't appears in a Box, was fixed by <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/194">Issue 194</a> : [Cocoa] The frame of the MultilineTextInput doesn't appear, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/195">Issue 195</a> : [Cocoa] ProgressBar doesn't appear inside of a Box oriented by row, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/196">Issue 196</a> : [Cocoa] Set max value and value on a ProgressBar doesn't make any effect on the layout, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a> : [Core][Cocoa] Clear text on MultilineTextInput widget, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a> : [Cocoa] Set SplitContainer height doesn't update its size, was solved by me</li>
-</ul>
-<p>Closed issues that I didn't reported but I solved on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a> : API to disable buttons?</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/205">Issue 205</a> : adding MultiviewTextInput results in TypeError</li>
-</ul>
-<p>Closed issue that I reported to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a> : Run selected doesn't count/ runs every test selected in a test module, was fixed by me</li>
-</ul>
-<p>Open issue that I reported to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> <a class="reference external" href="https://github.com/ojii">Jonas Obrist</a> repository:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/ojii/rubicon-objc/issues/1">Issue 1</a> : Seg Fault when iterate through a NSIndexSet using block notation</li>
-</ul>
-</div>
-<div class="section" id="future-plans">
-<h2>Future Plans</h2>
-<p>There are some features on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that I want to help develop in a near future, for example:</p>
-<ul class="simple">
-<li>A button to refresh all the tests tree</li>
-<li>Cricket settings</li>
-</ul>
-<p>Also, there are some issues remained after this migration to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>. These issues will be fixed on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets in a near future too, for example:</p>
-<ul class="simple">
-<li>A gap between the output and error boxes when there is no output message</li>
-<li>Run a test if the user click on it</li>
-</ul>
-<p>I truly believe that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.</p>
-</div>
-<div class="section" id="final-considerations">
-<h2>Final Considerations</h2>
-<p>I would like to truly thank my mentors <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a> and <a class="reference external" href="https://github.com/eliasdorneles">Elias Dorneles</a> for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a>. Also, I want to thank <a class="reference external" href="https://github.com/phildini">Philip James</a> that made some reviews in my PRs and <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a> that fixed one issue that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>.</p>
-</div>
\ No newline at end of file
diff --git a/it_IT/news/buzz/index.html b/it_IT/news/buzz/index.html
index 554772acdf..266ce9f21d 100644
--- a/it_IT/news/buzz/index.html
+++ b/it_IT/news/buzz/index.html
@@ -188,6 +188,43 @@
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
-
-
What we've done
-
-
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
-
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
-
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
-
-
-
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:
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
+
+
What we've done
+
+
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
+
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
+
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
+
+
+
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:
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.
2023 is halfway done, and BeeWare continues to make steady 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
-
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
-
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
-
-
-
Q3 priorities
-
Our Q3 goals are:
-
-
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
-
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
-
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
-
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
-
-
-
-
Longer term goals
-
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
-
-
-
Summary
-
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
2023 is halfway done, and BeeWare continues to make steady 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
+
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
+
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
+
+
+
Q3 priorities
+
Our Q3 goals are:
+
+
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
+
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
+
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
+
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
+
+
+
+
Longer term goals
+
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
+
+
+
Summary
+
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
-
-
What we've done
-
During November:
-
-
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
-
-
-
Want to get involved?
-
Want to get involved? Here's 8 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:
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.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
+
+
What we've done
+
During November:
+
+
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
+
+
+
Want to get involved?
+
Want to get involved? Here's 8 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:
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.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
-
-
What we've done
-
During April:
-
-
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
-
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
-
-
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
-
-
-
What's next?
-
In May, we'll be focussing on:
-
-
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
-
Updating the support packages on Android to support Python 3.10.
-
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
-
-
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
+
+
What we've done
+
During April:
+
+
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
+
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
+
+
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
+
+
+
What's next?
+
In May, we'll be focussing on:
+
+
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
+
Updating the support packages on Android to support Python 3.10.
+
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
+
+
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
-
-Postato da
-
-
- Dayanne Fernandes
-
-
-il
- 25 August 2017
-
-
-
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
-
-
"Eating your own dog food"
-
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
-
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
-
-
-
-
Future Plans
-
There are some features on Cricket that I want to help develop in a near future, for example:
-
-
A button to refresh all the tests tree
-
Cricket settings
-
-
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
-
-
A gap between the output and error boxes when there is no output message
-
Run a test if the user click on it
-
-
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
-
-
-
Final Considerations
-
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
+
+Postato da
+
+
+ Dayanne Fernandes
+
+
+il
+ 25 August 2017
+
+
+
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
+
+
"Eating your own dog food"
+
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
+
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
+
+
+
+
Future Plans
+
There are some features on Cricket that I want to help develop in a near future, for example:
+
+
A button to refresh all the tests tree
+
Cricket settings
+
+
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
+
+
A gap between the output and error boxes when there is no output message
+
Run a test if the user click on it
+
+
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
+
+
+
Final Considerations
+
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
diff --git a/ko/news/buzz/atom.xml b/ko/news/buzz/atom.xml
index 19e120139e..6a06ca5f3b 100644
--- a/ko/news/buzz/atom.xml
+++ b/ko/news/buzz/atom.xml
@@ -1,5 +1,20 @@
-The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-01T00:00:00ZBeeWare's official blogSeptember 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
+The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-02T00:00:00ZBeeWare's official blog2024Q4 Roadmap2024-10-02T00:00:00ZRussell Keith-Mageeurn:uuid:10dd2b41-f023-3662-89b5-5c2a39279898<p>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.</p>
+<div class="section" id="q3-progress">
+<h2>Q3 progress</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+<div class="section" id="q4-priorities">
+<h2>Q4 priorities</h2>
+<p>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 <tt class="docutils literal">pip</tt> and <tt class="docutils literal">cibuildwheel</tt>, 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.</p>
+</div>
+<div class="section" id="longer-term-goals">
+<h2>Longer term goals</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+September 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
<div class="section" id="what-we-ve-done">
<h2>What we've done</h2>
<ul class="simple">
@@ -1688,95 +1703,4 @@ Also shout out to the BeeWare community for answering my queries and reviewing m
<p>This is obviously a big job. <a class="reference external" href="https://www.w3.org/TR/CSS/#css-levels">CSS is a big specification</a>, so there's a lot of work to be done - but that also means there's lots of places to contribute! Pick a paragraph of the CSS specification, build some test cases that demonstrate the cases described in that paragraph, and submit a patch implementing that behaviour!</p>
<p>It also highlights why your financial support is so important. While we <em>could</em> do this entirely with volunteered effort, we're going to make much faster progress if a small group of people could focus on this project full time. Financial support would allow up to significantly ramp up the development speed of Colosseum, and the rest of the BeeWare suite.</p>
<p>If you would like to see Colosseum and the rest of BeeWare develop to the point where it can be used for commercial applications, please consider supporting BeeWare financially. And if you have any leads for larger potential sources of funding, please <a class="reference external" href="mailto:russell@keith-magee.com">get in touch</a>.</p>
-2017 Google Summer of Code - Port Cricket to use Toga, instead of Tkinter2017-08-25T00:00:00ZDayanne Fernandesurn:uuid:0ff8a1e8-e78b-37d7-a7aa-c4aae3da494a<p>After almost 4 months of work on <a class="reference external" href="https://developers.google.com/open-source/gsoc/">Google Summer of Code</a> 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> , <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> and <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> were detailed on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a>.</p>
-<div class="section" id="eating-your-own-dog-food">
-<h2>"Eating your own dog food"</h2>
-<p>The best way to show that a product is reliable to the customers is use it. So, the way to show that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> is an effective tool to build a GUI is to build a complete application using it.</p>
-<p><a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> is a graphical tool that helps you run your test suites. Its current version is implemented using <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> as the main GUI framework. So, why not test <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> inside of another product from <a class="reference external" href="https://beeware.org">BeeWare</a>? That's what I have acomplished during my GSoC work.</p>
-</div>
-<div class="section" id="results">
-<h2>Results</h2>
-<p>The proposal focus not only on the port of <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, but on mapping the necessary widgets for a real application using <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> framework. To help me to map this I studied more about <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a>, <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, <a class="reference external" href="/project/projects/libraries/colosseum/">Colosseum</a>, <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>, <a class="reference external" href="https://developer.apple.com/documentation/objectivec">Objective-C</a>, <a class="reference external" href="http://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/Cocoa.html">Cocoa</a> and <a class="reference external" href="https://www.w3.org/Style/CSS/">CSS</a>.</p>
-<p>The work I did during GSoC were sent throught the <a class="reference external" href="https://github.com/beeware/cricket/pull/65">PR 65</a>, reported on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a> and the final demonstration of the work can be seen in this <a class="reference external" href="https://youtu.be/5kz_CmQYFYE">link</a>. There were widgets used on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that weren't ready yet on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, so some improvements were necessary on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> so that I could use them on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>. In summary here are some PRs and issues that I contributed to get my work done in <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<p>Open PR that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/201">PR 201</a> : [Core][Cocoa] Refactoring of the Tree widget</li>
-</ul>
-<p>Merged PRs that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/112">PR 112</a> : [Core][Cocoa] Enable/disable state for buttons, solved <a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/170">PR 170</a> : [Cocoa] Content and retry status for stack trace dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/172">PR 172</a> : [Cocoa] Window resize</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/173">PR 173</a> : [Core][Cocoa] Button color</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/174">PR 174</a> : [Doc] Examples folder and button features example</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/178">PR 178</a> : [Doc] Fix tutorial 2 setup</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/180">PR 180</a> : [Doc] Update <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets roadmap</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/182">PR 182</a> : [Cocoa] Update the label of the Stack trace button for critical dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/184">PR 184</a> : [Core][Cocoa] Hide/show boxes widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/188">PR 188</a> : [Cocoa] Fix error on MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/204">PR 204</a> : [Core][Cocoa] Clear method to MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/206">PR 206</a> : [Core][Cocoa] Readonly and placeholder for MultilineTextInput widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/208">PR 208</a> : [Cocoa] Fix apply style to a SplitContainer widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/pull/60">PR 60</a> : Fix test coverage, solved <a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/rubicon-objc/pull/34">PR 34</a> : [Doc] Add reference to NSObject</li>
-</ul>
-<p>Open issues that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/175">Issue 175</a> : [Core] Add more properties for Label and Font widgets</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/176">Issue 176</a> : [Core] Add "rehint()" on the background of the widget after changing font size</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/186">Issue 186</a> : [Core] Set initial position of the divisor of a SplitContainer</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/197">Issue 197</a> : [Core] Get the id of the selected Tab View on the OptionContainer</li>
-</ul>
-<p>Closed issues that I reported to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/167">Issue 167</a> : [Cocoa] Addition of a SplitContainer on a Box doesn't show the SplitContainer, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/168">Issue 168</a> : [Cocoa] Addition of 2 boxes on an OptionContainer emits Rubicon's error, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/169">Issue 169</a> : [Cocoa] Addition of 2 empty boxes on an OptionContainer emits error from <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> Cocoa platform, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/181">Issue 181</a> : [Core][Cocoa] "Hide" option for widgets, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a> : [Cocoa] Errors on MultilineTextInput, was fixed by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/189">Issue 189</a> : [Cocoa] ProgressBar doesn't appears in a Box, was fixed by <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/194">Issue 194</a> : [Cocoa] The frame of the MultilineTextInput doesn't appear, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/195">Issue 195</a> : [Cocoa] ProgressBar doesn't appear inside of a Box oriented by row, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/196">Issue 196</a> : [Cocoa] Set max value and value on a ProgressBar doesn't make any effect on the layout, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a> : [Core][Cocoa] Clear text on MultilineTextInput widget, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a> : [Cocoa] Set SplitContainer height doesn't update its size, was solved by me</li>
-</ul>
-<p>Closed issues that I didn't reported but I solved on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a> : API to disable buttons?</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/205">Issue 205</a> : adding MultiviewTextInput results in TypeError</li>
-</ul>
-<p>Closed issue that I reported to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a> : Run selected doesn't count/ runs every test selected in a test module, was fixed by me</li>
-</ul>
-<p>Open issue that I reported to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> <a class="reference external" href="https://github.com/ojii">Jonas Obrist</a> repository:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/ojii/rubicon-objc/issues/1">Issue 1</a> : Seg Fault when iterate through a NSIndexSet using block notation</li>
-</ul>
-</div>
-<div class="section" id="future-plans">
-<h2>Future Plans</h2>
-<p>There are some features on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that I want to help develop in a near future, for example:</p>
-<ul class="simple">
-<li>A button to refresh all the tests tree</li>
-<li>Cricket settings</li>
-</ul>
-<p>Also, there are some issues remained after this migration to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>. These issues will be fixed on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets in a near future too, for example:</p>
-<ul class="simple">
-<li>A gap between the output and error boxes when there is no output message</li>
-<li>Run a test if the user click on it</li>
-</ul>
-<p>I truly believe that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.</p>
-</div>
-<div class="section" id="final-considerations">
-<h2>Final Considerations</h2>
-<p>I would like to truly thank my mentors <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a> and <a class="reference external" href="https://github.com/eliasdorneles">Elias Dorneles</a> for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a>. Also, I want to thank <a class="reference external" href="https://github.com/phildini">Philip James</a> that made some reviews in my PRs and <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a> that fixed one issue that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>.</p>
-</div>
\ No newline at end of file
diff --git a/ko_KR/index.html b/ko_KR/index.html
index f2bccc69f5..bb55f12e90 100644
--- a/ko_KR/index.html
+++ b/ko_KR/index.html
@@ -302,7 +302,7 @@
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.
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
-
-
What we've done
-
-
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
-
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
-
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
-
-
-
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:
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
+
+
What we've done
+
+
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
+
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
+
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
+
+
+
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:
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.
2023 is halfway done, and BeeWare continues to make steady 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
-
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
-
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
-
-
-
Q3 priorities
-
Our Q3 goals are:
-
-
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
-
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
-
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
-
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
-
-
-
-
Longer term goals
-
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
-
-
-
Summary
-
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
2023 is halfway done, and BeeWare continues to make steady 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
+
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
+
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
+
+
+
Q3 priorities
+
Our Q3 goals are:
+
+
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
+
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
+
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
+
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
+
+
+
+
Longer term goals
+
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
+
+
+
Summary
+
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
-
-
What we've done
-
During November:
-
-
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
-
-
-
Want to get involved?
-
Want to get involved? Here's 8 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:
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.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
+
+
What we've done
+
During November:
+
+
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
+
+
+
Want to get involved?
+
Want to get involved? Here's 8 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:
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.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
-
-
What we've done
-
During April:
-
-
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
-
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
-
-
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
-
-
-
What's next?
-
In May, we'll be focussing on:
-
-
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
-
Updating the support packages on Android to support Python 3.10.
-
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
-
-
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
+
+
What we've done
+
During April:
+
+
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
+
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
+
+
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
+
+
+
What's next?
+
In May, we'll be focussing on:
+
+
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
+
Updating the support packages on Android to support Python 3.10.
+
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
+
+
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
-
-Posted by
-
-
- Dayanne Fernandes
-
-
-on
- 25 August 2017
-
-
-
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
-
-
"Eating your own dog food"
-
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
-
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
-
-
-
-
Future Plans
-
There are some features on Cricket that I want to help develop in a near future, for example:
-
-
A button to refresh all the tests tree
-
Cricket settings
-
-
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
-
-
A gap between the output and error boxes when there is no output message
-
Run a test if the user click on it
-
-
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
-
-
-
Final Considerations
-
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
+
+Posted by
+
+
+ Dayanne Fernandes
+
+
+on
+ 25 August 2017
+
+
+
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
+
+
"Eating your own dog food"
+
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
+
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
+
+
+
+
Future Plans
+
There are some features on Cricket that I want to help develop in a near future, for example:
+
+
A button to refresh all the tests tree
+
Cricket settings
+
+
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
+
+
A gap between the output and error boxes when there is no output message
+
Run a test if the user click on it
+
+
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
+
+
+
Final Considerations
+
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
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.
+
+
+
+
+
+
+
+
+
+
diff --git a/news/buzz/atom.xml b/news/buzz/atom.xml
index bbb223a2d7..aca49383e8 100644
--- a/news/buzz/atom.xml
+++ b/news/buzz/atom.xml
@@ -1,5 +1,20 @@
-The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-01T00:00:00ZBeeWare's official blogSeptember 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
+The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-02T00:00:00ZBeeWare's official blog2024Q4 Roadmap2024-10-02T00:00:00ZRussell Keith-Mageeurn:uuid:10dd2b41-f023-3662-89b5-5c2a39279898<p>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.</p>
+<div class="section" id="q3-progress">
+<h2>Q3 progress</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+<div class="section" id="q4-priorities">
+<h2>Q4 priorities</h2>
+<p>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 <tt class="docutils literal">pip</tt> and <tt class="docutils literal">cibuildwheel</tt>, 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.</p>
+</div>
+<div class="section" id="longer-term-goals">
+<h2>Longer term goals</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+September 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
<div class="section" id="what-we-ve-done">
<h2>What we've done</h2>
<ul class="simple">
@@ -1688,95 +1703,4 @@ Also shout out to the BeeWare community for answering my queries and reviewing m
<p>This is obviously a big job. <a class="reference external" href="https://www.w3.org/TR/CSS/#css-levels">CSS is a big specification</a>, so there's a lot of work to be done - but that also means there's lots of places to contribute! Pick a paragraph of the CSS specification, build some test cases that demonstrate the cases described in that paragraph, and submit a patch implementing that behaviour!</p>
<p>It also highlights why your financial support is so important. While we <em>could</em> do this entirely with volunteered effort, we're going to make much faster progress if a small group of people could focus on this project full time. Financial support would allow up to significantly ramp up the development speed of Colosseum, and the rest of the BeeWare suite.</p>
<p>If you would like to see Colosseum and the rest of BeeWare develop to the point where it can be used for commercial applications, please consider supporting BeeWare financially. And if you have any leads for larger potential sources of funding, please <a class="reference external" href="mailto:russell@keith-magee.com">get in touch</a>.</p>
-2017 Google Summer of Code - Port Cricket to use Toga, instead of Tkinter2017-08-25T00:00:00ZDayanne Fernandesurn:uuid:0ff8a1e8-e78b-37d7-a7aa-c4aae3da494a<p>After almost 4 months of work on <a class="reference external" href="https://developers.google.com/open-source/gsoc/">Google Summer of Code</a> 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> , <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> and <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> were detailed on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a>.</p>
-<div class="section" id="eating-your-own-dog-food">
-<h2>"Eating your own dog food"</h2>
-<p>The best way to show that a product is reliable to the customers is use it. So, the way to show that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> is an effective tool to build a GUI is to build a complete application using it.</p>
-<p><a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> is a graphical tool that helps you run your test suites. Its current version is implemented using <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> as the main GUI framework. So, why not test <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> inside of another product from <a class="reference external" href="https://beeware.org">BeeWare</a>? That's what I have acomplished during my GSoC work.</p>
-</div>
-<div class="section" id="results">
-<h2>Results</h2>
-<p>The proposal focus not only on the port of <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, but on mapping the necessary widgets for a real application using <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> framework. To help me to map this I studied more about <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a>, <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, <a class="reference external" href="/project/projects/libraries/colosseum/">Colosseum</a>, <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>, <a class="reference external" href="https://developer.apple.com/documentation/objectivec">Objective-C</a>, <a class="reference external" href="http://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/Cocoa.html">Cocoa</a> and <a class="reference external" href="https://www.w3.org/Style/CSS/">CSS</a>.</p>
-<p>The work I did during GSoC were sent throught the <a class="reference external" href="https://github.com/beeware/cricket/pull/65">PR 65</a>, reported on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a> and the final demonstration of the work can be seen in this <a class="reference external" href="https://youtu.be/5kz_CmQYFYE">link</a>. There were widgets used on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that weren't ready yet on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, so some improvements were necessary on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> so that I could use them on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>. In summary here are some PRs and issues that I contributed to get my work done in <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<p>Open PR that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/201">PR 201</a> : [Core][Cocoa] Refactoring of the Tree widget</li>
-</ul>
-<p>Merged PRs that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/112">PR 112</a> : [Core][Cocoa] Enable/disable state for buttons, solved <a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/170">PR 170</a> : [Cocoa] Content and retry status for stack trace dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/172">PR 172</a> : [Cocoa] Window resize</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/173">PR 173</a> : [Core][Cocoa] Button color</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/174">PR 174</a> : [Doc] Examples folder and button features example</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/178">PR 178</a> : [Doc] Fix tutorial 2 setup</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/180">PR 180</a> : [Doc] Update <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets roadmap</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/182">PR 182</a> : [Cocoa] Update the label of the Stack trace button for critical dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/184">PR 184</a> : [Core][Cocoa] Hide/show boxes widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/188">PR 188</a> : [Cocoa] Fix error on MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/204">PR 204</a> : [Core][Cocoa] Clear method to MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/206">PR 206</a> : [Core][Cocoa] Readonly and placeholder for MultilineTextInput widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/208">PR 208</a> : [Cocoa] Fix apply style to a SplitContainer widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/pull/60">PR 60</a> : Fix test coverage, solved <a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/rubicon-objc/pull/34">PR 34</a> : [Doc] Add reference to NSObject</li>
-</ul>
-<p>Open issues that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/175">Issue 175</a> : [Core] Add more properties for Label and Font widgets</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/176">Issue 176</a> : [Core] Add "rehint()" on the background of the widget after changing font size</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/186">Issue 186</a> : [Core] Set initial position of the divisor of a SplitContainer</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/197">Issue 197</a> : [Core] Get the id of the selected Tab View on the OptionContainer</li>
-</ul>
-<p>Closed issues that I reported to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/167">Issue 167</a> : [Cocoa] Addition of a SplitContainer on a Box doesn't show the SplitContainer, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/168">Issue 168</a> : [Cocoa] Addition of 2 boxes on an OptionContainer emits Rubicon's error, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/169">Issue 169</a> : [Cocoa] Addition of 2 empty boxes on an OptionContainer emits error from <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> Cocoa platform, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/181">Issue 181</a> : [Core][Cocoa] "Hide" option for widgets, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a> : [Cocoa] Errors on MultilineTextInput, was fixed by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/189">Issue 189</a> : [Cocoa] ProgressBar doesn't appears in a Box, was fixed by <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/194">Issue 194</a> : [Cocoa] The frame of the MultilineTextInput doesn't appear, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/195">Issue 195</a> : [Cocoa] ProgressBar doesn't appear inside of a Box oriented by row, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/196">Issue 196</a> : [Cocoa] Set max value and value on a ProgressBar doesn't make any effect on the layout, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a> : [Core][Cocoa] Clear text on MultilineTextInput widget, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a> : [Cocoa] Set SplitContainer height doesn't update its size, was solved by me</li>
-</ul>
-<p>Closed issues that I didn't reported but I solved on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a> : API to disable buttons?</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/205">Issue 205</a> : adding MultiviewTextInput results in TypeError</li>
-</ul>
-<p>Closed issue that I reported to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a> : Run selected doesn't count/ runs every test selected in a test module, was fixed by me</li>
-</ul>
-<p>Open issue that I reported to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> <a class="reference external" href="https://github.com/ojii">Jonas Obrist</a> repository:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/ojii/rubicon-objc/issues/1">Issue 1</a> : Seg Fault when iterate through a NSIndexSet using block notation</li>
-</ul>
-</div>
-<div class="section" id="future-plans">
-<h2>Future Plans</h2>
-<p>There are some features on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that I want to help develop in a near future, for example:</p>
-<ul class="simple">
-<li>A button to refresh all the tests tree</li>
-<li>Cricket settings</li>
-</ul>
-<p>Also, there are some issues remained after this migration to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>. These issues will be fixed on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets in a near future too, for example:</p>
-<ul class="simple">
-<li>A gap between the output and error boxes when there is no output message</li>
-<li>Run a test if the user click on it</li>
-</ul>
-<p>I truly believe that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.</p>
-</div>
-<div class="section" id="final-considerations">
-<h2>Final Considerations</h2>
-<p>I would like to truly thank my mentors <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a> and <a class="reference external" href="https://github.com/eliasdorneles">Elias Dorneles</a> for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a>. Also, I want to thank <a class="reference external" href="https://github.com/phildini">Philip James</a> that made some reviews in my PRs and <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a> that fixed one issue that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>.</p>
-</div>
\ No newline at end of file
diff --git a/news/buzz/index.html b/news/buzz/index.html
index 820245ed6d..a8f85b5385 100644
--- a/news/buzz/index.html
+++ b/news/buzz/index.html
@@ -188,6 +188,43 @@
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
-
-
What we've done
-
-
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
-
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
-
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
-
-
-
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:
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
+
+
What we've done
+
+
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
+
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
+
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
+
+
+
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:
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.
2023 is halfway done, and BeeWare continues to make steady 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
-
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
-
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
-
-
-
Q3 priorities
-
Our Q3 goals are:
-
-
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
-
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
-
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
-
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
-
-
-
-
Longer term goals
-
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
-
-
-
Summary
-
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
2023 is halfway done, and BeeWare continues to make steady 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
+
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
+
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
+
+
+
Q3 priorities
+
Our Q3 goals are:
+
+
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
+
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
+
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
+
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
+
+
+
+
Longer term goals
+
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
+
+
+
Summary
+
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
-
-
What we've done
-
During November:
-
-
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
-
-
-
Want to get involved?
-
Want to get involved? Here's 8 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:
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.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
+
+
What we've done
+
During November:
+
+
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
+
+
+
Want to get involved?
+
Want to get involved? Here's 8 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:
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.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
-
-
What we've done
-
During April:
-
-
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
-
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
-
-
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
-
-
-
What's next?
-
In May, we'll be focussing on:
-
-
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
-
Updating the support packages on Android to support Python 3.10.
-
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
-
-
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
+
+
What we've done
+
During April:
+
+
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
+
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
+
+
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
+
+
+
What's next?
+
In May, we'll be focussing on:
+
+
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
+
Updating the support packages on Android to support Python 3.10.
+
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
+
+
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
-
-Posted by
-
-
- Dayanne Fernandes
-
-
-on
- 25 August 2017
-
-
-
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
-
-
"Eating your own dog food"
-
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
-
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
-
-
-
-
Future Plans
-
There are some features on Cricket that I want to help develop in a near future, for example:
-
-
A button to refresh all the tests tree
-
Cricket settings
-
-
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
-
-
A gap between the output and error boxes when there is no output message
-
Run a test if the user click on it
-
-
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
-
-
-
Final Considerations
-
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
+
+Posted by
+
+
+ Dayanne Fernandes
+
+
+on
+ 25 August 2017
+
+
+
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
+
+
"Eating your own dog food"
+
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
+
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
+
+
+
+
Future Plans
+
There are some features on Cricket that I want to help develop in a near future, for example:
+
+
A button to refresh all the tests tree
+
Cricket settings
+
+
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
+
+
A gap between the output and error boxes when there is no output message
+
Run a test if the user click on it
+
+
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
+
+
+
Final Considerations
+
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
-Posted by
-
-
- Russell Keith-Magee
-
-
-on
- 2024-02-29
-
-
... more articles
diff --git a/pl/news/buzz/atom.xml b/pl/news/buzz/atom.xml
index afb465c27f..440a866cde 100644
--- a/pl/news/buzz/atom.xml
+++ b/pl/news/buzz/atom.xml
@@ -1,5 +1,20 @@
-Nowinyurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-01T00:00:00ZBeeWare's official blogSeptember 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
+Nowinyurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-02T00:00:00ZBeeWare's official blog2024Q4 Roadmap2024-10-02T00:00:00ZRussell Keith-Mageeurn:uuid:10dd2b41-f023-3662-89b5-5c2a39279898<p>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.</p>
+<div class="section" id="q3-progress">
+<h2>Q3 progress</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+<div class="section" id="q4-priorities">
+<h2>Q4 priorities</h2>
+<p>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 <tt class="docutils literal">pip</tt> and <tt class="docutils literal">cibuildwheel</tt>, 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.</p>
+</div>
+<div class="section" id="longer-term-goals">
+<h2>Longer term goals</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+September 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
<div class="section" id="what-we-ve-done">
<h2>What we've done</h2>
<ul class="simple">
@@ -1688,95 +1703,4 @@ Also shout out to the BeeWare community for answering my queries and reviewing m
<p>This is obviously a big job. <a class="reference external" href="https://www.w3.org/TR/CSS/#css-levels">CSS is a big specification</a>, so there's a lot of work to be done - but that also means there's lots of places to contribute! Pick a paragraph of the CSS specification, build some test cases that demonstrate the cases described in that paragraph, and submit a patch implementing that behaviour!</p>
<p>It also highlights why your financial support is so important. While we <em>could</em> do this entirely with volunteered effort, we're going to make much faster progress if a small group of people could focus on this project full time. Financial support would allow up to significantly ramp up the development speed of Colosseum, and the rest of the BeeWare suite.</p>
<p>If you would like to see Colosseum and the rest of BeeWare develop to the point where it can be used for commercial applications, please consider supporting BeeWare financially. And if you have any leads for larger potential sources of funding, please <a class="reference external" href="mailto:russell@keith-magee.com">get in touch</a>.</p>
-2017 Google Summer of Code - Port Cricket to use Toga, instead of Tkinter2017-08-25T00:00:00ZDayanne Fernandesurn:uuid:0ff8a1e8-e78b-37d7-a7aa-c4aae3da494a<p>After almost 4 months of work on <a class="reference external" href="https://developers.google.com/open-source/gsoc/">Google Summer of Code</a> 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> , <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> and <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> were detailed on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a>.</p>
-<div class="section" id="eating-your-own-dog-food">
-<h2>"Eating your own dog food"</h2>
-<p>The best way to show that a product is reliable to the customers is use it. So, the way to show that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> is an effective tool to build a GUI is to build a complete application using it.</p>
-<p><a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> is a graphical tool that helps you run your test suites. Its current version is implemented using <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> as the main GUI framework. So, why not test <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> inside of another product from <a class="reference external" href="https://beeware.org">BeeWare</a>? That's what I have acomplished during my GSoC work.</p>
-</div>
-<div class="section" id="results">
-<h2>Results</h2>
-<p>The proposal focus not only on the port of <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, but on mapping the necessary widgets for a real application using <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> framework. To help me to map this I studied more about <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a>, <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, <a class="reference external" href="/project/projects/libraries/colosseum/">Colosseum</a>, <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>, <a class="reference external" href="https://developer.apple.com/documentation/objectivec">Objective-C</a>, <a class="reference external" href="http://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/Cocoa.html">Cocoa</a> and <a class="reference external" href="https://www.w3.org/Style/CSS/">CSS</a>.</p>
-<p>The work I did during GSoC were sent throught the <a class="reference external" href="https://github.com/beeware/cricket/pull/65">PR 65</a>, reported on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a> and the final demonstration of the work can be seen in this <a class="reference external" href="https://youtu.be/5kz_CmQYFYE">link</a>. There were widgets used on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that weren't ready yet on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, so some improvements were necessary on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> so that I could use them on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>. In summary here are some PRs and issues that I contributed to get my work done in <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<p>Open PR that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/201">PR 201</a> : [Core][Cocoa] Refactoring of the Tree widget</li>
-</ul>
-<p>Merged PRs that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/112">PR 112</a> : [Core][Cocoa] Enable/disable state for buttons, solved <a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/170">PR 170</a> : [Cocoa] Content and retry status for stack trace dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/172">PR 172</a> : [Cocoa] Window resize</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/173">PR 173</a> : [Core][Cocoa] Button color</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/174">PR 174</a> : [Doc] Examples folder and button features example</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/178">PR 178</a> : [Doc] Fix tutorial 2 setup</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/180">PR 180</a> : [Doc] Update <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets roadmap</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/182">PR 182</a> : [Cocoa] Update the label of the Stack trace button for critical dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/184">PR 184</a> : [Core][Cocoa] Hide/show boxes widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/188">PR 188</a> : [Cocoa] Fix error on MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/204">PR 204</a> : [Core][Cocoa] Clear method to MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/206">PR 206</a> : [Core][Cocoa] Readonly and placeholder for MultilineTextInput widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/208">PR 208</a> : [Cocoa] Fix apply style to a SplitContainer widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/pull/60">PR 60</a> : Fix test coverage, solved <a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/rubicon-objc/pull/34">PR 34</a> : [Doc] Add reference to NSObject</li>
-</ul>
-<p>Open issues that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/175">Issue 175</a> : [Core] Add more properties for Label and Font widgets</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/176">Issue 176</a> : [Core] Add "rehint()" on the background of the widget after changing font size</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/186">Issue 186</a> : [Core] Set initial position of the divisor of a SplitContainer</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/197">Issue 197</a> : [Core] Get the id of the selected Tab View on the OptionContainer</li>
-</ul>
-<p>Closed issues that I reported to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/167">Issue 167</a> : [Cocoa] Addition of a SplitContainer on a Box doesn't show the SplitContainer, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/168">Issue 168</a> : [Cocoa] Addition of 2 boxes on an OptionContainer emits Rubicon's error, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/169">Issue 169</a> : [Cocoa] Addition of 2 empty boxes on an OptionContainer emits error from <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> Cocoa platform, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/181">Issue 181</a> : [Core][Cocoa] "Hide" option for widgets, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a> : [Cocoa] Errors on MultilineTextInput, was fixed by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/189">Issue 189</a> : [Cocoa] ProgressBar doesn't appears in a Box, was fixed by <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/194">Issue 194</a> : [Cocoa] The frame of the MultilineTextInput doesn't appear, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/195">Issue 195</a> : [Cocoa] ProgressBar doesn't appear inside of a Box oriented by row, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/196">Issue 196</a> : [Cocoa] Set max value and value on a ProgressBar doesn't make any effect on the layout, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a> : [Core][Cocoa] Clear text on MultilineTextInput widget, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a> : [Cocoa] Set SplitContainer height doesn't update its size, was solved by me</li>
-</ul>
-<p>Closed issues that I didn't reported but I solved on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a> : API to disable buttons?</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/205">Issue 205</a> : adding MultiviewTextInput results in TypeError</li>
-</ul>
-<p>Closed issue that I reported to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a> : Run selected doesn't count/ runs every test selected in a test module, was fixed by me</li>
-</ul>
-<p>Open issue that I reported to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> <a class="reference external" href="https://github.com/ojii">Jonas Obrist</a> repository:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/ojii/rubicon-objc/issues/1">Issue 1</a> : Seg Fault when iterate through a NSIndexSet using block notation</li>
-</ul>
-</div>
-<div class="section" id="future-plans">
-<h2>Future Plans</h2>
-<p>There are some features on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that I want to help develop in a near future, for example:</p>
-<ul class="simple">
-<li>A button to refresh all the tests tree</li>
-<li>Cricket settings</li>
-</ul>
-<p>Also, there are some issues remained after this migration to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>. These issues will be fixed on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets in a near future too, for example:</p>
-<ul class="simple">
-<li>A gap between the output and error boxes when there is no output message</li>
-<li>Run a test if the user click on it</li>
-</ul>
-<p>I truly believe that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.</p>
-</div>
-<div class="section" id="final-considerations">
-<h2>Final Considerations</h2>
-<p>I would like to truly thank my mentors <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a> and <a class="reference external" href="https://github.com/eliasdorneles">Elias Dorneles</a> for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a>. Also, I want to thank <a class="reference external" href="https://github.com/phildini">Philip James</a> that made some reviews in my PRs and <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a> that fixed one issue that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>.</p>
-</div>
\ No newline at end of file
diff --git a/pl_PL/index.html b/pl_PL/index.html
index eb2d4272ed..fcac0d2a14 100644
--- a/pl_PL/index.html
+++ b/pl_PL/index.html
@@ -429,7 +429,7 @@
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.
+
+Opublikowane przez
+
+
+ Russell Keith-Magee
+
+
+dnia
+ 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.
-
-Opublikowane przez
-
-
- Russell Keith-Magee
-
-
-dnia
- 29 February 2024
-
-
-
February may be the shortest month, but that doesn't mean we've got any less progress to report!
-
-
What we've done
-
-
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
-
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
-
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
-
-
-
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:
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.
+
+Opublikowane przez
+
+
+ Russell Keith-Magee
+
+
+dnia
+ 29 February 2024
+
+
+
February may be the shortest month, but that doesn't mean we've got any less progress to report!
+
+
What we've done
+
+
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
+
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
+
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
+
+
+
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:
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.
2023 is halfway done, and BeeWare continues to make steady 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
-
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
-
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
-
-
-
Q3 priorities
-
Our Q3 goals are:
-
-
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
-
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
-
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
-
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
-
-
-
-
Longer term goals
-
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
-
-
-
Summary
-
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
2023 is halfway done, and BeeWare continues to make steady 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
+
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
+
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
+
+
+
Q3 priorities
+
Our Q3 goals are:
+
+
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
+
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
+
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
+
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
+
+
+
+
Longer term goals
+
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
+
+
+
Summary
+
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
-
-Opublikowane przez
-
-
- Russell Keith-Magee
-
-
-dnia
- 1 December 2022
-
-
-
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
-
-
What we've done
-
During November:
-
-
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
-
-
-
Want to get involved?
-
Want to get involved? Here's 8 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:
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.
+
+Opublikowane przez
+
+
+ Russell Keith-Magee
+
+
+dnia
+ 1 December 2022
+
+
+
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
+
+
What we've done
+
During November:
+
+
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
+
+
+
Want to get involved?
+
Want to get involved? Here's 8 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:
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.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
-
-
What we've done
-
During April:
-
-
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
-
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
-
-
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
-
-
-
What's next?
-
In May, we'll be focussing on:
-
-
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
-
Updating the support packages on Android to support Python 3.10.
-
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
-
-
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
+
+
What we've done
+
During April:
+
+
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
+
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
+
+
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
+
+
+
What's next?
+
In May, we'll be focussing on:
+
+
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
+
Updating the support packages on Android to support Python 3.10.
+
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
+
+
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
-
-Opublikowane przez
-
-
- Dayanne Fernandes
-
-
-dnia
- 25 August 2017
-
-
-
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
-
-
"Eating your own dog food"
-
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
-
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
-
-
-
-
Future Plans
-
There are some features on Cricket that I want to help develop in a near future, for example:
-
-
A button to refresh all the tests tree
-
Cricket settings
-
-
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
-
-
A gap between the output and error boxes when there is no output message
-
Run a test if the user click on it
-
-
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
-
-
-
Final Considerations
-
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
+
+Opublikowane przez
+
+
+ Dayanne Fernandes
+
+
+dnia
+ 25 August 2017
+
+
+
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
+
+
"Eating your own dog food"
+
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
+
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
+
+
+
+
Future Plans
+
There are some features on Cricket that I want to help develop in a near future, for example:
+
+
A button to refresh all the tests tree
+
Cricket settings
+
+
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
+
+
A gap between the output and error boxes when there is no output message
+
Run a test if the user click on it
+
+
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
+
+
+
Final Considerations
+
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
diff --git a/pr_BR/news/buzz/atom.xml b/pr_BR/news/buzz/atom.xml
index e66ebb85a8..c4c17444c7 100644
--- a/pr_BR/news/buzz/atom.xml
+++ b/pr_BR/news/buzz/atom.xml
@@ -1,5 +1,20 @@
-The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-01T00:00:00ZBeeWare's official blogSeptember 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
+The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-02T00:00:00ZBeeWare's official blog2024Q4 Roadmap2024-10-02T00:00:00ZRussell Keith-Mageeurn:uuid:10dd2b41-f023-3662-89b5-5c2a39279898<p>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.</p>
+<div class="section" id="q3-progress">
+<h2>Q3 progress</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+<div class="section" id="q4-priorities">
+<h2>Q4 priorities</h2>
+<p>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 <tt class="docutils literal">pip</tt> and <tt class="docutils literal">cibuildwheel</tt>, 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.</p>
+</div>
+<div class="section" id="longer-term-goals">
+<h2>Longer term goals</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+September 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
<div class="section" id="what-we-ve-done">
<h2>What we've done</h2>
<ul class="simple">
@@ -1688,95 +1703,4 @@ Also shout out to the BeeWare community for answering my queries and reviewing m
<p>This is obviously a big job. <a class="reference external" href="https://www.w3.org/TR/CSS/#css-levels">CSS is a big specification</a>, so there's a lot of work to be done - but that also means there's lots of places to contribute! Pick a paragraph of the CSS specification, build some test cases that demonstrate the cases described in that paragraph, and submit a patch implementing that behaviour!</p>
<p>It also highlights why your financial support is so important. While we <em>could</em> do this entirely with volunteered effort, we're going to make much faster progress if a small group of people could focus on this project full time. Financial support would allow up to significantly ramp up the development speed of Colosseum, and the rest of the BeeWare suite.</p>
<p>If you would like to see Colosseum and the rest of BeeWare develop to the point where it can be used for commercial applications, please consider supporting BeeWare financially. And if you have any leads for larger potential sources of funding, please <a class="reference external" href="mailto:russell@keith-magee.com">get in touch</a>.</p>
-2017 Google Summer of Code - Port Cricket to use Toga, instead of Tkinter2017-08-25T00:00:00ZDayanne Fernandesurn:uuid:0ff8a1e8-e78b-37d7-a7aa-c4aae3da494a<p>After almost 4 months of work on <a class="reference external" href="https://developers.google.com/open-source/gsoc/">Google Summer of Code</a> 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> , <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> and <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> were detailed on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a>.</p>
-<div class="section" id="eating-your-own-dog-food">
-<h2>"Eating your own dog food"</h2>
-<p>The best way to show that a product is reliable to the customers is use it. So, the way to show that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> is an effective tool to build a GUI is to build a complete application using it.</p>
-<p><a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> is a graphical tool that helps you run your test suites. Its current version is implemented using <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> as the main GUI framework. So, why not test <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> inside of another product from <a class="reference external" href="https://beeware.org">BeeWare</a>? That's what I have acomplished during my GSoC work.</p>
-</div>
-<div class="section" id="results">
-<h2>Results</h2>
-<p>The proposal focus not only on the port of <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, but on mapping the necessary widgets for a real application using <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> framework. To help me to map this I studied more about <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a>, <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, <a class="reference external" href="/project/projects/libraries/colosseum/">Colosseum</a>, <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>, <a class="reference external" href="https://developer.apple.com/documentation/objectivec">Objective-C</a>, <a class="reference external" href="http://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/Cocoa.html">Cocoa</a> and <a class="reference external" href="https://www.w3.org/Style/CSS/">CSS</a>.</p>
-<p>The work I did during GSoC were sent throught the <a class="reference external" href="https://github.com/beeware/cricket/pull/65">PR 65</a>, reported on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a> and the final demonstration of the work can be seen in this <a class="reference external" href="https://youtu.be/5kz_CmQYFYE">link</a>. There were widgets used on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that weren't ready yet on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, so some improvements were necessary on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> so that I could use them on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>. In summary here are some PRs and issues that I contributed to get my work done in <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<p>Open PR that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/201">PR 201</a> : [Core][Cocoa] Refactoring of the Tree widget</li>
-</ul>
-<p>Merged PRs that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/112">PR 112</a> : [Core][Cocoa] Enable/disable state for buttons, solved <a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/170">PR 170</a> : [Cocoa] Content and retry status for stack trace dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/172">PR 172</a> : [Cocoa] Window resize</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/173">PR 173</a> : [Core][Cocoa] Button color</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/174">PR 174</a> : [Doc] Examples folder and button features example</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/178">PR 178</a> : [Doc] Fix tutorial 2 setup</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/180">PR 180</a> : [Doc] Update <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets roadmap</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/182">PR 182</a> : [Cocoa] Update the label of the Stack trace button for critical dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/184">PR 184</a> : [Core][Cocoa] Hide/show boxes widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/188">PR 188</a> : [Cocoa] Fix error on MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/204">PR 204</a> : [Core][Cocoa] Clear method to MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/206">PR 206</a> : [Core][Cocoa] Readonly and placeholder for MultilineTextInput widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/208">PR 208</a> : [Cocoa] Fix apply style to a SplitContainer widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/pull/60">PR 60</a> : Fix test coverage, solved <a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/rubicon-objc/pull/34">PR 34</a> : [Doc] Add reference to NSObject</li>
-</ul>
-<p>Open issues that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/175">Issue 175</a> : [Core] Add more properties for Label and Font widgets</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/176">Issue 176</a> : [Core] Add "rehint()" on the background of the widget after changing font size</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/186">Issue 186</a> : [Core] Set initial position of the divisor of a SplitContainer</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/197">Issue 197</a> : [Core] Get the id of the selected Tab View on the OptionContainer</li>
-</ul>
-<p>Closed issues that I reported to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/167">Issue 167</a> : [Cocoa] Addition of a SplitContainer on a Box doesn't show the SplitContainer, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/168">Issue 168</a> : [Cocoa] Addition of 2 boxes on an OptionContainer emits Rubicon's error, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/169">Issue 169</a> : [Cocoa] Addition of 2 empty boxes on an OptionContainer emits error from <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> Cocoa platform, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/181">Issue 181</a> : [Core][Cocoa] "Hide" option for widgets, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a> : [Cocoa] Errors on MultilineTextInput, was fixed by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/189">Issue 189</a> : [Cocoa] ProgressBar doesn't appears in a Box, was fixed by <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/194">Issue 194</a> : [Cocoa] The frame of the MultilineTextInput doesn't appear, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/195">Issue 195</a> : [Cocoa] ProgressBar doesn't appear inside of a Box oriented by row, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/196">Issue 196</a> : [Cocoa] Set max value and value on a ProgressBar doesn't make any effect on the layout, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a> : [Core][Cocoa] Clear text on MultilineTextInput widget, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a> : [Cocoa] Set SplitContainer height doesn't update its size, was solved by me</li>
-</ul>
-<p>Closed issues that I didn't reported but I solved on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a> : API to disable buttons?</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/205">Issue 205</a> : adding MultiviewTextInput results in TypeError</li>
-</ul>
-<p>Closed issue that I reported to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a> : Run selected doesn't count/ runs every test selected in a test module, was fixed by me</li>
-</ul>
-<p>Open issue that I reported to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> <a class="reference external" href="https://github.com/ojii">Jonas Obrist</a> repository:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/ojii/rubicon-objc/issues/1">Issue 1</a> : Seg Fault when iterate through a NSIndexSet using block notation</li>
-</ul>
-</div>
-<div class="section" id="future-plans">
-<h2>Future Plans</h2>
-<p>There are some features on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that I want to help develop in a near future, for example:</p>
-<ul class="simple">
-<li>A button to refresh all the tests tree</li>
-<li>Cricket settings</li>
-</ul>
-<p>Also, there are some issues remained after this migration to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>. These issues will be fixed on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets in a near future too, for example:</p>
-<ul class="simple">
-<li>A gap between the output and error boxes when there is no output message</li>
-<li>Run a test if the user click on it</li>
-</ul>
-<p>I truly believe that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.</p>
-</div>
-<div class="section" id="final-considerations">
-<h2>Final Considerations</h2>
-<p>I would like to truly thank my mentors <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a> and <a class="reference external" href="https://github.com/eliasdorneles">Elias Dorneles</a> for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a>. Also, I want to thank <a class="reference external" href="https://github.com/phildini">Philip James</a> that made some reviews in my PRs and <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a> that fixed one issue that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>.</p>
-</div>
\ No newline at end of file
diff --git a/pt_BR/index.html b/pt_BR/index.html
index e67e15856f..5f607eb1d1 100644
--- a/pt_BR/index.html
+++ b/pt_BR/index.html
@@ -429,7 +429,7 @@
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.
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
-
-
What we've done
-
-
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
-
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
-
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
-
-
-
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:
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
+
+
What we've done
+
+
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
+
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
+
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
+
+
+
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:
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.
2023 is halfway done, and BeeWare continues to make steady 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
-
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
-
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
-
-
-
Q3 priorities
-
Our Q3 goals are:
-
-
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
-
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
-
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
-
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
-
-
-
-
Longer term goals
-
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
-
-
-
Summary
-
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
2023 is halfway done, and BeeWare continues to make steady 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
+
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
+
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
+
+
+
Q3 priorities
+
Our Q3 goals are:
+
+
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
+
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
+
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
+
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
+
+
+
+
Longer term goals
+
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
+
+
+
Summary
+
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
-
-
What we've done
-
During November:
-
-
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
-
-
-
Want to get involved?
-
Want to get involved? Here's 8 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:
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.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
+
+
What we've done
+
During November:
+
+
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
+
+
+
Want to get involved?
+
Want to get involved? Here's 8 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:
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.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
-
-
What we've done
-
During April:
-
-
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
-
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
-
-
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
-
-
-
What's next?
-
In May, we'll be focussing on:
-
-
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
-
Updating the support packages on Android to support Python 3.10.
-
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
-
-
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
+
+
What we've done
+
During April:
+
+
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
+
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
+
+
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
+
+
+
What's next?
+
In May, we'll be focussing on:
+
+
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
+
Updating the support packages on Android to support Python 3.10.
+
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
+
+
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
-
-Publicado por
-
-
- Dayanne Fernandes
-
-
-em
- 25 August 2017
-
-
-
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
-
-
"Eating your own dog food"
-
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
-
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
-
-
-
-
Future Plans
-
There are some features on Cricket that I want to help develop in a near future, for example:
-
-
A button to refresh all the tests tree
-
Cricket settings
-
-
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
-
-
A gap between the output and error boxes when there is no output message
-
Run a test if the user click on it
-
-
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
-
-
-
Final Considerations
-
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
+
+Publicado por
+
+
+ Dayanne Fernandes
+
+
+em
+ 25 August 2017
+
+
+
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
+
+
"Eating your own dog food"
+
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
+
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
+
+
+
+
Future Plans
+
There are some features on Cricket that I want to help develop in a near future, for example:
+
+
A button to refresh all the tests tree
+
Cricket settings
+
+
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
+
+
A gap between the output and error boxes when there is no output message
+
Run a test if the user click on it
+
+
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
+
+
+
Final Considerations
+
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
diff --git a/tr/news/buzz/atom.xml b/tr/news/buzz/atom.xml
index ae337afe79..c989e1b861 100644
--- a/tr/news/buzz/atom.xml
+++ b/tr/news/buzz/atom.xml
@@ -1,5 +1,20 @@
-Vızıltıurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-01T00:00:00ZBeeWare's official blogSeptember 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
+Vızıltıurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-02T00:00:00ZBeeWare's official blog2024Q4 Roadmap2024-10-02T00:00:00ZRussell Keith-Mageeurn:uuid:10dd2b41-f023-3662-89b5-5c2a39279898<p>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.</p>
+<div class="section" id="q3-progress">
+<h2>Q3 progress</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+<div class="section" id="q4-priorities">
+<h2>Q4 priorities</h2>
+<p>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 <tt class="docutils literal">pip</tt> and <tt class="docutils literal">cibuildwheel</tt>, 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.</p>
+</div>
+<div class="section" id="longer-term-goals">
+<h2>Longer term goals</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+September 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
<div class="section" id="what-we-ve-done">
<h2>What we've done</h2>
<ul class="simple">
@@ -1688,95 +1703,4 @@ Also shout out to the BeeWare community for answering my queries and reviewing m
<p>This is obviously a big job. <a class="reference external" href="https://www.w3.org/TR/CSS/#css-levels">CSS is a big specification</a>, so there's a lot of work to be done - but that also means there's lots of places to contribute! Pick a paragraph of the CSS specification, build some test cases that demonstrate the cases described in that paragraph, and submit a patch implementing that behaviour!</p>
<p>It also highlights why your financial support is so important. While we <em>could</em> do this entirely with volunteered effort, we're going to make much faster progress if a small group of people could focus on this project full time. Financial support would allow up to significantly ramp up the development speed of Colosseum, and the rest of the BeeWare suite.</p>
<p>If you would like to see Colosseum and the rest of BeeWare develop to the point where it can be used for commercial applications, please consider supporting BeeWare financially. And if you have any leads for larger potential sources of funding, please <a class="reference external" href="mailto:russell@keith-magee.com">get in touch</a>.</p>
-2017 Google Summer of Code - Port Cricket to use Toga, instead of Tkinter2017-08-25T00:00:00ZDayanne Fernandesurn:uuid:0ff8a1e8-e78b-37d7-a7aa-c4aae3da494a<p>After almost 4 months of work on <a class="reference external" href="https://developers.google.com/open-source/gsoc/">Google Summer of Code</a> 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> , <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> and <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> were detailed on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a>.</p>
-<div class="section" id="eating-your-own-dog-food">
-<h2>"Eating your own dog food"</h2>
-<p>The best way to show that a product is reliable to the customers is use it. So, the way to show that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> is an effective tool to build a GUI is to build a complete application using it.</p>
-<p><a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> is a graphical tool that helps you run your test suites. Its current version is implemented using <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> as the main GUI framework. So, why not test <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> inside of another product from <a class="reference external" href="https://beeware.org">BeeWare</a>? That's what I have acomplished during my GSoC work.</p>
-</div>
-<div class="section" id="results">
-<h2>Results</h2>
-<p>The proposal focus not only on the port of <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, but on mapping the necessary widgets for a real application using <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> framework. To help me to map this I studied more about <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a>, <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, <a class="reference external" href="/project/projects/libraries/colosseum/">Colosseum</a>, <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>, <a class="reference external" href="https://developer.apple.com/documentation/objectivec">Objective-C</a>, <a class="reference external" href="http://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/Cocoa.html">Cocoa</a> and <a class="reference external" href="https://www.w3.org/Style/CSS/">CSS</a>.</p>
-<p>The work I did during GSoC were sent throught the <a class="reference external" href="https://github.com/beeware/cricket/pull/65">PR 65</a>, reported on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a> and the final demonstration of the work can be seen in this <a class="reference external" href="https://youtu.be/5kz_CmQYFYE">link</a>. There were widgets used on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that weren't ready yet on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, so some improvements were necessary on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> so that I could use them on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>. In summary here are some PRs and issues that I contributed to get my work done in <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<p>Open PR that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/201">PR 201</a> : [Core][Cocoa] Refactoring of the Tree widget</li>
-</ul>
-<p>Merged PRs that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/112">PR 112</a> : [Core][Cocoa] Enable/disable state for buttons, solved <a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/170">PR 170</a> : [Cocoa] Content and retry status for stack trace dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/172">PR 172</a> : [Cocoa] Window resize</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/173">PR 173</a> : [Core][Cocoa] Button color</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/174">PR 174</a> : [Doc] Examples folder and button features example</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/178">PR 178</a> : [Doc] Fix tutorial 2 setup</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/180">PR 180</a> : [Doc] Update <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets roadmap</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/182">PR 182</a> : [Cocoa] Update the label of the Stack trace button for critical dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/184">PR 184</a> : [Core][Cocoa] Hide/show boxes widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/188">PR 188</a> : [Cocoa] Fix error on MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/204">PR 204</a> : [Core][Cocoa] Clear method to MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/206">PR 206</a> : [Core][Cocoa] Readonly and placeholder for MultilineTextInput widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/208">PR 208</a> : [Cocoa] Fix apply style to a SplitContainer widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/pull/60">PR 60</a> : Fix test coverage, solved <a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/rubicon-objc/pull/34">PR 34</a> : [Doc] Add reference to NSObject</li>
-</ul>
-<p>Open issues that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/175">Issue 175</a> : [Core] Add more properties for Label and Font widgets</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/176">Issue 176</a> : [Core] Add "rehint()" on the background of the widget after changing font size</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/186">Issue 186</a> : [Core] Set initial position of the divisor of a SplitContainer</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/197">Issue 197</a> : [Core] Get the id of the selected Tab View on the OptionContainer</li>
-</ul>
-<p>Closed issues that I reported to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/167">Issue 167</a> : [Cocoa] Addition of a SplitContainer on a Box doesn't show the SplitContainer, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/168">Issue 168</a> : [Cocoa] Addition of 2 boxes on an OptionContainer emits Rubicon's error, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/169">Issue 169</a> : [Cocoa] Addition of 2 empty boxes on an OptionContainer emits error from <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> Cocoa platform, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/181">Issue 181</a> : [Core][Cocoa] "Hide" option for widgets, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a> : [Cocoa] Errors on MultilineTextInput, was fixed by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/189">Issue 189</a> : [Cocoa] ProgressBar doesn't appears in a Box, was fixed by <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/194">Issue 194</a> : [Cocoa] The frame of the MultilineTextInput doesn't appear, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/195">Issue 195</a> : [Cocoa] ProgressBar doesn't appear inside of a Box oriented by row, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/196">Issue 196</a> : [Cocoa] Set max value and value on a ProgressBar doesn't make any effect on the layout, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a> : [Core][Cocoa] Clear text on MultilineTextInput widget, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a> : [Cocoa] Set SplitContainer height doesn't update its size, was solved by me</li>
-</ul>
-<p>Closed issues that I didn't reported but I solved on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a> : API to disable buttons?</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/205">Issue 205</a> : adding MultiviewTextInput results in TypeError</li>
-</ul>
-<p>Closed issue that I reported to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a> : Run selected doesn't count/ runs every test selected in a test module, was fixed by me</li>
-</ul>
-<p>Open issue that I reported to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> <a class="reference external" href="https://github.com/ojii">Jonas Obrist</a> repository:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/ojii/rubicon-objc/issues/1">Issue 1</a> : Seg Fault when iterate through a NSIndexSet using block notation</li>
-</ul>
-</div>
-<div class="section" id="future-plans">
-<h2>Future Plans</h2>
-<p>There are some features on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that I want to help develop in a near future, for example:</p>
-<ul class="simple">
-<li>A button to refresh all the tests tree</li>
-<li>Cricket settings</li>
-</ul>
-<p>Also, there are some issues remained after this migration to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>. These issues will be fixed on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets in a near future too, for example:</p>
-<ul class="simple">
-<li>A gap between the output and error boxes when there is no output message</li>
-<li>Run a test if the user click on it</li>
-</ul>
-<p>I truly believe that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.</p>
-</div>
-<div class="section" id="final-considerations">
-<h2>Final Considerations</h2>
-<p>I would like to truly thank my mentors <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a> and <a class="reference external" href="https://github.com/eliasdorneles">Elias Dorneles</a> for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a>. Also, I want to thank <a class="reference external" href="https://github.com/phildini">Philip James</a> that made some reviews in my PRs and <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a> that fixed one issue that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>.</p>
-</div>
\ No newline at end of file
diff --git a/tr_TR/index.html b/tr_TR/index.html
index 462a60966d..2d40f6cdb5 100644
--- a/tr_TR/index.html
+++ b/tr_TR/index.html
@@ -306,7 +306,7 @@
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.
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
-
-
What we've done
-
-
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
-
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
-
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
-
-
-
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:
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
+
+
What we've done
+
+
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
+
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
+
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
+
+
+
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:
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.
2023 is halfway done, and BeeWare continues to make steady 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
-
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
-
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
-
-
-
Q3 priorities
-
Our Q3 goals are:
-
-
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
-
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
-
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
-
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
-
-
-
-
Longer term goals
-
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
-
-
-
Summary
-
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
2023 is halfway done, and BeeWare continues to make steady 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
+
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
+
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
+
+
+
Q3 priorities
+
Our Q3 goals are:
+
+
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
+
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
+
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
+
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
+
+
+
+
Longer term goals
+
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
+
+
+
Summary
+
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
-
-
What we've done
-
During November:
-
-
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
-
-
-
Want to get involved?
-
Want to get involved? Here's 8 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:
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.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
+
+
What we've done
+
During November:
+
+
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
+
+
+
Want to get involved?
+
Want to get involved? Here's 8 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:
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.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
-
-
What we've done
-
During April:
-
-
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
-
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
-
-
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
-
-
-
What's next?
-
In May, we'll be focussing on:
-
-
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
-
Updating the support packages on Android to support Python 3.10.
-
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
-
-
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
+
+
What we've done
+
During April:
+
+
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
+
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
+
+
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
+
+
+
What's next?
+
In May, we'll be focussing on:
+
+
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
+
Updating the support packages on Android to support Python 3.10.
+
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
+
+
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
-
-Posted by
-
-
- Dayanne Fernandes
-
-
-on
- 25 August 2017
-
-
-
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
-
-
"Eating your own dog food"
-
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
-
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
-
-
-
-
Future Plans
-
There are some features on Cricket that I want to help develop in a near future, for example:
-
-
A button to refresh all the tests tree
-
Cricket settings
-
-
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
-
-
A gap between the output and error boxes when there is no output message
-
Run a test if the user click on it
-
-
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
-
-
-
Final Considerations
-
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
+
+Posted by
+
+
+ Dayanne Fernandes
+
+
+on
+ 25 August 2017
+
+
+
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
+
+
"Eating your own dog food"
+
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
+
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
+
+
+
+
Future Plans
+
There are some features on Cricket that I want to help develop in a near future, for example:
+
+
A button to refresh all the tests tree
+
Cricket settings
+
+
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
+
+
A gap between the output and error boxes when there is no output message
+
Run a test if the user click on it
+
+
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
+
+
+
Final Considerations
+
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
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.
+
+
+
+
+
+
+
+
+
+
diff --git a/zh_CN/news/buzz/atom.xml b/zh_CN/news/buzz/atom.xml
index 1a9f020695..df6ba2ab68 100644
--- a/zh_CN/news/buzz/atom.xml
+++ b/zh_CN/news/buzz/atom.xml
@@ -1,5 +1,20 @@
-The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-01T00:00:00ZBeeWare's official blogSeptember 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
+The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-02T00:00:00ZBeeWare's official blog2024Q4 Roadmap2024-10-02T00:00:00ZRussell Keith-Mageeurn:uuid:10dd2b41-f023-3662-89b5-5c2a39279898<p>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.</p>
+<div class="section" id="q3-progress">
+<h2>Q3 progress</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+<div class="section" id="q4-priorities">
+<h2>Q4 priorities</h2>
+<p>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 <tt class="docutils literal">pip</tt> and <tt class="docutils literal">cibuildwheel</tt>, 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.</p>
+</div>
+<div class="section" id="longer-term-goals">
+<h2>Longer term goals</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+September 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
<div class="section" id="what-we-ve-done">
<h2>What we've done</h2>
<ul class="simple">
@@ -1688,95 +1703,4 @@ Also shout out to the BeeWare community for answering my queries and reviewing m
<p>This is obviously a big job. <a class="reference external" href="https://www.w3.org/TR/CSS/#css-levels">CSS is a big specification</a>, so there's a lot of work to be done - but that also means there's lots of places to contribute! Pick a paragraph of the CSS specification, build some test cases that demonstrate the cases described in that paragraph, and submit a patch implementing that behaviour!</p>
<p>It also highlights why your financial support is so important. While we <em>could</em> do this entirely with volunteered effort, we're going to make much faster progress if a small group of people could focus on this project full time. Financial support would allow up to significantly ramp up the development speed of Colosseum, and the rest of the BeeWare suite.</p>
<p>If you would like to see Colosseum and the rest of BeeWare develop to the point where it can be used for commercial applications, please consider supporting BeeWare financially. And if you have any leads for larger potential sources of funding, please <a class="reference external" href="mailto:russell@keith-magee.com">get in touch</a>.</p>
-2017 Google Summer of Code - Port Cricket to use Toga, instead of Tkinter2017-08-25T00:00:00ZDayanne Fernandesurn:uuid:0ff8a1e8-e78b-37d7-a7aa-c4aae3da494a<p>After almost 4 months of work on <a class="reference external" href="https://developers.google.com/open-source/gsoc/">Google Summer of Code</a> 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> , <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> and <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> were detailed on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a>.</p>
-<div class="section" id="eating-your-own-dog-food">
-<h2>"Eating your own dog food"</h2>
-<p>The best way to show that a product is reliable to the customers is use it. So, the way to show that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> is an effective tool to build a GUI is to build a complete application using it.</p>
-<p><a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> is a graphical tool that helps you run your test suites. Its current version is implemented using <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> as the main GUI framework. So, why not test <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> inside of another product from <a class="reference external" href="https://beeware.org">BeeWare</a>? That's what I have acomplished during my GSoC work.</p>
-</div>
-<div class="section" id="results">
-<h2>Results</h2>
-<p>The proposal focus not only on the port of <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, but on mapping the necessary widgets for a real application using <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> framework. To help me to map this I studied more about <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a>, <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, <a class="reference external" href="/project/projects/libraries/colosseum/">Colosseum</a>, <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>, <a class="reference external" href="https://developer.apple.com/documentation/objectivec">Objective-C</a>, <a class="reference external" href="http://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/Cocoa.html">Cocoa</a> and <a class="reference external" href="https://www.w3.org/Style/CSS/">CSS</a>.</p>
-<p>The work I did during GSoC were sent throught the <a class="reference external" href="https://github.com/beeware/cricket/pull/65">PR 65</a>, reported on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a> and the final demonstration of the work can be seen in this <a class="reference external" href="https://youtu.be/5kz_CmQYFYE">link</a>. There were widgets used on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that weren't ready yet on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, so some improvements were necessary on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> so that I could use them on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>. In summary here are some PRs and issues that I contributed to get my work done in <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<p>Open PR that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/201">PR 201</a> : [Core][Cocoa] Refactoring of the Tree widget</li>
-</ul>
-<p>Merged PRs that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/112">PR 112</a> : [Core][Cocoa] Enable/disable state for buttons, solved <a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/170">PR 170</a> : [Cocoa] Content and retry status for stack trace dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/172">PR 172</a> : [Cocoa] Window resize</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/173">PR 173</a> : [Core][Cocoa] Button color</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/174">PR 174</a> : [Doc] Examples folder and button features example</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/178">PR 178</a> : [Doc] Fix tutorial 2 setup</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/180">PR 180</a> : [Doc] Update <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets roadmap</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/182">PR 182</a> : [Cocoa] Update the label of the Stack trace button for critical dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/184">PR 184</a> : [Core][Cocoa] Hide/show boxes widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/188">PR 188</a> : [Cocoa] Fix error on MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/204">PR 204</a> : [Core][Cocoa] Clear method to MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/206">PR 206</a> : [Core][Cocoa] Readonly and placeholder for MultilineTextInput widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/208">PR 208</a> : [Cocoa] Fix apply style to a SplitContainer widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/pull/60">PR 60</a> : Fix test coverage, solved <a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/rubicon-objc/pull/34">PR 34</a> : [Doc] Add reference to NSObject</li>
-</ul>
-<p>Open issues that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/175">Issue 175</a> : [Core] Add more properties for Label and Font widgets</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/176">Issue 176</a> : [Core] Add "rehint()" on the background of the widget after changing font size</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/186">Issue 186</a> : [Core] Set initial position of the divisor of a SplitContainer</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/197">Issue 197</a> : [Core] Get the id of the selected Tab View on the OptionContainer</li>
-</ul>
-<p>Closed issues that I reported to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/167">Issue 167</a> : [Cocoa] Addition of a SplitContainer on a Box doesn't show the SplitContainer, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/168">Issue 168</a> : [Cocoa] Addition of 2 boxes on an OptionContainer emits Rubicon's error, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/169">Issue 169</a> : [Cocoa] Addition of 2 empty boxes on an OptionContainer emits error from <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> Cocoa platform, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/181">Issue 181</a> : [Core][Cocoa] "Hide" option for widgets, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a> : [Cocoa] Errors on MultilineTextInput, was fixed by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/189">Issue 189</a> : [Cocoa] ProgressBar doesn't appears in a Box, was fixed by <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/194">Issue 194</a> : [Cocoa] The frame of the MultilineTextInput doesn't appear, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/195">Issue 195</a> : [Cocoa] ProgressBar doesn't appear inside of a Box oriented by row, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/196">Issue 196</a> : [Cocoa] Set max value and value on a ProgressBar doesn't make any effect on the layout, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a> : [Core][Cocoa] Clear text on MultilineTextInput widget, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a> : [Cocoa] Set SplitContainer height doesn't update its size, was solved by me</li>
-</ul>
-<p>Closed issues that I didn't reported but I solved on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a> : API to disable buttons?</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/205">Issue 205</a> : adding MultiviewTextInput results in TypeError</li>
-</ul>
-<p>Closed issue that I reported to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a> : Run selected doesn't count/ runs every test selected in a test module, was fixed by me</li>
-</ul>
-<p>Open issue that I reported to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> <a class="reference external" href="https://github.com/ojii">Jonas Obrist</a> repository:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/ojii/rubicon-objc/issues/1">Issue 1</a> : Seg Fault when iterate through a NSIndexSet using block notation</li>
-</ul>
-</div>
-<div class="section" id="future-plans">
-<h2>Future Plans</h2>
-<p>There are some features on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that I want to help develop in a near future, for example:</p>
-<ul class="simple">
-<li>A button to refresh all the tests tree</li>
-<li>Cricket settings</li>
-</ul>
-<p>Also, there are some issues remained after this migration to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>. These issues will be fixed on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets in a near future too, for example:</p>
-<ul class="simple">
-<li>A gap between the output and error boxes when there is no output message</li>
-<li>Run a test if the user click on it</li>
-</ul>
-<p>I truly believe that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.</p>
-</div>
-<div class="section" id="final-considerations">
-<h2>Final Considerations</h2>
-<p>I would like to truly thank my mentors <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a> and <a class="reference external" href="https://github.com/eliasdorneles">Elias Dorneles</a> for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a>. Also, I want to thank <a class="reference external" href="https://github.com/phildini">Philip James</a> that made some reviews in my PRs and <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a> that fixed one issue that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>.</p>
-</div>
\ No newline at end of file
diff --git a/zh_CN/news/buzz/index.html b/zh_CN/news/buzz/index.html
index b1fea91304..bdffa5a31b 100644
--- a/zh_CN/news/buzz/index.html
+++ b/zh_CN/news/buzz/index.html
@@ -188,6 +188,43 @@
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
-
-
What we've done
-
-
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
-
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
-
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
-
-
-
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:
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
+
+
What we've done
+
+
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
+
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
+
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
+
+
+
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:
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.
2023 is halfway done, and BeeWare continues to make steady 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
-
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
-
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
-
-
-
Q3 priorities
-
Our Q3 goals are:
-
-
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
-
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
-
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
-
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
-
-
-
-
Longer term goals
-
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
-
-
-
Summary
-
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
2023 is halfway done, and BeeWare continues to make steady 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
+
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
+
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
+
+
+
Q3 priorities
+
Our Q3 goals are:
+
+
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
+
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
+
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
+
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
+
+
+
+
Longer term goals
+
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
+
+
+
Summary
+
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
-
-
What we've done
-
During November:
-
-
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
-
-
-
Want to get involved?
-
Want to get involved? Here's 8 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:
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.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
+
+
What we've done
+
During November:
+
+
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
+
+
+
Want to get involved?
+
Want to get involved? Here's 8 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:
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.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
-
-
What we've done
-
During April:
-
-
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
-
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
-
-
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
-
-
-
What's next?
-
In May, we'll be focussing on:
-
-
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
-
Updating the support packages on Android to support Python 3.10.
-
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
-
-
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
+
+
What we've done
+
During April:
+
+
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
+
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
+
+
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
+
+
+
What's next?
+
In May, we'll be focussing on:
+
+
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
+
Updating the support packages on Android to support Python 3.10.
+
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
+
+
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
-
-Posted by
-
-
- Dayanne Fernandes
-
-
-on
- 25 August 2017
-
-
-
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
-
-
"Eating your own dog food"
-
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
-
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
-
-
-
-
Future Plans
-
There are some features on Cricket that I want to help develop in a near future, for example:
-
-
A button to refresh all the tests tree
-
Cricket settings
-
-
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
-
-
A gap between the output and error boxes when there is no output message
-
Run a test if the user click on it
-
-
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
-
-
-
Final Considerations
-
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
+
+Posted by
+
+
+ Dayanne Fernandes
+
+
+on
+ 25 August 2017
+
+
+
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
+
+
"Eating your own dog food"
+
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
+
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
+
+
+
+
Future Plans
+
There are some features on Cricket that I want to help develop in a near future, for example:
+
+
A button to refresh all the tests tree
+
Cricket settings
+
+
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
+
+
A gap between the output and error boxes when there is no output message
+
Run a test if the user click on it
+
+
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
+
+
+
Final Considerations
+
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
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.
+
+
+
+
+
+
+
+
+
+
diff --git a/zh_TW/news/buzz/atom.xml b/zh_TW/news/buzz/atom.xml
index a9a45d5dfe..8d8d40796d 100644
--- a/zh_TW/news/buzz/atom.xml
+++ b/zh_TW/news/buzz/atom.xml
@@ -1,5 +1,20 @@
-The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-01T00:00:00ZBeeWare's official blogSeptember 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
+The Buzzurn:uuid:0f18b85e-c1d4-3086-935d-f801edebea162024-10-02T00:00:00ZBeeWare's official blog2024Q4 Roadmap2024-10-02T00:00:00ZRussell Keith-Mageeurn:uuid:10dd2b41-f023-3662-89b5-5c2a39279898<p>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.</p>
+<div class="section" id="q3-progress">
+<h2>Q3 progress</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+<div class="section" id="q4-priorities">
+<h2>Q4 priorities</h2>
+<p>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 <tt class="docutils literal">pip</tt> and <tt class="docutils literal">cibuildwheel</tt>, 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.</p>
+</div>
+<div class="section" id="longer-term-goals">
+<h2>Longer term goals</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+September 2024 Status Update2024-10-01T00:00:00ZRussell Keith-Mageeurn:uuid:d276991c-f687-33a4-ad57-0010a0c25f7a<p>In September, BeeWare hit an important milestone for Android support, made good progress on packaging for iOS, and landed some significant changes to Toga.</p>
<div class="section" id="what-we-ve-done">
<h2>What we've done</h2>
<ul class="simple">
@@ -1688,95 +1703,4 @@ Also shout out to the BeeWare community for answering my queries and reviewing m
<p>This is obviously a big job. <a class="reference external" href="https://www.w3.org/TR/CSS/#css-levels">CSS is a big specification</a>, so there's a lot of work to be done - but that also means there's lots of places to contribute! Pick a paragraph of the CSS specification, build some test cases that demonstrate the cases described in that paragraph, and submit a patch implementing that behaviour!</p>
<p>It also highlights why your financial support is so important. While we <em>could</em> do this entirely with volunteered effort, we're going to make much faster progress if a small group of people could focus on this project full time. Financial support would allow up to significantly ramp up the development speed of Colosseum, and the rest of the BeeWare suite.</p>
<p>If you would like to see Colosseum and the rest of BeeWare develop to the point where it can be used for commercial applications, please consider supporting BeeWare financially. And if you have any leads for larger potential sources of funding, please <a class="reference external" href="mailto:russell@keith-magee.com">get in touch</a>.</p>
-2017 Google Summer of Code - Port Cricket to use Toga, instead of Tkinter2017-08-25T00:00:00ZDayanne Fernandesurn:uuid:0ff8a1e8-e78b-37d7-a7aa-c4aae3da494a<p>After almost 4 months of work on <a class="reference external" href="https://developers.google.com/open-source/gsoc/">Google Summer of Code</a> 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> , <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> and <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> were detailed on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a>.</p>
-<div class="section" id="eating-your-own-dog-food">
-<h2>"Eating your own dog food"</h2>
-<p>The best way to show that a product is reliable to the customers is use it. So, the way to show that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> is an effective tool to build a GUI is to build a complete application using it.</p>
-<p><a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> is a graphical tool that helps you run your test suites. Its current version is implemented using <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> as the main GUI framework. So, why not test <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> inside of another product from <a class="reference external" href="https://beeware.org">BeeWare</a>? That's what I have acomplished during my GSoC work.</p>
-</div>
-<div class="section" id="results">
-<h2>Results</h2>
-<p>The proposal focus not only on the port of <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a> to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, but on mapping the necessary widgets for a real application using <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> framework. To help me to map this I studied more about <a class="reference external" href="https://docs.python.org/2/library/tkinter.html">Tkinter</a>, <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, <a class="reference external" href="/project/projects/libraries/colosseum/">Colosseum</a>, <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>, <a class="reference external" href="https://developer.apple.com/documentation/objectivec">Objective-C</a>, <a class="reference external" href="http://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/Cocoa.html">Cocoa</a> and <a class="reference external" href="https://www.w3.org/Style/CSS/">CSS</a>.</p>
-<p>The work I did during GSoC were sent throught the <a class="reference external" href="https://github.com/beeware/cricket/pull/65">PR 65</a>, reported on the <a class="reference external" href="https://github.com/beeware/cricket/issues/58">Issue 58</a> and the final demonstration of the work can be seen in this <a class="reference external" href="https://youtu.be/5kz_CmQYFYE">link</a>. There were widgets used on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that weren't ready yet on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>, so some improvements were necessary on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> so that I could use them on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>. In summary here are some PRs and issues that I contributed to get my work done in <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<p>Open PR that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/201">PR 201</a> : [Core][Cocoa] Refactoring of the Tree widget</li>
-</ul>
-<p>Merged PRs that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/112">PR 112</a> : [Core][Cocoa] Enable/disable state for buttons, solved <a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/170">PR 170</a> : [Cocoa] Content and retry status for stack trace dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/172">PR 172</a> : [Cocoa] Window resize</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/173">PR 173</a> : [Core][Cocoa] Button color</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/174">PR 174</a> : [Doc] Examples folder and button features example</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/178">PR 178</a> : [Doc] Fix tutorial 2 setup</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/180">PR 180</a> : [Doc] Update <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets roadmap</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/182">PR 182</a> : [Cocoa] Update the label of the Stack trace button for critical dialog</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/184">PR 184</a> : [Core][Cocoa] Hide/show boxes widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/188">PR 188</a> : [Cocoa] Fix error on MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/204">PR 204</a> : [Core][Cocoa] Clear method to MultilineTextInput widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/206">PR 206</a> : [Core][Cocoa] Readonly and placeholder for MultilineTextInput widget</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/pull/208">PR 208</a> : [Cocoa] Fix apply style to a SplitContainer widget, solved <a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/pull/60">PR 60</a> : Fix test coverage, solved <a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a></li>
-</ul>
-<p>Merged PR that I sent to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/rubicon-objc/pull/34">PR 34</a> : [Doc] Add reference to NSObject</li>
-</ul>
-<p>Open issues that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/175">Issue 175</a> : [Core] Add more properties for Label and Font widgets</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/176">Issue 176</a> : [Core] Add "rehint()" on the background of the widget after changing font size</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/186">Issue 186</a> : [Core] Set initial position of the divisor of a SplitContainer</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/197">Issue 197</a> : [Core] Get the id of the selected Tab View on the OptionContainer</li>
-</ul>
-<p>Closed issues that I reported to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/167">Issue 167</a> : [Cocoa] Addition of a SplitContainer on a Box doesn't show the SplitContainer, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/168">Issue 168</a> : [Cocoa] Addition of 2 boxes on an OptionContainer emits Rubicon's error, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/169">Issue 169</a> : [Cocoa] Addition of 2 empty boxes on an OptionContainer emits error from <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> Cocoa platform, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/181">Issue 181</a> : [Core][Cocoa] "Hide" option for widgets, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/187">Issue 187</a> : [Cocoa] Errors on MultilineTextInput, was fixed by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/189">Issue 189</a> : [Cocoa] ProgressBar doesn't appears in a Box, was fixed by <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/194">Issue 194</a> : [Cocoa] The frame of the MultilineTextInput doesn't appear, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/195">Issue 195</a> : [Cocoa] ProgressBar doesn't appear inside of a Box oriented by row, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/196">Issue 196</a> : [Cocoa] Set max value and value on a ProgressBar doesn't make any effect on the layout, was fixed by <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a></li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/203">Issue 203</a> : [Core][Cocoa] Clear text on MultilineTextInput widget, was solved by me</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/207">Issue 207</a> : [Cocoa] Set SplitContainer height doesn't update its size, was solved by me</li>
-</ul>
-<p>Closed issues that I didn't reported but I solved on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/91">Issue 91</a> : API to disable buttons?</li>
-<li><a class="reference external" href="https://github.com/beeware/toga/issues/205">Issue 205</a> : adding MultiviewTextInput results in TypeError</li>
-</ul>
-<p>Closed issue that I reported to <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a>:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/beeware/cricket/issues/59">Issue 59</a> : Run selected doesn't count/ runs every test selected in a test module, was fixed by me</li>
-</ul>
-<p>Open issue that I reported to <a class="reference external" href="/project/projects/bridges/rubicon/">rubicon-objc</a> <a class="reference external" href="https://github.com/ojii">Jonas Obrist</a> repository:</p>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/ojii/rubicon-objc/issues/1">Issue 1</a> : Seg Fault when iterate through a NSIndexSet using block notation</li>
-</ul>
-</div>
-<div class="section" id="future-plans">
-<h2>Future Plans</h2>
-<p>There are some features on <a class="reference external" href="/project/projects/tools/cricket/">Cricket</a> that I want to help develop in a near future, for example:</p>
-<ul class="simple">
-<li>A button to refresh all the tests tree</li>
-<li>Cricket settings</li>
-</ul>
-<p>Also, there are some issues remained after this migration to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>. These issues will be fixed on <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> widgets in a near future too, for example:</p>
-<ul class="simple">
-<li>A gap between the output and error boxes when there is no output message</li>
-<li>Run a test if the user click on it</li>
-</ul>
-<p>I truly believe that <a class="reference external" href="/project/projects/libraries/toga/">Toga</a> will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.</p>
-</div>
-<div class="section" id="final-considerations">
-<h2>Final Considerations</h2>
-<p>I would like to truly thank my mentors <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a> and <a class="reference external" href="https://github.com/eliasdorneles">Elias Dorneles</a> for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program <a class="reference external" href="https://github.com/freakboy3742">Russell Keith-Magee</a>. Also, I want to thank <a class="reference external" href="https://github.com/phildini">Philip James</a> that made some reviews in my PRs and <a class="reference external" href="https://github.com/Ocupe">Jonas Schell</a> that fixed one issue that I sent to <a class="reference external" href="/project/projects/libraries/toga/">Toga</a>.</p>
-</div>
\ No newline at end of file
diff --git a/zh_TW/news/buzz/index.html b/zh_TW/news/buzz/index.html
index 0a6b785c7a..3ad6af9094 100644
--- a/zh_TW/news/buzz/index.html
+++ b/zh_TW/news/buzz/index.html
@@ -188,6 +188,43 @@
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
-
-
What we've done
-
-
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
-
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
-
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
-
-
-
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:
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.
February may be the shortest month, but that doesn't mean we've got any less progress to report!
+
+
What we've done
+
+
PEP 738, adding official Android support to CPython, has been formally submitted to the Python Steering Council for approval.
+
We've started landing patches in CPython to add formal support for iOS and Android. There are more patches in review, and more to come, but so far we've landed patches that:
We added macOS ARM64 machines to our CI capabilities for Toga and Briefcase. We've officially supported ARM64 on macOS for some time, but we've been unable to test this support as part of our CI and release procedure - we've had to do ad-hoc testing on the machines we're using to develop on a day to day basis. As a result of improvements to Github's CI infrastructure, we're now able to perform automated testing. As part of these changes, we've also added testing for Python 3.13 (which will be released around October of this year).
We added a pluggable API for image formats. With this API, any third party library that has an internal format for images can implement support so that Toga can convert to and from images in that format.
We've added a MapView widget. This widget is in final review, but should land very soon.
+
We've improved error handling when the Android emulator fails to start. This should hopefully make it easier to identify the source of any emulator failures.
In March, we will continue to focus on iOS and Android patches for CPython; if all goes extremely well, the bulk of patches should be upstream (or at least submitted for review) by the end of the month. While we're waiting for CPython patches to be reviewed, we'll be adding geolocation APIs to Toga.
+
+
+
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:
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.
2023 is halfway done, and BeeWare continues to make steady 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
-
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
-
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
-
-
-
Q3 priorities
-
Our Q3 goals are:
-
-
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
-
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
-
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
-
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
-
-
-
-
Longer term goals
-
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
-
-
-
Summary
-
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
2023 is halfway done, and BeeWare continues to make steady 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
+
As with Q1, our focus in Q2 was on Toga testing. This has been a mammoth project; but it's finally nearing completion. All but 2 widgets (Canvas and DetailedList) have 100% branch coverage on macOS, iOS and GTK, while Android and Windows are only 5 more widgets behind (ScrollContainer, SplitContainer, OptionContainer, Table and Tree). Along the way, we've identified and resolved lots of inconsistencies in widget APIs, and resolved countless bugs. We've also fully documented every widget, ported the test suite to Pytest, and added type annotations in the code (mostly for documentation purposes, rather than formal validation). We've also completed testing and coverage of a lot of the non-widget functionality that wasn’t strictly planned for this quarter - features like Images, Icons, Validators, application paths, and colors; plus a lot of tests (and bugfixes) in the core widget layout. We've also got the start of some tooling that can be used to test the Web backend.
+
Unfortunately, we haven't been able to do any substantial Toga planning. Once Toga's code is at 100% testing coverage, we'll be in a much better place to develop those plans. We also haven't been able to add any native cross-platform hardware support.
+
+
+
Q3 priorities
+
Our Q3 goals are:
+
+
Finalize Toga's test suite. By the end of Q3, we should have 100% branch coverage on every line of Toga's core, and on the macOS, Windows, GTK, Android and iOS backends.
+
iOS Binary packaging We've been made aware that Apple is rejecting Briefcase packaged iOS apps from the iOS App Store because of a package layout issue associated with binary modules. This is a very high priority to fix.
+
Kotlin upgrades The upcoming Android Studio release is switching to Kotlin as its preferred language for new Gradle configuration files; we need to upgrade Chaquopy's tooling to support this.
+
Add full support for Java inheritance In the process of building Toga's test suite, it's become clear that a number of features can only be implemented by subclassing Java base classes. Chaquopy's ability to subclass is currently limited; to unlock all the features of Android, we need to resolve this limitation.
+
+
+
+
Longer term goals
+
Our longer term goals are also largely unchanged. Toga 1.0 remains an important goal; once we're at 100% test coverage, we will be in much better place to provide estimates about Toga 1.0. Upstreaming is an area where we have some good news - as a result of discussions at Pycon US, we've received support for raising iOS and Android to the status of Tier 3 supported platforms in CPython, with the initial goal of having this in place for Python 3.13. You should expect to see movement on upstreaming towards the end of this year, and early next year. A forge for mobile packages is also remains an important goal; the completion of upstreaming work will make the goal of building a forge much more viable.
+
+
+
Summary
+
At the end of Q2 2023, Toga's testing journey is nearing completion... but there's still lots of work to be done. However, the groundwork that we've been doing over the last 6 months has put us in a very strong position to develop Toga and the rest of the BeeWare ecosystem going forward.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
-
-
What we've done
-
During November:
-
-
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
-
-
-
Want to get involved?
-
Want to get involved? Here's 8 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:
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.
November has brought some very important improvements to BeeWare. Although these changes don't have an immediate impact for users, they're going to form a vital part of our work going forward.
+
+
What we've done
+
During November:
+
+
We added a test mode to Briefcase. This is a huge step forward, as it means we are now able to run automated tests for iOS and Android, as well as validation tests for packaged app behaviors. As a proof of concept, we've already begun porting our support package validation app - this is an app that we've historically needed to run manually.
We've improved the handling of Android apps that fail immediately on app startup. Previously, if your app crashed due to something like a Python syntax error, it was possible for Briefcase to hang in a way that made it look like the issue was due to Briefcase being unable to start the app, rather than a user code problem.
December will be a slow month due to the Christmas and New Year break; however, until then, we'll continue to focus will continue to be on testing. We'll continue to build out the testing tools that we've worked on this month, and start building tests using those tools. We also hope to begin work on a firm 1.0 roadmap for Toga.
+
+
+
Want to get involved?
+
Want to get involved? Here's 8 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:
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.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
-
-
What we've done
-
During April:
-
-
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
-
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
-
-
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
-
-
-
What's next?
-
In May, we'll be focussing on:
-
-
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
-
Updating the support packages on Android to support Python 3.10.
-
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
-
-
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
One of the benefits of having the support of an organization like Anaconda is that we now have the time to perform little housekeeping tasks like publishing community updates. As a result, this is the first (of hopefully many) monthly updates letting you know what progress has been made in the BeeWare suite.
+
+
What we've done
+
During April:
+
+
We've cleared the backlog of pull requests and issue triage. At this point, the only PRs that are open are ones that require updates or changes from the submitters. A lot of stale or duplicated issues have also been closed or consolidated.
Toga windows now use a "single source of truth" approach, using the API calls of the underlying GUI platform to determine the title, position and size of a window. This, in turn, allowed for the implementation of APIs that allow you to set the title, position and size of windows on desktop platforms.
Toga dialogs that return a result (such as YesNoDialog) now use an asynchronous API. This is a backwards incompatible change that was required to support dialogs on Android; it also allows us to remove a nasty hack that was needed on iOS. However, we've been able to implement this in such a way that any existing usage that is incompatible with the new required usage will be flagged with a helpful error.
We've improved the output generated by verbose debug output to improve full environment details . This should make it easier to identify why a command is failing due to unexpected user environments, and to assist in manually reproducing Briefcase's behaviour outside Briefcase.
+
We now ensure that macOS apps are *always* signed. This is needed because all apps required at least ad-hoc signing to execute on M1 hardware.
+
+
Many of these PRs either began as, or are entirely the work of community members. There are also dozens of smaller PRs, bug fixes, and bug reports that are just as important, but are too numerous to list in a post like this. A huge thanks to everyone who has contributed to BeeWare during April.
+
+
+
What's next?
+
In May, we'll be focussing on:
+
+
Updating the support packages for macOS and iOS apps. Apple's transition to M1 hardware means there are new simulator architectures that require support; this, in turn, requires that we adopt Xcode's new XCFramework for the packaging libraries, which requires some fairly major changes to the way the support packages are built.
+
Updating the support packages on Android to support Python 3.10.
+
Notarization on M1. This is becoming an increasingly required part of macOS app publishing, as Apple cranks up the security requirements.
+
+
We're also expecting to start the hiring process in the coming month. We'll provide more details when we can point a full job description. If you think you'd like to make BeeWare your day job (or you know someone who might), now would be a good time to start polishing your resume.
-
-Posted by
-
-
- Dayanne Fernandes
-
-
-on
- 25 August 2017
-
-
-
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
-
-
"Eating your own dog food"
-
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
-
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
-
-
-
-
Future Plans
-
There are some features on Cricket that I want to help develop in a near future, for example:
-
-
A button to refresh all the tests tree
-
Cricket settings
-
-
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
-
-
A gap between the output and error boxes when there is no output message
-
Run a test if the user click on it
-
-
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
-
-
-
Final Considerations
-
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.
+
+Posted by
+
+
+ Dayanne Fernandes
+
+
+on
+ 25 August 2017
+
+
+
After almost 4 months of work on Google Summer of Code 2017, finally I'm completing my proposal. Every widget migration and every commit/PR/issue/discussion with my mentors about Cricket , Toga and rubicon-objc were detailed on the Issue 58.
+
+
"Eating your own dog food"
+
The best way to show that a product is reliable to the customers is use it. So, the way to show that Toga is an effective tool to build a GUI is to build a complete application using it.
+
Cricket is a graphical tool that helps you run your test suites. Its current version is implemented using Tkinter as the main GUI framework. So, why not test Toga inside of another product from BeeWare? That's what I have acomplished during my GSoC work.
The work I did during GSoC were sent throught the PR 65, reported on the Issue 58 and the final demonstration of the work can be seen in this link. There were widgets used on Cricket that weren't ready yet on Toga, so some improvements were necessary on Toga so that I could use them on Cricket. In summary here are some PRs and issues that I contributed to get my work done in Cricket:
Issue 1 : Seg Fault when iterate through a NSIndexSet using block notation
+
+
+
+
Future Plans
+
There are some features on Cricket that I want to help develop in a near future, for example:
+
+
A button to refresh all the tests tree
+
Cricket settings
+
+
Also, there are some issues remained after this migration to Toga. These issues will be fixed on Toga widgets in a near future too, for example:
+
+
A gap between the output and error boxes when there is no output message
+
Run a test if the user click on it
+
+
I truly believe that Toga will be the oficial framework on Python to build GUI for multiplatforms applications, so I'll continue to contribute to this project because I want to use in every application that I would need a GUI.
+
+
+
Final Considerations
+
I would like to truly thank my mentors Russell Keith-Magee and Elias Dorneles for guide and help me so much during this period. The opportunity to be part of this community was a great honor to me, thank you so much to accept me in this program Russell Keith-Magee. Also, I want to thank Philip James that made some reviews in my PRs and Jonas Schell that fixed one issue that I sent to Toga.