From 04ffc833bfb5eb46973b7ba675ff6e103157b4a9 Mon Sep 17 00:00:00 2001 From: caydnn Date: Wed, 8 Oct 2025 12:32:39 +0800 Subject: [PATCH 01/47] First parse at blog post --- .../contents.lr | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr new file mode 100644 index 0000000000..e2d049022d --- /dev/null +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -0,0 +1,59 @@ +title: 2025 Curtin University Capstone Project +--- +author: Curtin Capstone Team +--- +body: + +Since Febuary, a team of final year students from [Curtin University](https://www.curtin.edu.au) has been collaborating with the BeeWare Project as part of a capstone project for their degrees. This is a summary of the work they have completed. + +# Curtin Capstone + +Capstone is the final year project undertaken by students across all computing disciplines at Curtin University, including Computer Science, Software Engineering, Cyber Security, and Information Technology. It allows students the opportunity to work in teams on real-world projects in collaboration with industry partners, gaining practical experience and professional exposure before graduating. + +This year our team has had the exciting opportunity to contribute to BeeWare for our Capstone project. + +Meet the Team: + + - Kavidu Abeykoon Mudiyanselagedara ([kavi2du](https://github.com/kavi2du)); Information Technology + - Callum Horton ([Stringer90](https://github.com/Stringer90)); Software Engineering + - Caydn Lee ([caydnn](https://github.com/caydnn)); Software Engineering + - Jaeden Mah ([JMah007](https://github.com/JMah007)); Computer Science + - Mitchell Pontague ([mEp3ii2](https://github.com/mEp3ii2)); Software Engineering + - Veronica Taniputra ([vt37](https://github.com/vt37)); Cyber Security + +In the first semester, our team gained exposure to the BeeWare ecosystem through tackling a variety of small bug fixes within Briefcase and Toga, creating widgets for the web backend in Toga and completing small research tasks into the mechanisms within the BeeWare tools. After this, the team split off into pairs to plan out larger deliverable contributions that would add or changes features within BeeWare. +It is these deliverables that the team worked on in the second semester. + +## What We’ve Worked On This Semester + +### Toga Web Testing + +### Briefcase Web Development Optimisations + +### PyScript Briefcase and Toga Dependencies + +## Other Contributions + +Below is a summary of contributions either made during the first semester or in down time during the second semester. + +### Briefcase Contributions + +- PR [#2198](https://github.com/beeware/briefcase/pull/2198): Add boolean question (feature) +- PR [#2103](https://github.com/beeware/briefcase/pull/2203): Add XML content escaping filter to cookiecutter.py (feature) +- PR [#2199](https://github.com/beeware/briefcase/pull/2199): Add catch exception when deleting JDK (bugfix) +- PR [#2229](https://github.com/beeware/briefcase/pull/2229): Accept other changelog name and extension (feature) +- PR [#2201](https://github.com/beeware/briefcase/pull/2201): Add ``--app`` option to briefcase build/package (feature) +- PR [#2214](https://github.com/beeware/briefcase/pull/2214): Add ``--app`` option to briefcase create/update (feature) +- PR [#2236](https://github.com/beeware/briefcase/pull/2236): Normalise contribution docs with Toga (documentation) +- PR [#54](https://github.com/beeware/briefcase-windows-VisualStudio-template/pull/54): Use XML content escaping filter to Visual Studio template. (bugfix) + +### Toga Contributions + +- PR [#3259](https://github.com/beeware/toga/pull/3259): Add web screenshots (documentation) +- PR [#3466](https://github.com/beeware/toga/pull/3466): Fix button click handling in Toga Web backend to correctly trigger event (bugfix) +- PR [#3338](https://github.com/beeware/toga/pull/3338): DateInput (web widget) +- PR [#3405](https://github.com/beeware/toga/pull/3405): TimeInput (web widget) +- PR [#3362](https://github.com/beeware/toga/pull/3362): ScrollContainer (web widget) +- PR [#3425](https://github.com/beeware/toga/pull/3425): Table (web widget) (work in progress) +- PR [#3402](https://github.com/beeware/toga/pull/3402): Selection (web widget) +- PR [#3527](https://github.com/beeware/toga/pull/3527): Slider (web widget) \ No newline at end of file From f1a205df21628d89c5c57a81428be471021b45d8 Mon Sep 17 00:00:00 2001 From: caydnn Date: Wed, 8 Oct 2025 12:42:42 +0800 Subject: [PATCH 02/47] minor comments --- .../buzz/2025-curtin-capstone-year-end-blog/contents.lr | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index e2d049022d..2df2c664ce 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -28,10 +28,16 @@ It is these deliverables that the team worked on in the second semester. ### Toga Web Testing +*To be filled out by Veronica and Callum + ### Briefcase Web Development Optimisations +* To be filled out by Jayden and Mitchell + ### PyScript Briefcase and Toga Dependencies +* To be filled out by Kavi and Caydn + ## Other Contributions Below is a summary of contributions either made during the first semester or in down time during the second semester. From a1f7d878226d8586378d1f72b96e25b52f378041 Mon Sep 17 00:00:00 2001 From: mEp3ii2 <74845700+mEp3ii2@users.noreply.github.com> Date: Sun, 12 Oct 2025 21:51:58 +0800 Subject: [PATCH 03/47] added in initial web dev section --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 2df2c664ce..48b9fc3051 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -32,7 +32,7 @@ It is these deliverables that the team worked on in the second semester. ### Briefcase Web Development Optimisations -* To be filled out by Jayden and Mitchell +This semester, we have successfully laid the groundwork for web platform development mode support in briefcase by making the `dev` command platform-aware and implementing virtual environment management. We refactored the core DevCommand architecture by introducing platform-specific `DevCommand` subclasses like `StaticWebDevCommand` to handle platform-dependent workflows (PR #2419).Next, we implemented virtual environment management by introducing the VirtualEnvironment context manager tool, which provides isolated, configurable virtual environments for development mode, which addressed dependency conflicts while maintaining compatibility with existing Briefcase patterns. We've started work on the StaticWebDevCommand with proper venv creation and path management specific to web development, app execution remains a planned next step that has been marked with the UnsupportedCommandError error. This work establishes the foundation for the full editable install and live-reload workflow that was outlined in the original proposal that you can check out here to see our outline next steps for those wanting to carry on where we've left off. ### PyScript Briefcase and Toga Dependencies @@ -62,4 +62,4 @@ Below is a summary of contributions either made during the first semester or in - PR [#3362](https://github.com/beeware/toga/pull/3362): ScrollContainer (web widget) - PR [#3425](https://github.com/beeware/toga/pull/3425): Table (web widget) (work in progress) - PR [#3402](https://github.com/beeware/toga/pull/3402): Selection (web widget) -- PR [#3527](https://github.com/beeware/toga/pull/3527): Slider (web widget) \ No newline at end of file +- PR [#3527](https://github.com/beeware/toga/pull/3527): Slider (web widget) From 896f0806216015f4ace3c1815db727b2047ace48 Mon Sep 17 00:00:00 2001 From: Kavidu <132393780+kavi2du@users.noreply.github.com> Date: Tue, 14 Oct 2025 10:58:22 +0800 Subject: [PATCH 04/47] Add overview of the PyScript Briefcase and Toga Dependencies --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 48b9fc3051..92517f4a7f 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -36,6 +36,10 @@ This semester, we have successfully laid the groundwork for web platform develop ### PyScript Briefcase and Toga Dependencies +Overview + +This semester, we worked on redesigning the Briefcase static web build pipeline to implement a deterministic asset insertion system which replaced template-based asset management. The new system enables Toga and other toolkits to embed their configuration files and front-end resources directly into wheel packages. The web template received a redesign which established specific areas for insertion. The present restrictions prevent Toga and other toolkits from taking full control of their front-end operations while working independently from Briefcase. The new system separates tasks while making maintenance easier and enables toolkits to manage their front-end components..... + * To be filled out by Kavi and Caydn ## Other Contributions From 3c1971425ed0d9137d8f886821e53303227782da Mon Sep 17 00:00:00 2001 From: Jaeden Mah Date: Thu, 16 Oct 2025 10:58:03 +0800 Subject: [PATCH 05/47] Added to Web Dev Optimisation --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 92517f4a7f..0c04863486 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -32,7 +32,7 @@ It is these deliverables that the team worked on in the second semester. ### Briefcase Web Development Optimisations -This semester, we have successfully laid the groundwork for web platform development mode support in briefcase by making the `dev` command platform-aware and implementing virtual environment management. We refactored the core DevCommand architecture by introducing platform-specific `DevCommand` subclasses like `StaticWebDevCommand` to handle platform-dependent workflows (PR #2419).Next, we implemented virtual environment management by introducing the VirtualEnvironment context manager tool, which provides isolated, configurable virtual environments for development mode, which addressed dependency conflicts while maintaining compatibility with existing Briefcase patterns. We've started work on the StaticWebDevCommand with proper venv creation and path management specific to web development, app execution remains a planned next step that has been marked with the UnsupportedCommandError error. This work establishes the foundation for the full editable install and live-reload workflow that was outlined in the original proposal that you can check out here to see our outline next steps for those wanting to carry on where we've left off. +This semester, we have successfully laid the groundwork for web platform development mode support in briefcase by making the `dev` command platform-aware and implementing virtual environment management. We refactored the core DevCommand architecture by introducing platform-specific `DevCommand` subclasses like `StaticWebDevCommand` to handle platform-dependent workflows (PR #2419).Next, we implemented virtual environment management by introducing the VirtualEnvironment context manager tool, which provides isolated, configurable virtual environments for development mode, which addressed dependency conflicts while maintaining compatibility with existing Briefcase patterns. Within the managed virtual environment, local app assets are installed in editable mode which create the .pth files to make the assets discoverable by the server. We've started work on the StaticWebDevCommand with proper venv creation and path management specific to web development, app execution remains a planned next step that has been marked with the UnsupportedCommandError error. This work establishes the foundation for exposing the app assets to the web server allowing the live-reload workflow ultimately speeding up the web developement process. These are outlined in the original proposal that you can check out here to see an outline of our next steps for those wanting to carry on where we've left off. ### PyScript Briefcase and Toga Dependencies From fe8096e776b5a9518b94de7ac7dd4dfab6f69631 Mon Sep 17 00:00:00 2001 From: 19766375 <19766375@student.curtin.edu.au> Date: Sat, 18 Oct 2025 14:31:54 +0800 Subject: [PATCH 06/47] Add Lessons Learnt and Future work sections --- .../buzz/2025-curtin-capstone-year-end-blog/contents.lr | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 0c04863486..fc2a6783d5 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -4,7 +4,7 @@ author: Curtin Capstone Team --- body: -Since Febuary, a team of final year students from [Curtin University](https://www.curtin.edu.au) has been collaborating with the BeeWare Project as part of a capstone project for their degrees. This is a summary of the work they have completed. +Since February, a team of final year students from [Curtin University](https://www.curtin.edu.au) has been collaborating with the BeeWare Project as part of a capstone project for their degrees. This is a summary of the work they have completed. # Curtin Capstone @@ -40,8 +40,6 @@ Overview This semester, we worked on redesigning the Briefcase static web build pipeline to implement a deterministic asset insertion system which replaced template-based asset management. The new system enables Toga and other toolkits to embed their configuration files and front-end resources directly into wheel packages. The web template received a redesign which established specific areas for insertion. The present restrictions prevent Toga and other toolkits from taking full control of their front-end operations while working independently from Briefcase. The new system separates tasks while making maintenance easier and enables toolkits to manage their front-end components..... -* To be filled out by Kavi and Caydn - ## Other Contributions Below is a summary of contributions either made during the first semester or in down time during the second semester. @@ -67,3 +65,7 @@ Below is a summary of contributions either made during the first semester or in - PR [#3425](https://github.com/beeware/toga/pull/3425): Table (web widget) (work in progress) - PR [#3402](https://github.com/beeware/toga/pull/3402): Selection (web widget) - PR [#3527](https://github.com/beeware/toga/pull/3527): Slider (web widget) + +## Lessons Learnt + +## Future work From 94aed6620eb028831d62f196d269f1cf54840b6f Mon Sep 17 00:00:00 2001 From: 19766375 <19766375@student.curtin.edu.au> Date: Sat, 18 Oct 2025 14:39:57 +0800 Subject: [PATCH 07/47] Addition to PyScript Briefcase and Toga Dependencies --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index fc2a6783d5..0e58f7aae3 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -36,9 +36,7 @@ This semester, we have successfully laid the groundwork for web platform develop ### PyScript Briefcase and Toga Dependencies -Overview - -This semester, we worked on redesigning the Briefcase static web build pipeline to implement a deterministic asset insertion system which replaced template-based asset management. The new system enables Toga and other toolkits to embed their configuration files and front-end resources directly into wheel packages. The web template received a redesign which established specific areas for insertion. The present restrictions prevent Toga and other toolkits from taking full control of their front-end operations while working independently from Briefcase. The new system separates tasks while making maintenance easier and enables toolkits to manage their front-end components..... +This semester, we worked on redesigning the Briefcase static web build pipeline to implement a deterministic asset insertion system which replaced template-based asset management. The new system enables Toga and other toolkits to embed their configuration files and front-end resources directly into wheel packages. The web template received a redesign which established specific areas for insertion. The previous restrictions prevented Toga and other toolkits from taking full control of their front-end operations while working independently from Briefcase. The new system separates tasks while making maintenance easier and enables toolkits to manage their front-end components, with Toga now owning its own PyScript version, PyScript configuration and Shoelace HTML script. ## Other Contributions From 30064db6cdbe3f09cb54913ed90b955766f29d49 Mon Sep 17 00:00:00 2001 From: 19766375 <19766375@student.curtin.edu.au> Date: Sat, 18 Oct 2025 14:55:55 +0800 Subject: [PATCH 08/47] Lessons learnt paragraph and individual comment sections --- .../contents.lr | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 0e58f7aae3..4c0190bef8 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -66,4 +66,19 @@ Below is a summary of contributions either made during the first semester or in ## Lessons Learnt +This year with BeeWare has marked many valuable lessons taught outside of the class environment. Each of us have now made significant contributions to an open-source project while meeting deadlines and attending weekly standup meetings. This process has allowed us to develop our skills in numerous ways. Below each of us will comment our individual lessons. + +### Kavidu: + +### Mitchell: + +### Veronica: + +### Jayden: + +### Callum: + +### Caydn: + + ## Future work From 7fc341be0ce65ba7b2bae77d19ac9427ed616563 Mon Sep 17 00:00:00 2001 From: 19766375 <19766375@student.curtin.edu.au> Date: Sat, 18 Oct 2025 15:24:57 +0800 Subject: [PATCH 09/47] Add future pyscript work --- .../buzz/2025-curtin-capstone-year-end-blog/contents.lr | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 4c0190bef8..58fbd1ed9d 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -19,7 +19,7 @@ Meet the Team: - Caydn Lee ([caydnn](https://github.com/caydnn)); Software Engineering - Jaeden Mah ([JMah007](https://github.com/JMah007)); Computer Science - Mitchell Pontague ([mEp3ii2](https://github.com/mEp3ii2)); Software Engineering - - Veronica Taniputra ([vt37](https://github.com/vt37)); Cyber Security + - Veronica Taniputra ([vt37](https://github.com/vt37)); Cyber Security In the first semester, our team gained exposure to the BeeWare ecosystem through tackling a variety of small bug fixes within Briefcase and Toga, creating widgets for the web backend in Toga and completing small research tasks into the mechanisms within the BeeWare tools. After this, the team split off into pairs to plan out larger deliverable contributions that would add or changes features within BeeWare. It is these deliverables that the team worked on in the second semester. @@ -82,3 +82,7 @@ This year with BeeWare has marked many valuable lessons taught outside of the cl ## Future work + +- In Toga, `web/src/toga_web/static/toga.css` will need to be converted to an insert. + - Eg: `web/src/toga_web/deploy/inserts/briefcase.css~css` + - Issue [#3822](https://github.com/beeware/toga/issues/3822) From 7b472a3db96a171b666bede0c1c65365a615fb02 Mon Sep 17 00:00:00 2001 From: 19766375 <19766375@student.curtin.edu.au> Date: Sat, 18 Oct 2025 15:41:34 +0800 Subject: [PATCH 10/47] Lessons learnt for Caydn --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 58fbd1ed9d..da7e3124af 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -80,6 +80,10 @@ This year with BeeWare has marked many valuable lessons taught outside of the cl ### Caydn: +- This year has taught me how to work effectively within both a small team and a large open-source project. It's been very eye opening navigating the expectations and workflows that come with contributing to a community-driven codebase. +- I've gained confidence and appreciation for modular architecture through working on the PyScript insertion system. I'm looking forward to see how BeeWare continues to make use of and expand on this system. +- Collaborative feedback and reviews from Russell, Malcolm, and the team, especially Kavidu, have undoubtedly improved our code quality and allowed me to grow as a software engineer. + ## Future work From 0125304b7cb8e514d557657ca0f9acbb26856507 Mon Sep 17 00:00:00 2001 From: mEp3ii2 <74845700+mEp3ii2@users.noreply.github.com> Date: Sat, 18 Oct 2025 21:28:01 +0800 Subject: [PATCH 11/47] Added part for the lessons learnt section --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index da7e3124af..f61a19d2c9 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -72,6 +72,8 @@ This year with BeeWare has marked many valuable lessons taught outside of the cl ### Mitchell: +One of the most valuable lessons from BeeWare came while implementing a virtual environment context manager for Briefcase. During the planning and initial development, I was too focused on how this would work for the web development platform rather than on the actual design of the tool itself. My supervisor pointed out that this PR had applications in other areas within Briefcase and should be designed with those considerations in mind. I had been thinking in terms of "what does the web platform need?" when I should have been asking "what capability does the system need?" This misunderstanding affected my initial timeline and resulted in a much longer development cycle than intended, but it taught me something far more valuable. The real insight was that development shouldn't be task-specific but tool-specific. When working on something, it's not about what works for today's problem but what tool you're building that will work for any problem that emerges tomorrow. Good design means separating mechanism from policy: your tool provides the *how*, and each caller decides the *where*, *when*, and *why*. The goal isn't to predict every use case but to build tools that others can use as-is, without modification. When someone needs virtual environment management six months from now in a completely different context, they shouldn't have to change your code—they should just be able to call it with their parameters and move on. Build it once so it works everywhere, not once per use case. Ultimately, the best code is the code that works today but rather the code that's still working unchanged a year from now. + ### Veronica: ### Jayden: From 21ee5dbe1dd296cfbc93a56d18ba39ba8d30ad7b Mon Sep 17 00:00:00 2001 From: vt37 <110211722+vt37@users.noreply.github.com> Date: Sun, 19 Oct 2025 20:21:47 +0800 Subject: [PATCH 12/47] Added lesson learned --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index f61a19d2c9..b7da9feadb 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -76,6 +76,10 @@ One of the most valuable lessons from BeeWare came while implementing a virtual ### Veronica: +- As this was my first experience on a large, open-source project, I learned how the workflow fits together, for example, navigating existing code, writing clear issues and PRs, and contributing changes with clear commits and messages. +- Regular stand-ups, shared planning, and pairing on tasks taught me how to work effectively in a team, building good communication, and collaboration. +- I've improved my Python skills and gained real experience with Pytest and Playwright while working on the Toga Web Testing prototype. Most importantly, I learned how to design a cross-process system that bridges a pytest test runner to an app running in the browser. + ### Jayden: ### Callum: From 2055fdafbfe6d2a3765ca46226ed2d18c31d321d Mon Sep 17 00:00:00 2001 From: Jaeden Mah Date: Mon, 20 Oct 2025 11:50:14 +0800 Subject: [PATCH 13/47] Added jaeden lessons learnt and added future work for briefcase --- .../2025-curtin-capstone-year-end-blog/contents.lr | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index b7da9feadb..58e8ff4ea5 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -80,7 +80,11 @@ One of the most valuable lessons from BeeWare came while implementing a virtual - Regular stand-ups, shared planning, and pairing on tasks taught me how to work effectively in a team, building good communication, and collaboration. - I've improved my Python skills and gained real experience with Pytest and Playwright while working on the Toga Web Testing prototype. Most importantly, I learned how to design a cross-process system that bridges a pytest test runner to an app running in the browser. -### Jayden: +### Jaeden: + +- Beginning with limited python knowledge increased the learning curve for me however by reflecting at the end of this journey I can see the difference in skills I have gained. +- I am more confident and familiar now working on a project alongside other software engineers discussing ideas whilst maintaining professional communication practises via weekly standup calls and email. +- Working on Briefcase has taught me to simplify my code more. After regular code reviews from Russell, I realised my code was always more complicated than necessary and could often be simplified either by using in built python functions or functions already defined somewhere in the codebase that I wasnt aware of. ### Callum: @@ -96,3 +100,10 @@ One of the most valuable lessons from BeeWare came while implementing a virtual - In Toga, `web/src/toga_web/static/toga.css` will need to be converted to an insert. - Eg: `web/src/toga_web/deploy/inserts/briefcase.css~css` - Issue [#3822](https://github.com/beeware/toga/issues/3822) + +- In Briefcase, the following needs to be implemented for the `Dev Commmand` + - .pth File Parsing Utility (for making the editable installed packages directly accessible to the server) + - Allow the dev environment to support 3rd party package support + - Extend the editable install workflow to desktop platforms increasing developement workflow speed + - Implement a --live/--reload flag to automatically re-bundle changed .py files and refresh the browser + - Issue [#2334](https://github.com/beeware/briefcase/issues/2334) From a756c84a4946e06e6e484d517bec86eb54998c20 Mon Sep 17 00:00:00 2001 From: Callum Horton <109891554+Stringer90@users.noreply.github.com> Date: Mon, 20 Oct 2025 16:37:13 +0800 Subject: [PATCH 14/47] Add lessons learnt (Callum). Add content to 'Future Work' and 'Toga Contributions'. --- .../buzz/2025-curtin-capstone-year-end-blog/contents.lr | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 58e8ff4ea5..d3aa24af57 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -63,6 +63,7 @@ Below is a summary of contributions either made during the first semester or in - PR [#3425](https://github.com/beeware/toga/pull/3425): Table (web widget) (work in progress) - PR [#3402](https://github.com/beeware/toga/pull/3402): Selection (web widget) - PR [#3527](https://github.com/beeware/toga/pull/3527): Slider (web widget) +- PR [#3788](https://github.com/beeware/toga/pull/3788): MultilineTextInput (web widget) ## Lessons Learnt @@ -88,6 +89,8 @@ One of the most valuable lessons from BeeWare came while implementing a virtual ### Callum: +I learned the importance of communication when working on the same codebase as others. Regular discussions and updates were essential to avoid duplicated work and ensure that design decisions were aligned, while also making sure my changes fit seamlessly with others’ work. I also learned the importance of documentation and visibility of work, as writing clear documentation and sharing progress helped others understand the project’s direction and made it easier for future contributors to build on our work. + ### Caydn: - This year has taught me how to work effectively within both a small team and a large open-source project. It's been very eye opening navigating the expectations and workflows that come with contributing to a community-driven codebase. @@ -101,6 +104,9 @@ One of the most valuable lessons from BeeWare came while implementing a virtual - Eg: `web/src/toga_web/deploy/inserts/briefcase.css~css` - Issue [#3822](https://github.com/beeware/toga/issues/3822) +- In Toga, continued development of web backend testing. + - Issue [#3545](https://github.com/beeware/toga/issues/3545) + - In Briefcase, the following needs to be implemented for the `Dev Commmand` - .pth File Parsing Utility (for making the editable installed packages directly accessible to the server) - Allow the dev environment to support 3rd party package support From ef7e6a5d7f54f8c4b376a6b39b1acab343b1df9e Mon Sep 17 00:00:00 2001 From: Callum Horton <109891554+Stringer90@users.noreply.github.com> Date: Tue, 21 Oct 2025 15:56:51 +0800 Subject: [PATCH 15/47] Add 'Toga Web Testing' section content --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index d3aa24af57..06af5d84b3 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -28,7 +28,8 @@ It is these deliverables that the team worked on in the second semester. ### Toga Web Testing -*To be filled out by Veronica and Callum +This semester, we delivered a functional prototype of a testing mechanism for Toga’s Web backend. This prototype addresses the problem outlined in the prior issue, as detailed [here](https://github.com/beeware/toga/issues/3545). The problem was straightforward: there wasn’t a practical, end-to-end way to run automated tests against Toga web apps running in the browser. Our prototype addresses this by introducing a structured communication bridge between the backend and the frontend, widget proxies, and DOM probes. This enables end-to-end tests that tests both widget logic and rendered UI. +At this stage, the work serves as a proof-of-concept approach rather than a finished product. It demonstrates that the core approach works reliably, though additional features and improvements remain to be implemented. A detailed handover report for the current solution and future works can be found [here](https://github.com/beeware/toga/issues/3545). Our draft PR which contains our work can be found [here](https://github.com/beeware/toga/pull/3728). ### Briefcase Web Development Optimisations From 67c534c0f717ab44a85a97f82dbf5b383c77b1ed Mon Sep 17 00:00:00 2001 From: vt37 <110211722+vt37@users.noreply.github.com> Date: Tue, 21 Oct 2025 16:07:06 +0800 Subject: [PATCH 16/47] Added draft PR in future works of Toga web testing --- content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 1 + 1 file changed, 1 insertion(+) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 06af5d84b3..249c53b437 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -107,6 +107,7 @@ I learned the importance of communication when working on the same codebase as o - In Toga, continued development of web backend testing. - Issue [#3545](https://github.com/beeware/toga/issues/3545) + - Draft PR [#3728](https://github.com/beeware/toga/pull/3728) - In Briefcase, the following needs to be implemented for the `Dev Commmand` - .pth File Parsing Utility (for making the editable installed packages directly accessible to the server) From c2ae937e77d246d3519cd1410603ee2991cdc2ee Mon Sep 17 00:00:00 2001 From: Kavidu <132393780+kavi2du@users.noreply.github.com> Date: Wed, 22 Oct 2025 21:37:59 +0800 Subject: [PATCH 17/47] Add resource links for PyScript Briefcase and Toga Dependencies --- .../buzz/2025-curtin-capstone-year-end-blog/contents.lr | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 249c53b437..7438307c22 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -39,6 +39,13 @@ This semester, we have successfully laid the groundwork for web platform develop This semester, we worked on redesigning the Briefcase static web build pipeline to implement a deterministic asset insertion system which replaced template-based asset management. The new system enables Toga and other toolkits to embed their configuration files and front-end resources directly into wheel packages. The web template received a redesign which established specific areas for insertion. The previous restrictions prevented Toga and other toolkits from taking full control of their front-end operations while working independently from Briefcase. The new system separates tasks while making maintenance easier and enables toolkits to manage their front-end components, with Toga now owning its own PyScript version, PyScript configuration and Shoelace HTML script. +To access the related resources for this deliverable: +- View the Briefcase [issue ticket](https://github.com/beeware/briefcase/issues/2337) +- View the Toga pull request [here](https://github.com/beeware/toga/pull/3666) +- View the Briefcase pull request [here](https://github.com/beeware/briefcase/pull/2442) +- View the briefcase-web-static-template pull request [here](https://github.com/beeware/briefcase-web-static-template/pull/21) +- View the documentation pull request [here](https://github.com/beeware/briefcase/pull/2511) + ## Other Contributions Below is a summary of contributions either made during the first semester or in down time during the second semester. From 9b1ace0a59661c6937b12c8966154618fbac4785 Mon Sep 17 00:00:00 2001 From: Jaeden Mah Date: Wed, 22 Oct 2025 22:47:22 +0800 Subject: [PATCH 18/47] Added resource links for Web Dev Optimisation deliverable --- .../buzz/2025-curtin-capstone-year-end-blog/contents.lr | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 7438307c22..82d3d9d953 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -35,6 +35,13 @@ At this stage, the work serves as a proof-of-concept approach rather than a fini This semester, we have successfully laid the groundwork for web platform development mode support in briefcase by making the `dev` command platform-aware and implementing virtual environment management. We refactored the core DevCommand architecture by introducing platform-specific `DevCommand` subclasses like `StaticWebDevCommand` to handle platform-dependent workflows (PR #2419).Next, we implemented virtual environment management by introducing the VirtualEnvironment context manager tool, which provides isolated, configurable virtual environments for development mode, which addressed dependency conflicts while maintaining compatibility with existing Briefcase patterns. Within the managed virtual environment, local app assets are installed in editable mode which create the .pth files to make the assets discoverable by the server. We've started work on the StaticWebDevCommand with proper venv creation and path management specific to web development, app execution remains a planned next step that has been marked with the UnsupportedCommandError error. This work establishes the foundation for exposing the app assets to the web server allowing the live-reload workflow ultimately speeding up the web developement process. These are outlined in the original proposal that you can check out here to see an outline of our next steps for those wanting to carry on where we've left off. +To access the related resources for this deliverable: +- View the discussion post [here](https://github.com/beeware/briefcase/discussions/2282) +- View the Briefcase issue ticket [here](https://github.com/beeware/briefcase/issues/2334) +- View making of the dev command platform aware pull request [here](https://github.com/beeware/briefcase/pull/2419) +- View the virtual environment manager tool pull request [here](https://github.com/beeware/briefcase/pull/2420) +- View the implementation for editable installs pull request [here](https://github.com/beeware/briefcase/pull/2498) + ### PyScript Briefcase and Toga Dependencies This semester, we worked on redesigning the Briefcase static web build pipeline to implement a deterministic asset insertion system which replaced template-based asset management. The new system enables Toga and other toolkits to embed their configuration files and front-end resources directly into wheel packages. The web template received a redesign which established specific areas for insertion. The previous restrictions prevented Toga and other toolkits from taking full control of their front-end operations while working independently from Briefcase. The new system separates tasks while making maintenance easier and enables toolkits to manage their front-end components, with Toga now owning its own PyScript version, PyScript configuration and Shoelace HTML script. From a052ad7493c1c0111980a133b2101979c5d045ae Mon Sep 17 00:00:00 2001 From: Kavidu <132393780+kavi2du@users.noreply.github.com> Date: Thu, 23 Oct 2025 12:41:50 +0800 Subject: [PATCH 19/47] Add lessons learned --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 82d3d9d953..d6e32ad07a 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -86,6 +86,10 @@ This year with BeeWare has marked many valuable lessons taught outside of the cl ### Kavidu: +- Working with BeeWare was my first professional experience outside of university. This was a huge opportunity for me to have hands-on exposure to real-world software development work within open-source environments. I gained experience working with large community-based codebases through issue tracking and pull request management while teaming up with developers who used different time zones and technical expertise. +- The experience helped me develop better abilities to work with others while improving my skills in team collaboration. The combination of weekly stand-ups and code reviews and asynchronous teamwork helped me develop skills to explain technical concepts simply and receive feedback positively while creating code that others could understand and expand. I developed better skills in Python programming, testing and I learned to create testable code that other developers could use to extend the project. +- Working with BeeWare provided me with essential knowledge about open-source software engineering through its combination of technical and collaborative aspects. The development of good software requires designers to create intentional systems while they must communicate effectively to build tools which enable others to continue improving the project after their contribution ends. + ### Mitchell: One of the most valuable lessons from BeeWare came while implementing a virtual environment context manager for Briefcase. During the planning and initial development, I was too focused on how this would work for the web development platform rather than on the actual design of the tool itself. My supervisor pointed out that this PR had applications in other areas within Briefcase and should be designed with those considerations in mind. I had been thinking in terms of "what does the web platform need?" when I should have been asking "what capability does the system need?" This misunderstanding affected my initial timeline and resulted in a much longer development cycle than intended, but it taught me something far more valuable. The real insight was that development shouldn't be task-specific but tool-specific. When working on something, it's not about what works for today's problem but what tool you're building that will work for any problem that emerges tomorrow. Good design means separating mechanism from policy: your tool provides the *how*, and each caller decides the *where*, *when*, and *why*. The goal isn't to predict every use case but to build tools that others can use as-is, without modification. When someone needs virtual environment management six months from now in a completely different context, they shouldn't have to change your code—they should just be able to call it with their parameters and move on. Build it once so it works everywhere, not once per use case. Ultimately, the best code is the code that works today but rather the code that's still working unchanged a year from now. From ae8a906d897f97c4c7edb811010e9d9d5a240beb Mon Sep 17 00:00:00 2001 From: Kavidu <132393780+kavi2du@users.noreply.github.com> Date: Thu, 23 Oct 2025 12:42:55 +0800 Subject: [PATCH 20/47] Minor change --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index d6e32ad07a..f3f9f02b86 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -47,7 +47,7 @@ To access the related resources for this deliverable: This semester, we worked on redesigning the Briefcase static web build pipeline to implement a deterministic asset insertion system which replaced template-based asset management. The new system enables Toga and other toolkits to embed their configuration files and front-end resources directly into wheel packages. The web template received a redesign which established specific areas for insertion. The previous restrictions prevented Toga and other toolkits from taking full control of their front-end operations while working independently from Briefcase. The new system separates tasks while making maintenance easier and enables toolkits to manage their front-end components, with Toga now owning its own PyScript version, PyScript configuration and Shoelace HTML script. To access the related resources for this deliverable: -- View the Briefcase [issue ticket](https://github.com/beeware/briefcase/issues/2337) +- View the [issue ticket](https://github.com/beeware/briefcase/issues/2337) - View the Toga pull request [here](https://github.com/beeware/toga/pull/3666) - View the Briefcase pull request [here](https://github.com/beeware/briefcase/pull/2442) - View the briefcase-web-static-template pull request [here](https://github.com/beeware/briefcase-web-static-template/pull/21) From 34fc15dbeef00776b0d7aaf410f3b2f0f327819a Mon Sep 17 00:00:00 2001 From: 19766375 <19766375@student.curtin.edu.au> Date: Fri, 24 Oct 2025 11:17:10 +0800 Subject: [PATCH 21/47] Add semester 1 blog post link --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index da7e3124af..00536968ba 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -21,7 +21,7 @@ Meet the Team: - Mitchell Pontague ([mEp3ii2](https://github.com/mEp3ii2)); Software Engineering - Veronica Taniputra ([vt37](https://github.com/vt37)); Cyber Security -In the first semester, our team gained exposure to the BeeWare ecosystem through tackling a variety of small bug fixes within Briefcase and Toga, creating widgets for the web backend in Toga and completing small research tasks into the mechanisms within the BeeWare tools. After this, the team split off into pairs to plan out larger deliverable contributions that would add or changes features within BeeWare. +In the first semester, our team gained exposure to the BeeWare ecosystem through tackling a variety of small bug fixes within Briefcase and Toga, creating widgets for the web backend in Toga and completing small research tasks into the mechanisms within the BeeWare tools. More details about our first semester contributions can be found [here](https://beeware.org/news/buzz/2025-curtin-capstone-semester-end-blog). After this, the team split off into pairs to plan out larger deliverable contributions that would add or changes features within BeeWare. It is these deliverables that the team worked on in the second semester. ## What We’ve Worked On This Semester @@ -81,7 +81,7 @@ This year with BeeWare has marked many valuable lessons taught outside of the cl ### Caydn: - This year has taught me how to work effectively within both a small team and a large open-source project. It's been very eye opening navigating the expectations and workflows that come with contributing to a community-driven codebase. -- I've gained confidence and appreciation for modular architecture through working on the PyScript insertion system. I'm looking forward to see how BeeWare continues to make use of and expand on this system. +- I've gained confidence and appreciation for modular architecture through working on the PyScript insertion system. I'm looking forward to seeing how BeeWare continues to make use of and expand on this system. - Collaborative feedback and reviews from Russell, Malcolm, and the team, especially Kavidu, have undoubtedly improved our code quality and allowed me to grow as a software engineer. From cdd9ace908ccd762b0d9296c71e4bddcbaf170a1 Mon Sep 17 00:00:00 2001 From: Caydn Lee <104604345+caydnn@users.noreply.github.com> Date: Fri, 24 Oct 2025 11:17:46 +0800 Subject: [PATCH 22/47] Update content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr Co-authored-by: Russell Keith-Magee --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index f3f9f02b86..cbea95c853 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -33,7 +33,7 @@ At this stage, the work serves as a proof-of-concept approach rather than a fini ### Briefcase Web Development Optimisations -This semester, we have successfully laid the groundwork for web platform development mode support in briefcase by making the `dev` command platform-aware and implementing virtual environment management. We refactored the core DevCommand architecture by introducing platform-specific `DevCommand` subclasses like `StaticWebDevCommand` to handle platform-dependent workflows (PR #2419).Next, we implemented virtual environment management by introducing the VirtualEnvironment context manager tool, which provides isolated, configurable virtual environments for development mode, which addressed dependency conflicts while maintaining compatibility with existing Briefcase patterns. Within the managed virtual environment, local app assets are installed in editable mode which create the .pth files to make the assets discoverable by the server. We've started work on the StaticWebDevCommand with proper venv creation and path management specific to web development, app execution remains a planned next step that has been marked with the UnsupportedCommandError error. This work establishes the foundation for exposing the app assets to the web server allowing the live-reload workflow ultimately speeding up the web developement process. These are outlined in the original proposal that you can check out here to see an outline of our next steps for those wanting to carry on where we've left off. +This semester, we have successfully laid the groundwork for web platform development mode support in Briefcase by making the `dev` command platform-aware, and implementing virtual environment management. We [refactored the core `DevCommand` architecture](https://github.com/beeware/briefcase/pull/2419) by introducing platform-specific `DevCommand` subclasses like `StaticWebDevCommand` to handle platform-dependent workflows). Next, we [implemented virtual environment management](https://github.com/beeware/briefcase/pull/2420) by introducing the VirtualEnvironment context manager tool, which provides isolated, configurable virtual environments for development mode, and [improved the tracking of virtual environment usage by the dev command](https://github.com/beeware/briefcase/pull/2495). We also [modified the handling of local Python assets](https://github.com/beeware/briefcase/pull/2498) so they are installed in editable mode. This work establishes the foundation for exposing the app assets to a development web server allowing the live-reload workflow, ultimately speeding up the web development process. To access the related resources for this deliverable: - View the discussion post [here](https://github.com/beeware/briefcase/discussions/2282) From f34e9bbbb09c0184f5106d1ae2b1b7bd0f4a9cd4 Mon Sep 17 00:00:00 2001 From: Caydn Lee <104604345+caydnn@users.noreply.github.com> Date: Fri, 24 Oct 2025 11:18:10 +0800 Subject: [PATCH 23/47] Update content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr Co-authored-by: Russell Keith-Magee --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index cbea95c853..5d16136ccc 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -28,7 +28,7 @@ It is these deliverables that the team worked on in the second semester. ### Toga Web Testing -This semester, we delivered a functional prototype of a testing mechanism for Toga’s Web backend. This prototype addresses the problem outlined in the prior issue, as detailed [here](https://github.com/beeware/toga/issues/3545). The problem was straightforward: there wasn’t a practical, end-to-end way to run automated tests against Toga web apps running in the browser. Our prototype addresses this by introducing a structured communication bridge between the backend and the frontend, widget proxies, and DOM probes. This enables end-to-end tests that tests both widget logic and rendered UI. +This semester, we delivered a functional prototype of a testing mechanism for Toga’s Web backend. This prototype addresses the problems identified in the [analysis we performed during our first semester](https://github.com/beeware/toga/issues/3545). The problem was straightforward: there wasn’t a practical, end-to-end way to run automated tests against Toga web apps running in the browser. Our prototype addresses this by introducing a structured communication bridge between the backend and the frontend, widget proxies, and DOM probes. This enables end-to-end tests that tests both widget logic and rendered UI. At this stage, the work serves as a proof-of-concept approach rather than a finished product. It demonstrates that the core approach works reliably, though additional features and improvements remain to be implemented. A detailed handover report for the current solution and future works can be found [here](https://github.com/beeware/toga/issues/3545). Our draft PR which contains our work can be found [here](https://github.com/beeware/toga/pull/3728). ### Briefcase Web Development Optimisations From 5c971a4a6ec247d6b3f73695f8f5f02270d82bd6 Mon Sep 17 00:00:00 2001 From: Caydn Lee <104604345+caydnn@users.noreply.github.com> Date: Fri, 24 Oct 2025 11:19:47 +0800 Subject: [PATCH 24/47] Update content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr Co-authored-by: Russell Keith-Magee --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index da75c71bde..3aaaf6110f 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -29,7 +29,7 @@ It is these deliverables that the team worked on in the second semester. ### Toga Web Testing This semester, we delivered a functional prototype of a testing mechanism for Toga’s Web backend. This prototype addresses the problems identified in the [analysis we performed during our first semester](https://github.com/beeware/toga/issues/3545). The problem was straightforward: there wasn’t a practical, end-to-end way to run automated tests against Toga web apps running in the browser. Our prototype addresses this by introducing a structured communication bridge between the backend and the frontend, widget proxies, and DOM probes. This enables end-to-end tests that tests both widget logic and rendered UI. -At this stage, the work serves as a proof-of-concept approach rather than a finished product. It demonstrates that the core approach works reliably, though additional features and improvements remain to be implemented. A detailed handover report for the current solution and future works can be found [here](https://github.com/beeware/toga/issues/3545). Our draft PR which contains our work can be found [here](https://github.com/beeware/toga/pull/3728). +At this stage, the work serves as a proof-of-concept approach rather than a finished product. It demonstrates that the core approach works reliably, though additional features and improvements remain to be implemented. A [prototype implementation](https://github.com/beeware/toga/pull/3728) and [detailed handover report](https://github.com/beeware/toga/issues/3545#issuecomment-3425284525) have been delivered as part of this project. ### Briefcase Web Development Optimisations From fb8dd18170a6e78b09142c2ba79868e84e939517 Mon Sep 17 00:00:00 2001 From: 19766375 <19766375@student.curtin.edu.au> Date: Fri, 24 Oct 2025 11:38:14 +0800 Subject: [PATCH 25/47] Add intro paragraph for future work --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index da75c71bde..0b17a13809 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -119,6 +119,8 @@ I learned the importance of communication when working on the same codebase as o ## Future work +While we have delivered significant changes within the BeeWare ecosystem, continued efforts will be required to complete our works. Each deliverable varies in terms of remaining tasks. For example, the PyScript Dependency Deliverable has only minor changes to remove backwards compatibility, while the Web Testing Deliverable has a few larger chunks of work needed to move the project from a 'proof of concept' to a complete, functional testing suite. Below we have summarised the remaining tasks related to our deliverables: + - In Toga, `web/src/toga_web/static/toga.css` will need to be converted to an insert. - Eg: `web/src/toga_web/deploy/inserts/briefcase.css~css` - Issue [#3822](https://github.com/beeware/toga/issues/3822) From d788e39d41021c43009a86d5426ba36be238c6ea Mon Sep 17 00:00:00 2001 From: Jaeden Mah <107184317+JMah007@users.noreply.github.com> Date: Fri, 24 Oct 2025 11:44:01 +0800 Subject: [PATCH 26/47] Update content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr Co-authored-by: Russell Keith-Magee --- .../buzz/2025-curtin-capstone-year-end-blog/contents.lr | 7 ------- 1 file changed, 7 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index faeea9385a..e3881b2ccd 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -35,13 +35,6 @@ At this stage, the work serves as a proof-of-concept approach rather than a fini This semester, we have successfully laid the groundwork for web platform development mode support in Briefcase by making the `dev` command platform-aware, and implementing virtual environment management. We [refactored the core `DevCommand` architecture](https://github.com/beeware/briefcase/pull/2419) by introducing platform-specific `DevCommand` subclasses like `StaticWebDevCommand` to handle platform-dependent workflows). Next, we [implemented virtual environment management](https://github.com/beeware/briefcase/pull/2420) by introducing the VirtualEnvironment context manager tool, which provides isolated, configurable virtual environments for development mode, and [improved the tracking of virtual environment usage by the dev command](https://github.com/beeware/briefcase/pull/2495). We also [modified the handling of local Python assets](https://github.com/beeware/briefcase/pull/2498) so they are installed in editable mode. This work establishes the foundation for exposing the app assets to a development web server allowing the live-reload workflow, ultimately speeding up the web development process. -To access the related resources for this deliverable: -- View the discussion post [here](https://github.com/beeware/briefcase/discussions/2282) -- View the Briefcase issue ticket [here](https://github.com/beeware/briefcase/issues/2334) -- View making of the dev command platform aware pull request [here](https://github.com/beeware/briefcase/pull/2419) -- View the virtual environment manager tool pull request [here](https://github.com/beeware/briefcase/pull/2420) -- View the implementation for editable installs pull request [here](https://github.com/beeware/briefcase/pull/2498) - ### PyScript Briefcase and Toga Dependencies This semester, we worked on redesigning the Briefcase static web build pipeline to implement a deterministic asset insertion system which replaced template-based asset management. The new system enables Toga and other toolkits to embed their configuration files and front-end resources directly into wheel packages. The web template received a redesign which established specific areas for insertion. The previous restrictions prevented Toga and other toolkits from taking full control of their front-end operations while working independently from Briefcase. The new system separates tasks while making maintenance easier and enables toolkits to manage their front-end components, with Toga now owning its own PyScript version, PyScript configuration and Shoelace HTML script. From 4281bc41699be2ceb8b16acb2929d8f425d0d62b Mon Sep 17 00:00:00 2001 From: 19766375 <19766375@student.curtin.edu.au> Date: Fri, 24 Oct 2025 11:56:08 +0800 Subject: [PATCH 27/47] Add web template future work --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index faeea9385a..1cffdb7c85 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -124,11 +124,11 @@ While we have delivered significant changes within the BeeWare ecosystem, contin - In Toga, `web/src/toga_web/static/toga.css` will need to be converted to an insert. - Eg: `web/src/toga_web/deploy/inserts/briefcase.css~css` - Issue [#3822](https://github.com/beeware/toga/issues/3822) - +- In Briefcase Static Web Template, `{{ cookiecutter.format }}/www/pyscript.toml` will need to be removed. + - Issue [#23](https://github.com/beeware/briefcase-web-static-template/issues/23) - In Toga, continued development of web backend testing. - Issue [#3545](https://github.com/beeware/toga/issues/3545) - Draft PR [#3728](https://github.com/beeware/toga/pull/3728) - - In Briefcase, the following needs to be implemented for the `Dev Commmand` - .pth File Parsing Utility (for making the editable installed packages directly accessible to the server) - Allow the dev environment to support 3rd party package support From f2ff3f721bbd5ba5ae9ad867cbecdad55c0dd1b4 Mon Sep 17 00:00:00 2001 From: 19766375 <19766375@student.curtin.edu.au> Date: Fri, 24 Oct 2025 12:07:38 +0800 Subject: [PATCH 28/47] Add links to pyscript paragraph --- .../buzz/2025-curtin-capstone-year-end-blog/contents.lr | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index a1cf0634f8..cff7e82ee7 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -37,14 +37,7 @@ This semester, we have successfully laid the groundwork for web platform develop ### PyScript Briefcase and Toga Dependencies -This semester, we worked on redesigning the Briefcase static web build pipeline to implement a deterministic asset insertion system which replaced template-based asset management. The new system enables Toga and other toolkits to embed their configuration files and front-end resources directly into wheel packages. The web template received a redesign which established specific areas for insertion. The previous restrictions prevented Toga and other toolkits from taking full control of their front-end operations while working independently from Briefcase. The new system separates tasks while making maintenance easier and enables toolkits to manage their front-end components, with Toga now owning its own PyScript version, PyScript configuration and Shoelace HTML script. - -To access the related resources for this deliverable: -- View the [issue ticket](https://github.com/beeware/briefcase/issues/2337) -- View the Toga pull request [here](https://github.com/beeware/toga/pull/3666) -- View the Briefcase pull request [here](https://github.com/beeware/briefcase/pull/2442) -- View the briefcase-web-static-template pull request [here](https://github.com/beeware/briefcase-web-static-template/pull/21) -- View the documentation pull request [here](https://github.com/beeware/briefcase/pull/2511) +This semester, we worked on redesigning the Briefcase static web build pipeline to implement a deterministic asset insertion system which replaced template-based asset management. The new system enables Toga and other toolkits to embed their configuration files and front-end resources directly [into wheel packages](https://github.com/beeware/toga/pull/3666) which the [new Briefcase functionality](https://github.com/beeware/briefcase/pull/2442) will extract and insert into static web files. The [web template received a redesign](https://github.com/beeware/briefcase-web-static-template/pull/21) which established specific areas for insertion. The [previous restrictions](https://github.com/beeware/briefcase/issues/2337) prevented Toga and other toolkits from taking full control of their front-end operations while working independently from Briefcase. The new system separates tasks while making maintenance easier and enables toolkits to manage their front-end components, with Toga now owning its own PyScript version, PyScript configuration and Shoelace HTML script. ## Other Contributions From b1fe8005f1b462a5abdfd128991ae7fd6359e5ee Mon Sep 17 00:00:00 2001 From: Callum Horton <109891554+Stringer90@users.noreply.github.com> Date: Fri, 24 Oct 2025 12:24:57 +0800 Subject: [PATCH 29/47] Update 'Toga Web Testing' section to become a single paragraph --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index cff7e82ee7..7f8612686c 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -28,8 +28,7 @@ It is these deliverables that the team worked on in the second semester. ### Toga Web Testing -This semester, we delivered a functional prototype of a testing mechanism for Toga’s Web backend. This prototype addresses the problems identified in the [analysis we performed during our first semester](https://github.com/beeware/toga/issues/3545). The problem was straightforward: there wasn’t a practical, end-to-end way to run automated tests against Toga web apps running in the browser. Our prototype addresses this by introducing a structured communication bridge between the backend and the frontend, widget proxies, and DOM probes. This enables end-to-end tests that tests both widget logic and rendered UI. -At this stage, the work serves as a proof-of-concept approach rather than a finished product. It demonstrates that the core approach works reliably, though additional features and improvements remain to be implemented. A [prototype implementation](https://github.com/beeware/toga/pull/3728) and [detailed handover report](https://github.com/beeware/toga/issues/3545#issuecomment-3425284525) have been delivered as part of this project. +This semester, we delivered a functional prototype of a testing mechanism for Toga’s Web backend. This prototype addresses the problems identified in the [analysis we performed during our first semester](https://github.com/beeware/toga/issues/3545). The problem was straightforward: there wasn’t a practical, end-to-end way to run automated tests against Toga web apps running in the browser. Our prototype addresses this by introducing a structured communication bridge between the backend and the frontend, widget proxies, and DOM probes. This enables end-to-end tests that tests both widget logic and rendered UI. At this stage, the work serves as a proof-of-concept approach rather than a finished product. It demonstrates that the core approach works reliably, though additional features and improvements remain to be implemented. A [prototype implementation](https://github.com/beeware/toga/pull/3728) and [detailed handover report](https://github.com/beeware/toga/issues/3545#issuecomment-3425284525) have been delivered as part of this project. ### Briefcase Web Development Optimisations From e749f8eb06a360aa0a2b696389d3c9243883702a Mon Sep 17 00:00:00 2001 From: Callum Horton <109891554+Stringer90@users.noreply.github.com> Date: Fri, 24 Oct 2025 12:27:37 +0800 Subject: [PATCH 30/47] 'Learnt' to 'Learned'. Update 'Callum' section of 'Lessons Learned' --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 7f8612686c..456abb4c2a 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -65,7 +65,7 @@ Below is a summary of contributions either made during the first semester or in - PR [#3527](https://github.com/beeware/toga/pull/3527): Slider (web widget) - PR [#3788](https://github.com/beeware/toga/pull/3788): MultilineTextInput (web widget) -## Lessons Learnt +## Lessons Learned This year with BeeWare has marked many valuable lessons taught outside of the class environment. Each of us have now made significant contributions to an open-source project while meeting deadlines and attending weekly standup meetings. This process has allowed us to develop our skills in numerous ways. Below each of us will comment our individual lessons. @@ -93,7 +93,8 @@ One of the most valuable lessons from BeeWare came while implementing a virtual ### Callum: -I learned the importance of communication when working on the same codebase as others. Regular discussions and updates were essential to avoid duplicated work and ensure that design decisions were aligned, while also making sure my changes fit seamlessly with others’ work. I also learned the importance of documentation and visibility of work, as writing clear documentation and sharing progress helped others understand the project’s direction and made it easier for future contributors to build on our work. +- I learned the importance of communication when working on the same codebase as others. Regular discussions and updates were essential to avoid duplicated work and ensure that design decisions were aligned, while also making sure my changes fit seamlessly with others’ work. +- I have also learned the importance of documentation and visibility of work, as writing clear documentation and sharing progress helped others understand the project’s direction and made it easier for future contributors to build on our work. ### Caydn: From a0505693334713457665cd646750238fbfbc786a Mon Sep 17 00:00:00 2001 From: 19766375 <19766375@student.curtin.edu.au> Date: Fri, 24 Oct 2025 12:35:15 +0800 Subject: [PATCH 31/47] Update Caydn lessons learned --- .../buzz/2025-curtin-capstone-year-end-blog/contents.lr | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 456abb4c2a..5fc4d79e94 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -98,10 +98,11 @@ One of the most valuable lessons from BeeWare came while implementing a virtual ### Caydn: -- This year has taught me how to work effectively within both a small team and a large open-source project. It's been very eye opening navigating the expectations and workflows that come with contributing to a community-driven codebase. -- I've gained confidence and appreciation for modular architecture through working on the PyScript insertion system. I'm looking forward to seeing how BeeWare continues to make use of and expand on this system. -- Collaborative feedback and reviews from Russell, Malcolm, and the team, especially Kavidu, have undoubtedly improved our code quality and allowed me to grow as a software engineer. +This year has taught me how to work effectively within both a small team and a large open-source project. It's been very eye opening navigating the expectations and workflows that come with contributing to a community-driven codebase. During the first semester, I found that I didn't know how much to push or when to create a PR. This meant that Russell couldn't perceive work being completed and that I could not receive help in situations where I was stuck. With our semester 2 work, especially as we were working in pairs, I made it a goal to commit and push any slight change. This drastically improved our collaboration efforts. +I've also gained confidence and appreciation for modular architecture through working on the PyScript insertion system. Previously, having only worked on smaller codebases of my own or for group assignment work, I've never truly worked on multiple systems that would interact with each other. Having spent time reconfiguring dependencies within BeeWare, I've now learned the value of planning and researching before implementation. The untangling of Toga and the Static Web Template has been some of the most fun I've had within programming thus far. I'm looking forward to seeing how BeeWare continues to make use of and expand on this system. + +Collaborative feedback and reviews from Russell, Malcolm, and the team, especially Kavidu, have undoubtedly improved our code quality and allowed me to grow as a software engineer. While initially scary to have frequent check ins with my code, I've now placed much more importance in these reviews. Not only does it allow you to gain insight into what may be going wrong, but more experienced developers tend to impart their wisdom upon you. For me, this now means I pay much closer attention to deep indentation as well as the readability and traceability of my written code. ## Future work From 3a7ed0635dc669c45e3fca8ecfdf87b876f2e7fe Mon Sep 17 00:00:00 2001 From: Callum Horton <109891554+Stringer90@users.noreply.github.com> Date: Fri, 24 Oct 2025 12:39:32 +0800 Subject: [PATCH 32/47] Update Lessons Learned: Callum --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 5fc4d79e94..699f65b262 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -93,8 +93,7 @@ One of the most valuable lessons from BeeWare came while implementing a virtual ### Callum: -- I learned the importance of communication when working on the same codebase as others. Regular discussions and updates were essential to avoid duplicated work and ensure that design decisions were aligned, while also making sure my changes fit seamlessly with others’ work. -- I have also learned the importance of documentation and visibility of work, as writing clear documentation and sharing progress helped others understand the project’s direction and made it easier for future contributors to build on our work. +I learned the importance of communication when working on the same codebase as others. Regular discussions and updates were essential to avoid duplicated work and ensure that design decisions were aligned, while also making sure my changes fit seamlessly with others’ work. I have also learned the importance of documentation and visibility of work, as writing clear documentation and sharing progress helped others understand the project’s direction and made it easier for future contributors to build on our work. ### Caydn: From c3949ec60f285a0c04e2e83961ebdf107ce46904 Mon Sep 17 00:00:00 2001 From: Callum Horton <109891554+Stringer90@users.noreply.github.com> Date: Fri, 24 Oct 2025 13:15:43 +0800 Subject: [PATCH 33/47] Update Lessons Learned: Callum --- .../buzz/2025-curtin-capstone-year-end-blog/contents.lr | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 699f65b262..16d279db05 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -93,7 +93,11 @@ One of the most valuable lessons from BeeWare came while implementing a virtual ### Callum: -I learned the importance of communication when working on the same codebase as others. Regular discussions and updates were essential to avoid duplicated work and ensure that design decisions were aligned, while also making sure my changes fit seamlessly with others’ work. I have also learned the importance of documentation and visibility of work, as writing clear documentation and sharing progress helped others understand the project’s direction and made it easier for future contributors to build on our work. +Throughout this project, I learned that effective communication is one of the most important aspects of collaborative software development. Working on the same codebase as others required constant coordination to prevent overlap and ensure our work aligned technically and conceptually. Regular discussions and updates helped us avoid duplicated effort and made it easier to maintain a shared understanding of the project’s direction. + +I learned that transparency, even when work is still in progress, is far more valuable than delaying updates. This also ties closely to the importance of maintaining visibility in an open-source context, where an up-to-date and traceable history of commits allows others to easily follow development and provide frequent, relevant feedback. Consistently sharing progress, even in small increments, made collaboration far more effective. + +Finally, I learned the importance of handover reports and how essential they are for communicating the current state and future direction of a project. A well-written handover report provides clarity on what has been implemented, what has not worked as intended, and what areas require further development or refactoring. It also serves as a bridge for future contributors, ensuring that knowledge is not lost and that others can continue the work without repeating past mistakes. Through this process, I came to appreciate that clear documentation at the end of a project is just as valuable as the technical work itself, as it enables continuity and long-term maintainability. ### Caydn: From f4192d491ee148604b2f8cafb1584a7130c7ce04 Mon Sep 17 00:00:00 2001 From: vt37 <110211722+vt37@users.noreply.github.com> Date: Fri, 24 Oct 2025 22:48:07 +0800 Subject: [PATCH 34/47] Update lesson learned --- .../buzz/2025-curtin-capstone-year-end-blog/contents.lr | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 16d279db05..9736024e09 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -81,9 +81,11 @@ One of the most valuable lessons from BeeWare came while implementing a virtual ### Veronica: -- As this was my first experience on a large, open-source project, I learned how the workflow fits together, for example, navigating existing code, writing clear issues and PRs, and contributing changes with clear commits and messages. -- Regular stand-ups, shared planning, and pairing on tasks taught me how to work effectively in a team, building good communication, and collaboration. -- I've improved my Python skills and gained real experience with Pytest and Playwright while working on the Toga Web Testing prototype. Most importantly, I learned how to design a cross-process system that bridges a pytest test runner to an app running in the browser. +As this was my first experience contributing to a large, open-source project, I learned how the workflow fits together—navigating existing code, writing clear issues and PRs, and contributing changes with clear commits and messages. I also learned to keep my work visible, pushing incremental changes, even when not fully finished, with clear notes on status and next steps so reviewers can follow my progress. That was a shift for me, as I used to wait for “finished” work before committing. + +Regular stand-ups, shared planning, and pairing on tasks taught me how to work effectively in a team. Through this, I developed stronger communication and collaboration skills and gained a better understanding of how individual contributions fit within a larger shared goal, especially when it comes to coding workflows. + +I've improved my Python skills and gained real experience with Pytest and Playwright while working on the Toga Web Testing prototype. Most importantly, I learned how to design a cross-process system that bridges a pytest test runner to an app running in the browser, which gave me a much deeper understanding of both testing frameworks and web automation. ### Jaeden: From 2c38fca5238a24b429d10f1f9d8a571ac77bf990 Mon Sep 17 00:00:00 2001 From: vt37 <110211722+vt37@users.noreply.github.com> Date: Fri, 24 Oct 2025 23:02:40 +0800 Subject: [PATCH 35/47] Addressed "Briefcase Contributions" comments --- .../contents.lr | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 9736024e09..2c74dc4ebb 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -44,14 +44,14 @@ Below is a summary of contributions either made during the first semester or in ### Briefcase Contributions -- PR [#2198](https://github.com/beeware/briefcase/pull/2198): Add boolean question (feature) -- PR [#2103](https://github.com/beeware/briefcase/pull/2203): Add XML content escaping filter to cookiecutter.py (feature) -- PR [#2199](https://github.com/beeware/briefcase/pull/2199): Add catch exception when deleting JDK (bugfix) -- PR [#2229](https://github.com/beeware/briefcase/pull/2229): Accept other changelog name and extension (feature) -- PR [#2201](https://github.com/beeware/briefcase/pull/2201): Add ``--app`` option to briefcase build/package (feature) -- PR [#2214](https://github.com/beeware/briefcase/pull/2214): Add ``--app`` option to briefcase create/update (feature) -- PR [#2236](https://github.com/beeware/briefcase/pull/2236): Normalise contribution docs with Toga (documentation) -- PR [#54](https://github.com/beeware/briefcase-windows-VisualStudio-template/pull/54): Use XML content escaping filter to Visual Studio template. (bugfix) +- PR [#2198](https://github.com/beeware/briefcase/pull/2198): Add an API for asking boolean questions. +- PR [#2103](https://github.com/beeware/briefcase/pull/2203): Add XML content escaping filter to cookiecutter.py. +- PR [#2199](https://github.com/beeware/briefcase/pull/2199): Add catch exception when deleting JDK. +- PR [#2229](https://github.com/beeware/briefcase/pull/2229): Accept other changelog name and extension. +- PR [#2201](https://github.com/beeware/briefcase/pull/2201): Add ``--app`` option to briefcase build/package. +- PR [#2214](https://github.com/beeware/briefcase/pull/2214): Add ``--app`` option to briefcase create/update. +- PR [#2236](https://github.com/beeware/briefcase/pull/2236): Normalise contribution docs with Toga. +- PR [#54](https://github.com/beeware/briefcase-windows-VisualStudio-template/pull/54): Use XML content escaping filter to Visual Studio template. ### Toga Contributions From 896840d639a6b068b98a9a2c0403aea45d66cf12 Mon Sep 17 00:00:00 2001 From: mEp3ii2 <74845700+mEp3ii2@users.noreply.github.com> Date: Sat, 25 Oct 2025 19:20:24 +0800 Subject: [PATCH 36/47] Updated lessons learned section for better clarity --- .../2025-curtin-capstone-year-end-blog/contents.lr | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 2c74dc4ebb..718cc1a190 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -77,7 +77,17 @@ This year with BeeWare has marked many valuable lessons taught outside of the cl ### Mitchell: -One of the most valuable lessons from BeeWare came while implementing a virtual environment context manager for Briefcase. During the planning and initial development, I was too focused on how this would work for the web development platform rather than on the actual design of the tool itself. My supervisor pointed out that this PR had applications in other areas within Briefcase and should be designed with those considerations in mind. I had been thinking in terms of "what does the web platform need?" when I should have been asking "what capability does the system need?" This misunderstanding affected my initial timeline and resulted in a much longer development cycle than intended, but it taught me something far more valuable. The real insight was that development shouldn't be task-specific but tool-specific. When working on something, it's not about what works for today's problem but what tool you're building that will work for any problem that emerges tomorrow. Good design means separating mechanism from policy: your tool provides the *how*, and each caller decides the *where*, *when*, and *why*. The goal isn't to predict every use case but to build tools that others can use as-is, without modification. When someone needs virtual environment management six months from now in a completely different context, they shouldn't have to change your code—they should just be able to call it with their parameters and move on. Build it once so it works everywhere, not once per use case. Ultimately, the best code is the code that works today but rather the code that's still working unchanged a year from now. +One of the most valuable lessons from BeeWare came while implementing a virtual environment context manager for Briefcase. + +During the planning and initial development, I was too focused on how this would work for the web development platform rather than on the actual design of the tool itself. My supervisor pointed out that this PR had applications in other areas within Briefcase and should be designed with those considerations in mind. + +I had been thinking in terms of "what does the web platform need?" when I should have been asking "what capability does the system need?" This misunderstanding affected my initial timeline and resulted in a much longer development cycle than intended, but it taught me something far more valuable. The real insight was that development shouldn't be task-specific but tool-specific. + +When working on something, it's not about what works for today's problem but what tool you're building that will work for any problem that emerges tomorrow. Good design means separating mechanism from policy: your tool provides the *how*, and each caller decides the *where*, *when*, and *why*. The goal isn't to predict every use case but to build tools that others can use as-is, without modification. + +When someone needs virtual environment management six months from now in a completely different context, they shouldn't have to change your code—they should just be able to call it with their parameters and move on. Build it once so it works everywhere, not once per use case. + +Ultimately, the best code is not the code that works today but rather the code that's still working unchanged a year from now. ### Veronica: From 3b08ab2766a207302953cde47486a40b7acba459 Mon Sep 17 00:00:00 2001 From: Jaeden Mah Date: Sun, 26 Oct 2025 11:01:33 +0800 Subject: [PATCH 37/47] Changed lessons learnt to paragraph --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index e3881b2ccd..417a9b98ea 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -95,9 +95,7 @@ One of the most valuable lessons from BeeWare came while implementing a virtual ### Jaeden: -- Beginning with limited python knowledge increased the learning curve for me however by reflecting at the end of this journey I can see the difference in skills I have gained. -- I am more confident and familiar now working on a project alongside other software engineers discussing ideas whilst maintaining professional communication practises via weekly standup calls and email. -- Working on Briefcase has taught me to simplify my code more. After regular code reviews from Russell, I realised my code was always more complicated than necessary and could often be simplified either by using in built python functions or functions already defined somewhere in the codebase that I wasnt aware of. +Beginning with limited python knowledge increased the learning curve for me however by reflecting at the end of this journey I can see the difference in skills I have gained. I am more confident and familiar now working on a project alongside other software engineers discussing ideas whilst maintaining professional communication practises via weekly standup calls and email. Working on Briefcase has taught me to simplify my code more. After regular code reviews from Russell, I realised my code was always more complicated than necessary and could often be simplified either by using in built python functions or functions already defined somewhere in the codebase that I wasnt aware of. ### Callum: From 43b3d6c01f05ae7a8238837d10ef774408a9caa5 Mon Sep 17 00:00:00 2001 From: caydnn Date: Sun, 26 Oct 2025 21:26:31 +0800 Subject: [PATCH 38/47] Break kavi's lessons into paragraphs --- .../buzz/2025-curtin-capstone-year-end-blog/contents.lr | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index a00ee11593..4f0c280b23 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -71,9 +71,11 @@ This year with BeeWare has marked many valuable lessons taught outside of the cl ### Kavidu: -- Working with BeeWare was my first professional experience outside of university. This was a huge opportunity for me to have hands-on exposure to real-world software development work within open-source environments. I gained experience working with large community-based codebases through issue tracking and pull request management while teaming up with developers who used different time zones and technical expertise. -- The experience helped me develop better abilities to work with others while improving my skills in team collaboration. The combination of weekly stand-ups and code reviews and asynchronous teamwork helped me develop skills to explain technical concepts simply and receive feedback positively while creating code that others could understand and expand. I developed better skills in Python programming, testing and I learned to create testable code that other developers could use to extend the project. -- Working with BeeWare provided me with essential knowledge about open-source software engineering through its combination of technical and collaborative aspects. The development of good software requires designers to create intentional systems while they must communicate effectively to build tools which enable others to continue improving the project after their contribution ends. +Working with BeeWare was my first professional experience outside of university. This was a huge opportunity for me to have hands-on exposure to real-world software development work within open-source environments. I gained experience working with large community-based codebases through issue tracking and pull request management while teaming up with developers who used different time zones and technical expertise. + +The experience helped me develop better abilities to work with others while improving my skills in team collaboration. The combination of weekly stand-ups and code reviews and asynchronous teamwork helped me develop skills to explain technical concepts simply and receive feedback positively while creating code that others could understand and expand. I developed better skills in Python programming, testing and I learned to create testable code that other developers could use to extend the project. + +Working with BeeWare provided me with essential knowledge about open-source software engineering through its combination of technical and collaborative aspects. The development of good software requires designers to create intentional systems while they must communicate effectively to build tools which enable others to continue improving the project after their contribution ends. ### Mitchell: From ddb495956a31f6728f8bd1fcef84065deb128793 Mon Sep 17 00:00:00 2001 From: caydnn Date: Sun, 26 Oct 2025 21:28:15 +0800 Subject: [PATCH 39/47] Remove semester one contributions as sem1 post linked above --- .../contents.lr | 27 ------------------- 1 file changed, 27 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 4f0c280b23..b5483d3d42 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -38,33 +38,6 @@ This semester, we have successfully laid the groundwork for web platform develop This semester, we worked on redesigning the Briefcase static web build pipeline to implement a deterministic asset insertion system which replaced template-based asset management. The new system enables Toga and other toolkits to embed their configuration files and front-end resources directly [into wheel packages](https://github.com/beeware/toga/pull/3666) which the [new Briefcase functionality](https://github.com/beeware/briefcase/pull/2442) will extract and insert into static web files. The [web template received a redesign](https://github.com/beeware/briefcase-web-static-template/pull/21) which established specific areas for insertion. The [previous restrictions](https://github.com/beeware/briefcase/issues/2337) prevented Toga and other toolkits from taking full control of their front-end operations while working independently from Briefcase. The new system separates tasks while making maintenance easier and enables toolkits to manage their front-end components, with Toga now owning its own PyScript version, PyScript configuration and Shoelace HTML script. -## Other Contributions - -Below is a summary of contributions either made during the first semester or in down time during the second semester. - -### Briefcase Contributions - -- PR [#2198](https://github.com/beeware/briefcase/pull/2198): Add an API for asking boolean questions. -- PR [#2103](https://github.com/beeware/briefcase/pull/2203): Add XML content escaping filter to cookiecutter.py. -- PR [#2199](https://github.com/beeware/briefcase/pull/2199): Add catch exception when deleting JDK. -- PR [#2229](https://github.com/beeware/briefcase/pull/2229): Accept other changelog name and extension. -- PR [#2201](https://github.com/beeware/briefcase/pull/2201): Add ``--app`` option to briefcase build/package. -- PR [#2214](https://github.com/beeware/briefcase/pull/2214): Add ``--app`` option to briefcase create/update. -- PR [#2236](https://github.com/beeware/briefcase/pull/2236): Normalise contribution docs with Toga. -- PR [#54](https://github.com/beeware/briefcase-windows-VisualStudio-template/pull/54): Use XML content escaping filter to Visual Studio template. - -### Toga Contributions - -- PR [#3259](https://github.com/beeware/toga/pull/3259): Add web screenshots (documentation) -- PR [#3466](https://github.com/beeware/toga/pull/3466): Fix button click handling in Toga Web backend to correctly trigger event (bugfix) -- PR [#3338](https://github.com/beeware/toga/pull/3338): DateInput (web widget) -- PR [#3405](https://github.com/beeware/toga/pull/3405): TimeInput (web widget) -- PR [#3362](https://github.com/beeware/toga/pull/3362): ScrollContainer (web widget) -- PR [#3425](https://github.com/beeware/toga/pull/3425): Table (web widget) (work in progress) -- PR [#3402](https://github.com/beeware/toga/pull/3402): Selection (web widget) -- PR [#3527](https://github.com/beeware/toga/pull/3527): Slider (web widget) -- PR [#3788](https://github.com/beeware/toga/pull/3788): MultilineTextInput (web widget) - ## Lessons Learned This year with BeeWare has marked many valuable lessons taught outside of the class environment. Each of us have now made significant contributions to an open-source project while meeting deadlines and attending weekly standup meetings. This process has allowed us to develop our skills in numerous ways. Below each of us will comment our individual lessons. From 4d0d8ed79978c19bf594b1218aeba233d0b983f1 Mon Sep 17 00:00:00 2001 From: Kavidu <132393780+kavi2du@users.noreply.github.com> Date: Mon, 27 Oct 2025 04:32:46 +0800 Subject: [PATCH 40/47] Minor change --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index b5483d3d42..f7789b993a 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -48,7 +48,7 @@ Working with BeeWare was my first professional experience outside of university. The experience helped me develop better abilities to work with others while improving my skills in team collaboration. The combination of weekly stand-ups and code reviews and asynchronous teamwork helped me develop skills to explain technical concepts simply and receive feedback positively while creating code that others could understand and expand. I developed better skills in Python programming, testing and I learned to create testable code that other developers could use to extend the project. -Working with BeeWare provided me with essential knowledge about open-source software engineering through its combination of technical and collaborative aspects. The development of good software requires designers to create intentional systems while they must communicate effectively to build tools which enable others to continue improving the project after their contribution ends. +Moreover, working with BeeWare provided me with essential knowledge about open-source software engineering through its combination of technical and collaborative aspects. Throughout the process, I learned that the development of good software requires designers to create intentional systems while they must communicate effectively to build tools which enable others to continue improving the project after their contribution ends. ### Mitchell: From bf8dfe177da7b7ae95fa1f3dbf5c58b6ea6f85d5 Mon Sep 17 00:00:00 2001 From: Caydn Lee <104604345+caydnn@users.noreply.github.com> Date: Mon, 27 Oct 2025 13:15:32 +0800 Subject: [PATCH 41/47] Update content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr Co-authored-by: Russell Keith-Magee --- content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 1 + 1 file changed, 1 insertion(+) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index f7789b993a..addbe13552 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -22,6 +22,7 @@ Meet the Team: - Veronica Taniputra ([vt37](https://github.com/vt37)); Cyber Security In the first semester, our team gained exposure to the BeeWare ecosystem through tackling a variety of small bug fixes within Briefcase and Toga, creating widgets for the web backend in Toga and completing small research tasks into the mechanisms within the BeeWare tools. More details about our first semester contributions can be found [here](https://beeware.org/news/buzz/2025-curtin-capstone-semester-end-blog). After this, the team split off into pairs to plan out larger deliverable contributions that would add or changes features within BeeWare. + It is these deliverables that the team worked on in the second semester. ## What We’ve Worked On This Semester From 619a6c005057fd23132689300b074ad2e5964e6f Mon Sep 17 00:00:00 2001 From: Caydn Lee <104604345+caydnn@users.noreply.github.com> Date: Mon, 27 Oct 2025 13:17:01 +0800 Subject: [PATCH 42/47] Update content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr Co-authored-by: Russell Keith-Magee --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index addbe13552..c891a8f116 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -33,7 +33,7 @@ This semester, we delivered a functional prototype of a testing mechanism for To ### Briefcase Web Development Optimisations -This semester, we have successfully laid the groundwork for web platform development mode support in Briefcase by making the `dev` command platform-aware, and implementing virtual environment management. We [refactored the core `DevCommand` architecture](https://github.com/beeware/briefcase/pull/2419) by introducing platform-specific `DevCommand` subclasses like `StaticWebDevCommand` to handle platform-dependent workflows). Next, we [implemented virtual environment management](https://github.com/beeware/briefcase/pull/2420) by introducing the VirtualEnvironment context manager tool, which provides isolated, configurable virtual environments for development mode, and [improved the tracking of virtual environment usage by the dev command](https://github.com/beeware/briefcase/pull/2495). We also [modified the handling of local Python assets](https://github.com/beeware/briefcase/pull/2498) so they are installed in editable mode. This work establishes the foundation for exposing the app assets to a development web server allowing the live-reload workflow, ultimately speeding up the web development process. +We also laid the groundwork for web platform development mode support in Briefcase by making the `dev` command platform-aware, and implementing virtual environment management. We [refactored the core `DevCommand` architecture](https://github.com/beeware/briefcase/pull/2419) by introducing platform-specific `DevCommand` subclasses like `StaticWebDevCommand` to handle platform-dependent workflows). Next, we [implemented virtual environment management](https://github.com/beeware/briefcase/pull/2420) by introducing the VirtualEnvironment context manager tool, which provides isolated, configurable virtual environments for development mode, and [improved the tracking of virtual environment usage by the dev command](https://github.com/beeware/briefcase/pull/2495). We also [modified the handling of local Python assets](https://github.com/beeware/briefcase/pull/2498) so they are installed in editable mode. This work establishes the foundation for exposing the app assets to a development web server allowing the live-reload workflow, ultimately speeding up the web development process. ### PyScript Briefcase and Toga Dependencies From 0855fe10c8aade7d0d565931017138051b54c2eb Mon Sep 17 00:00:00 2001 From: Caydn Lee <104604345+caydnn@users.noreply.github.com> Date: Mon, 27 Oct 2025 13:17:14 +0800 Subject: [PATCH 43/47] Update content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr Co-authored-by: Russell Keith-Magee --- .../news/buzz/2025-curtin-capstone-year-end-blog/contents.lr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index c891a8f116..09fdc15b6f 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -37,7 +37,7 @@ We also laid the groundwork for web platform development mode support in Briefca ### PyScript Briefcase and Toga Dependencies -This semester, we worked on redesigning the Briefcase static web build pipeline to implement a deterministic asset insertion system which replaced template-based asset management. The new system enables Toga and other toolkits to embed their configuration files and front-end resources directly [into wheel packages](https://github.com/beeware/toga/pull/3666) which the [new Briefcase functionality](https://github.com/beeware/briefcase/pull/2442) will extract and insert into static web files. The [web template received a redesign](https://github.com/beeware/briefcase-web-static-template/pull/21) which established specific areas for insertion. The [previous restrictions](https://github.com/beeware/briefcase/issues/2337) prevented Toga and other toolkits from taking full control of their front-end operations while working independently from Briefcase. The new system separates tasks while making maintenance easier and enables toolkits to manage their front-end components, with Toga now owning its own PyScript version, PyScript configuration and Shoelace HTML script. +Lastly, we worked on redesigning the Briefcase static web build pipeline to implement a deterministic asset insertion system which replaced template-based asset management. The new system enables Toga and other toolkits to embed their configuration files and front-end resources directly [into wheel packages](https://github.com/beeware/toga/pull/3666) which the [new Briefcase functionality](https://github.com/beeware/briefcase/pull/2442) will extract and insert into static web files. The [web template received a redesign](https://github.com/beeware/briefcase-web-static-template/pull/21) which established specific areas for insertion. The [previous restrictions](https://github.com/beeware/briefcase/issues/2337) prevented Toga and other toolkits from taking full control of their front-end operations while working independently from Briefcase. The new system separates tasks while making maintenance easier and enables toolkits to manage their front-end components, with Toga now owning its own PyScript version, PyScript configuration and Shoelace HTML script. ## Lessons Learned From 926112d84e6b8d305b97308f8aaf6dfbdb6258da Mon Sep 17 00:00:00 2001 From: Callum Horton <109891554+Stringer90@users.noreply.github.com> Date: Thu, 30 Oct 2025 08:43:11 +0800 Subject: [PATCH 44/47] Update future work section for web testing. --- .../buzz/2025-curtin-capstone-year-end-blog/contents.lr | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 09fdc15b6f..b850bce81d 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -29,7 +29,7 @@ It is these deliverables that the team worked on in the second semester. ### Toga Web Testing -This semester, we delivered a functional prototype of a testing mechanism for Toga’s Web backend. This prototype addresses the problems identified in the [analysis we performed during our first semester](https://github.com/beeware/toga/issues/3545). The problem was straightforward: there wasn’t a practical, end-to-end way to run automated tests against Toga web apps running in the browser. Our prototype addresses this by introducing a structured communication bridge between the backend and the frontend, widget proxies, and DOM probes. This enables end-to-end tests that tests both widget logic and rendered UI. At this stage, the work serves as a proof-of-concept approach rather than a finished product. It demonstrates that the core approach works reliably, though additional features and improvements remain to be implemented. A [prototype implementation](https://github.com/beeware/toga/pull/3728) and [detailed handover report](https://github.com/beeware/toga/issues/3545#issuecomment-3425284525) have been delivered as part of this project. +This semester, we delivered a functional prototype of a testing mechanism for Toga’s Web backend. This prototype addresses the problems identified in the [analysis we performed during our first semester](https://github.com/beeware/toga/issues/3545). The problem was straightforward: there wasn’t a practical, end-to-end way to run automated tests against Toga web apps running in the browser. Our prototype addresses this by introducing a structured communication bridge between the backend and the frontend, widget proxies, and DOM probes. This enables end-to-end tests that tests both widget logic and rendered UI. At this stage, the work serves as a proof-of-concept approach rather than a finished product. It demonstrates that the core approach works reliably, though additional features and improvements remain to be implemented. Our proof-of-concept prototype can be found within our [draft pull request](https://github.com/beeware/toga/pull/3728). ### Briefcase Web Development Optimisations @@ -102,9 +102,9 @@ While we have delivered significant changes within the BeeWare ecosystem, contin - Issue [#3822](https://github.com/beeware/toga/issues/3822) - In Briefcase Static Web Template, `{{ cookiecutter.format }}/www/pyscript.toml` will need to be removed. - Issue [#23](https://github.com/beeware/briefcase-web-static-template/issues/23) -- In Toga, continued development of web backend testing. - - Issue [#3545](https://github.com/beeware/toga/issues/3545) - - Draft PR [#3728](https://github.com/beeware/toga/pull/3728) + +The Toga Web Testing prototype provides a strong foundation for a complete testing framework but remains at a proof-of-concept stage. Future work will focus on extending test coverage across more widgets, stabilising the proxy and RPC systems and integration with Briefcase to enable a unified startup process for web tests. More details on the current implementation and next steps can be found in the [Toga Web Testing Handover Report](https://github.com/beeware/toga/issues/3545#issuecomment-3425284525). + - In Briefcase, the following needs to be implemented for the `Dev Commmand` - .pth File Parsing Utility (for making the editable installed packages directly accessible to the server) - Allow the dev environment to support 3rd party package support From 019f054e9afcf7902b1a1f167f11f685bc9f8fbb Mon Sep 17 00:00:00 2001 From: 19766375 <19766375@student.curtin.edu.au> Date: Fri, 31 Oct 2025 08:31:27 +0800 Subject: [PATCH 45/47] Update insertion system future work --- .../buzz/2025-curtin-capstone-year-end-blog/contents.lr | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index b850bce81d..830790dd5c 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -97,12 +97,6 @@ Collaborative feedback and reviews from Russell, Malcolm, and the team, especial While we have delivered significant changes within the BeeWare ecosystem, continued efforts will be required to complete our works. Each deliverable varies in terms of remaining tasks. For example, the PyScript Dependency Deliverable has only minor changes to remove backwards compatibility, while the Web Testing Deliverable has a few larger chunks of work needed to move the project from a 'proof of concept' to a complete, functional testing suite. Below we have summarised the remaining tasks related to our deliverables: -- In Toga, `web/src/toga_web/static/toga.css` will need to be converted to an insert. - - Eg: `web/src/toga_web/deploy/inserts/briefcase.css~css` - - Issue [#3822](https://github.com/beeware/toga/issues/3822) -- In Briefcase Static Web Template, `{{ cookiecutter.format }}/www/pyscript.toml` will need to be removed. - - Issue [#23](https://github.com/beeware/briefcase-web-static-template/issues/23) - The Toga Web Testing prototype provides a strong foundation for a complete testing framework but remains at a proof-of-concept stage. Future work will focus on extending test coverage across more widgets, stabilising the proxy and RPC systems and integration with Briefcase to enable a unified startup process for web tests. More details on the current implementation and next steps can be found in the [Toga Web Testing Handover Report](https://github.com/beeware/toga/issues/3545#issuecomment-3425284525). - In Briefcase, the following needs to be implemented for the `Dev Commmand` @@ -111,3 +105,5 @@ The Toga Web Testing prototype provides a strong foundation for a complete testi - Extend the editable install workflow to desktop platforms increasing developement workflow speed - Implement a --live/--reload flag to automatically re-bundle changed .py files and refresh the browser - Issue [#2334](https://github.com/beeware/briefcase/issues/2334) + +With the majority of the Insertion System completed and merged, only one small cleanup task remains. Once sometime has passed and the current changes have been released, the `web/src/toga_web/static/toga.css` in Toga will need to be converted to an insert along the lines of `web/src/toga_web/deploy/inserts/briefcase.css~css`. More details can be found in the [issue ticket](https://github.com/beeware/toga/issues/3822). \ No newline at end of file From 3b4989b892238ec5f5a57e407bd70db2ba997af0 Mon Sep 17 00:00:00 2001 From: Jaeden Mah Date: Fri, 31 Oct 2025 13:38:52 +0800 Subject: [PATCH 46/47] Future works for Web Dev Optimisation changed to a paragraph --- .../2025-curtin-capstone-year-end-blog/contents.lr | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 830790dd5c..9a9dde9dee 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -99,11 +99,6 @@ While we have delivered significant changes within the BeeWare ecosystem, contin The Toga Web Testing prototype provides a strong foundation for a complete testing framework but remains at a proof-of-concept stage. Future work will focus on extending test coverage across more widgets, stabilising the proxy and RPC systems and integration with Briefcase to enable a unified startup process for web tests. More details on the current implementation and next steps can be found in the [Toga Web Testing Handover Report](https://github.com/beeware/toga/issues/3545#issuecomment-3425284525). -- In Briefcase, the following needs to be implemented for the `Dev Commmand` - - .pth File Parsing Utility (for making the editable installed packages directly accessible to the server) - - Allow the dev environment to support 3rd party package support - - Extend the editable install workflow to desktop platforms increasing developement workflow speed - - Implement a --live/--reload flag to automatically re-bundle changed .py files and refresh the browser - - Issue [#2334](https://github.com/beeware/briefcase/issues/2334) - -With the majority of the Insertion System completed and merged, only one small cleanup task remains. Once sometime has passed and the current changes have been released, the `web/src/toga_web/static/toga.css` in Toga will need to be converted to an insert along the lines of `web/src/toga_web/deploy/inserts/briefcase.css~css`. More details can be found in the [issue ticket](https://github.com/beeware/toga/issues/3822). \ No newline at end of file +The Briefcase Dev Command now has the basic foundations to support a true development workflow for web applications, enabling live-editing and hot-reload without requiring wheel builds. The remaining work focuses on implementing a parser to locate editable source code paths from .pth files, creating symlinks or file copies in the web project’s static directory so PyScript can load modules directly from local source files, generating the necessary HTML and PyScript configuration to run these modules in the browser, and integrating the development server to bring all these components together. Once completed, these enhancements will enable developers to modify Python source files and instantly see their changes reflected in the browser. More details on teh current implementation and next steps can be found in [Briefcase Dev Command Optimisation Handover Report](https://github.com/beeware/briefcase/issues/2334#issuecomment-3443501856). + +With the majority of the Insertion System completed and merged, only one small cleanup task remains. Once sometime has passed and the current changes have been released, the `web/src/toga_web/static/toga.css` in Toga will need to be converted to an insert along the lines of `web/src/toga_web/deploy/inserts/briefcase.css~css`. More details can be found in the [issue ticket](https://github.com/beeware/toga/issues/3822). From 1aae52992fa421836c8bebb2fb974457c762c6b0 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Tue, 4 Nov 2025 08:07:56 +0800 Subject: [PATCH 47/47] Final copy edits. --- .../contents.lr | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr index 9a9dde9dee..a829421351 100644 --- a/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr +++ b/content/news/buzz/2025-curtin-capstone-year-end-blog/contents.lr @@ -21,7 +21,7 @@ Meet the Team: - Mitchell Pontague ([mEp3ii2](https://github.com/mEp3ii2)); Software Engineering - Veronica Taniputra ([vt37](https://github.com/vt37)); Cyber Security -In the first semester, our team gained exposure to the BeeWare ecosystem through tackling a variety of small bug fixes within Briefcase and Toga, creating widgets for the web backend in Toga and completing small research tasks into the mechanisms within the BeeWare tools. More details about our first semester contributions can be found [here](https://beeware.org/news/buzz/2025-curtin-capstone-semester-end-blog). After this, the team split off into pairs to plan out larger deliverable contributions that would add or changes features within BeeWare. +In the first semester, our team gained exposure to the BeeWare ecosystem through tackling a variety of small bug fixes within Briefcase and Toga, creating widgets for the web backend in Toga and completing small research tasks into the mechanisms within the BeeWare tools. More details about our first semester contributions can be found [in our first semester report](https://beeware.org/news/buzz/2025-curtin-capstone-semester-end-blog). After this, the team split off into pairs to plan out larger deliverable contributions that would add or changes features within BeeWare. It is these deliverables that the team worked on in the second semester. @@ -29,27 +29,27 @@ It is these deliverables that the team worked on in the second semester. ### Toga Web Testing -This semester, we delivered a functional prototype of a testing mechanism for Toga’s Web backend. This prototype addresses the problems identified in the [analysis we performed during our first semester](https://github.com/beeware/toga/issues/3545). The problem was straightforward: there wasn’t a practical, end-to-end way to run automated tests against Toga web apps running in the browser. Our prototype addresses this by introducing a structured communication bridge between the backend and the frontend, widget proxies, and DOM probes. This enables end-to-end tests that tests both widget logic and rendered UI. At this stage, the work serves as a proof-of-concept approach rather than a finished product. It demonstrates that the core approach works reliably, though additional features and improvements remain to be implemented. Our proof-of-concept prototype can be found within our [draft pull request](https://github.com/beeware/toga/pull/3728). +This semester, we delivered a functional prototype of a testing mechanism for Toga’s Web backend. This prototype addresses the problems identified in the [analysis we performed during our first semester](https://github.com/beeware/toga/issues/3545). The problem was straightforward: there wasn’t a practical, end-to-end way to run automated tests against Toga web apps running in the browser. Our prototype addresses this by introducing a structured communication bridge between the backend, and the frontend, widget proxies, and DOM probes. This enables end-to-end tests that tests both widget logic and rendered UI. At this stage, the work serves as a proof-of-concept approach rather than a finished product. It demonstrates that the core approach works reliably, though additional features and improvements remain to be implemented. Our proof-of-concept prototype can be found within our [draft pull request](https://github.com/beeware/toga/pull/3728). ### Briefcase Web Development Optimisations -We also laid the groundwork for web platform development mode support in Briefcase by making the `dev` command platform-aware, and implementing virtual environment management. We [refactored the core `DevCommand` architecture](https://github.com/beeware/briefcase/pull/2419) by introducing platform-specific `DevCommand` subclasses like `StaticWebDevCommand` to handle platform-dependent workflows). Next, we [implemented virtual environment management](https://github.com/beeware/briefcase/pull/2420) by introducing the VirtualEnvironment context manager tool, which provides isolated, configurable virtual environments for development mode, and [improved the tracking of virtual environment usage by the dev command](https://github.com/beeware/briefcase/pull/2495). We also [modified the handling of local Python assets](https://github.com/beeware/briefcase/pull/2498) so they are installed in editable mode. This work establishes the foundation for exposing the app assets to a development web server allowing the live-reload workflow, ultimately speeding up the web development process. +We also laid the groundwork for web platform development mode support in Briefcase by making the `dev` command platform-aware, and implementing virtual environment management. We [refactored the core `DevCommand` architecture](https://github.com/beeware/briefcase/pull/2419) by introducing platform-specific `DevCommand` subclasses like `StaticWebDevCommand` to handle platform-dependent workflows). Next, we [implemented virtual environment management](https://github.com/beeware/briefcase/pull/2420) by introducing the VirtualEnvironment context manager tool, which provides isolated, configurable virtual environments for development mode, and [improved the tracking of virtual environment usage by the dev command](https://github.com/beeware/briefcase/pull/2495). We also [modified the handling of local Python assets](https://github.com/beeware/briefcase/pull/2498) so they are installed in editable mode. This work establishes the foundation for exposing the app assets to a development web server allowing the live-reload workflow, ultimately speeding up the web development process. ### PyScript Briefcase and Toga Dependencies -Lastly, we worked on redesigning the Briefcase static web build pipeline to implement a deterministic asset insertion system which replaced template-based asset management. The new system enables Toga and other toolkits to embed their configuration files and front-end resources directly [into wheel packages](https://github.com/beeware/toga/pull/3666) which the [new Briefcase functionality](https://github.com/beeware/briefcase/pull/2442) will extract and insert into static web files. The [web template received a redesign](https://github.com/beeware/briefcase-web-static-template/pull/21) which established specific areas for insertion. The [previous restrictions](https://github.com/beeware/briefcase/issues/2337) prevented Toga and other toolkits from taking full control of their front-end operations while working independently from Briefcase. The new system separates tasks while making maintenance easier and enables toolkits to manage their front-end components, with Toga now owning its own PyScript version, PyScript configuration and Shoelace HTML script. +Lastly, we worked on redesigning the Briefcase static web build pipeline to implement a deterministic asset insertion system which replaced template-based asset management. The new system enables Toga and other toolkits to embed their configuration files and front-end resources directly [into wheel packages](https://github.com/beeware/toga/pull/3666) which [new Briefcase functionality](https://github.com/beeware/briefcase/pull/2442) will extract and insert into static web files. The [web template received a redesign](https://github.com/beeware/briefcase-web-static-template/pull/21) which established specific areas for insertion. The [previous restrictions](https://github.com/beeware/briefcase/issues/2337) prevented Toga and other toolkits from taking full control of their front-end operations while working independently from Briefcase. The new system separates tasks while making maintenance easier and enables toolkits to manage their front-end components, with Toga now owning its own PyScript version, PyScript configuration and Shoelace HTML script. ## Lessons Learned -This year with BeeWare has marked many valuable lessons taught outside of the class environment. Each of us have now made significant contributions to an open-source project while meeting deadlines and attending weekly standup meetings. This process has allowed us to develop our skills in numerous ways. Below each of us will comment our individual lessons. +This year with BeeWare has marked many valuable lessons taught outside of the class environment. Each of us have now made significant contributions to an Open Source project while meeting deadlines and attending weekly standup meetings. This process has allowed us to develop our skills in numerous ways. Below each of us will comment our individual lessons. ### Kavidu: -Working with BeeWare was my first professional experience outside of university. This was a huge opportunity for me to have hands-on exposure to real-world software development work within open-source environments. I gained experience working with large community-based codebases through issue tracking and pull request management while teaming up with developers who used different time zones and technical expertise. +Working with BeeWare was my first professional experience outside of university. This was a huge opportunity for me to have hands-on exposure to real-world software development work within Open Source environments. I gained experience working with large community-based codebases through issue tracking and pull request management while teaming up with developers who used different time zones and technical expertise. The experience helped me develop better abilities to work with others while improving my skills in team collaboration. The combination of weekly stand-ups and code reviews and asynchronous teamwork helped me develop skills to explain technical concepts simply and receive feedback positively while creating code that others could understand and expand. I developed better skills in Python programming, testing and I learned to create testable code that other developers could use to extend the project. -Moreover, working with BeeWare provided me with essential knowledge about open-source software engineering through its combination of technical and collaborative aspects. Throughout the process, I learned that the development of good software requires designers to create intentional systems while they must communicate effectively to build tools which enable others to continue improving the project after their contribution ends. +Moreover, working with BeeWare provided me with essential knowledge about Open Source software engineering through its combination of technical and collaborative aspects. Throughout the process, I learned that the development of good software requires designers to create intentional systems while they must communicate effectively to build tools which enable others to continue improving the project after their contribution ends. ### Mitchell: @@ -67,27 +67,27 @@ Ultimately, the best code is not the code that works today but rather the code t ### Veronica: -As this was my first experience contributing to a large, open-source project, I learned how the workflow fits together—navigating existing code, writing clear issues and PRs, and contributing changes with clear commits and messages. I also learned to keep my work visible, pushing incremental changes, even when not fully finished, with clear notes on status and next steps so reviewers can follow my progress. That was a shift for me, as I used to wait for “finished” work before committing. +As this was my first experience contributing to a large, Open Source project, I learned how the workflow fits together—navigating existing code, writing clear issues and PRs, and contributing changes with clear commits and messages. I also learned to keep my work visible, pushing incremental changes, even when not fully finished, with clear notes on status and next steps so reviewers can follow my progress. That was a shift for me, as I used to wait for “finished” work before committing. Regular stand-ups, shared planning, and pairing on tasks taught me how to work effectively in a team. Through this, I developed stronger communication and collaboration skills and gained a better understanding of how individual contributions fit within a larger shared goal, especially when it comes to coding workflows. -I've improved my Python skills and gained real experience with Pytest and Playwright while working on the Toga Web Testing prototype. Most importantly, I learned how to design a cross-process system that bridges a pytest test runner to an app running in the browser, which gave me a much deeper understanding of both testing frameworks and web automation. +I've improved my Python skills and gained real experience with Pytest and Playwright while working on the Toga Web Testing prototype. Most importantly, I learned how to design a cross-process system that bridges a Pytest test runner to an app running in the browser, which gave me a much deeper understanding of both testing frameworks and web automation. ### Jaeden: -Beginning with limited python knowledge increased the learning curve for me however by reflecting at the end of this journey I can see the difference in skills I have gained. I am more confident and familiar now working on a project alongside other software engineers discussing ideas whilst maintaining professional communication practises via weekly standup calls and email. Working on Briefcase has taught me to simplify my code more. After regular code reviews from Russell, I realised my code was always more complicated than necessary and could often be simplified either by using in built python functions or functions already defined somewhere in the codebase that I wasnt aware of. +Beginning with limited Python knowledge increased the learning curve for me however by reflecting at the end of this journey I can see the difference in skills I have gained. I am more confident and familiar now working on a project alongside other software engineers discussing ideas whilst maintaining professional communication practises via weekly standup calls and email. Working on Briefcase has taught me to simplify my code more. After regular code reviews from Russell, I realised my code was always more complicated than necessary and could often be simplified either by using in built Python functions or functions already defined somewhere in the codebase that I wasn't aware of. ### Callum: Throughout this project, I learned that effective communication is one of the most important aspects of collaborative software development. Working on the same codebase as others required constant coordination to prevent overlap and ensure our work aligned technically and conceptually. Regular discussions and updates helped us avoid duplicated effort and made it easier to maintain a shared understanding of the project’s direction. -I learned that transparency, even when work is still in progress, is far more valuable than delaying updates. This also ties closely to the importance of maintaining visibility in an open-source context, where an up-to-date and traceable history of commits allows others to easily follow development and provide frequent, relevant feedback. Consistently sharing progress, even in small increments, made collaboration far more effective. +I learned that transparency, even when work is still in progress, is far more valuable than delaying updates. This also ties closely to the importance of maintaining visibility in an Open Source context, where an up-to-date and traceable history of commits allows others to easily follow development and provide frequent, relevant feedback. Consistently sharing progress, even in small increments, made collaboration far more effective. Finally, I learned the importance of handover reports and how essential they are for communicating the current state and future direction of a project. A well-written handover report provides clarity on what has been implemented, what has not worked as intended, and what areas require further development or refactoring. It also serves as a bridge for future contributors, ensuring that knowledge is not lost and that others can continue the work without repeating past mistakes. Through this process, I came to appreciate that clear documentation at the end of a project is just as valuable as the technical work itself, as it enables continuity and long-term maintainability. ### Caydn: -This year has taught me how to work effectively within both a small team and a large open-source project. It's been very eye opening navigating the expectations and workflows that come with contributing to a community-driven codebase. During the first semester, I found that I didn't know how much to push or when to create a PR. This meant that Russell couldn't perceive work being completed and that I could not receive help in situations where I was stuck. With our semester 2 work, especially as we were working in pairs, I made it a goal to commit and push any slight change. This drastically improved our collaboration efforts. +This year has taught me how to work effectively within both a small team and a large Open Source project. It's been very eye opening navigating the expectations and workflows that come with contributing to a community-driven codebase. During the first semester, I found that I didn't know how much to push or when to create a PR. This meant that Russell couldn't perceive work being completed and that I could not receive help in situations where I was stuck. With our semester 2 work, especially as we were working in pairs, I made it a goal to commit and push any slight change. This drastically improved our collaboration efforts. I've also gained confidence and appreciation for modular architecture through working on the PyScript insertion system. Previously, having only worked on smaller codebases of my own or for group assignment work, I've never truly worked on multiple systems that would interact with each other. Having spent time reconfiguring dependencies within BeeWare, I've now learned the value of planning and researching before implementation. The untangling of Toga and the Static Web Template has been some of the most fun I've had within programming thus far. I'm looking forward to seeing how BeeWare continues to make use of and expand on this system. @@ -95,10 +95,12 @@ Collaborative feedback and reviews from Russell, Malcolm, and the team, especial ## Future work -While we have delivered significant changes within the BeeWare ecosystem, continued efforts will be required to complete our works. Each deliverable varies in terms of remaining tasks. For example, the PyScript Dependency Deliverable has only minor changes to remove backwards compatibility, while the Web Testing Deliverable has a few larger chunks of work needed to move the project from a 'proof of concept' to a complete, functional testing suite. Below we have summarised the remaining tasks related to our deliverables: +While we have delivered significant changes within the BeeWare ecosystem, continued efforts will be required to complete our works. Each deliverable varies in terms of remaining tasks. The Toga Web Testing prototype provides a strong foundation for a complete testing framework but remains at a proof-of-concept stage. Future work will focus on extending test coverage across more widgets, stabilising the proxy and RPC systems and integration with Briefcase to enable a unified startup process for web tests. More details on the current implementation and next steps can be found in the [Toga Web Testing Handover Report](https://github.com/beeware/toga/issues/3545#issuecomment-3425284525). -The Briefcase Dev Command now has the basic foundations to support a true development workflow for web applications, enabling live-editing and hot-reload without requiring wheel builds. The remaining work focuses on implementing a parser to locate editable source code paths from .pth files, creating symlinks or file copies in the web project’s static directory so PyScript can load modules directly from local source files, generating the necessary HTML and PyScript configuration to run these modules in the browser, and integrating the development server to bring all these components together. Once completed, these enhancements will enable developers to modify Python source files and instantly see their changes reflected in the browser. More details on teh current implementation and next steps can be found in [Briefcase Dev Command Optimisation Handover Report](https://github.com/beeware/briefcase/issues/2334#issuecomment-3443501856). +The Briefcase Dev Command now has the basic foundations to support a true development workflow for web applications, enabling live-editing and hot-reload without requiring wheel builds. The remaining work focuses on implementing a parser to locate editable source code paths from `.pth` files, creating symlinks or file copies in the web project’s static directory so PyScript can load modules directly from local source files, generating the necessary HTML and PyScript configuration to run these modules in the browser, and integrating the development server to bring all these components together. Once completed, these enhancements will enable developers to modify Python source files and instantly see their changes reflected in the browser. More details on the current implementation and next steps can be found in [Briefcase Dev Command Optimisation Handover Report](https://github.com/beeware/briefcase/issues/2334#issuecomment-3443501856). -With the majority of the Insertion System completed and merged, only one small cleanup task remains. Once sometime has passed and the current changes have been released, the `web/src/toga_web/static/toga.css` in Toga will need to be converted to an insert along the lines of `web/src/toga_web/deploy/inserts/briefcase.css~css`. More details can be found in the [issue ticket](https://github.com/beeware/toga/issues/3822). +With the majority of the insertion system completed and merged, only one small cleanup task remains. Once sometime has passed and the current changes have been released, the static CSS files in Toga's web backend will need to be converted to inserts using the new configuration format. More details can be found in the [issue ticket](https://github.com/beeware/toga/issues/3822). +--- +pub_date: 2025-11-04