Skip to content

Commit 820082f

Browse files
Week 11,12 and Final Updates by Krish (#414)
1 parent 6eaf0c2 commit 820082f

File tree

3 files changed

+223
-0
lines changed

3 files changed

+223
-0
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
title: "GSoC '25 Week 11 Update by Krish Pandya"
3+
excerpt: "Tray Widgets, Activity Examples, and More!"
4+
category: "DEVELOPER NEWS"
5+
date: "2025-08-17"
6+
slug: "2025-08-17-gsoc-25-mostlyk-week11"
7+
author: "@/constants/MarkdownFiles/authors/krish-pandya.md"
8+
tags: "gsoc25,sugarlabs,week11,mostlyk,tray,activity updates"
9+
image: "assets/Images/GSOC.webp"
10+
---
11+
12+
# Week 11: Tray Widgets, Activity Examples, and More
13+
14+
**Project:** [GTK4 Exploration](https://summerofcode.withgoogle.com/programs/2025/projects/rsHsYZKy)
15+
16+
**Mentors:** [Walter Bender](https://github.com/walterbender), [Ibiam Chihurumnaya Ibiam](https://github.com/chimosky), [Juan Pablo Ugarte](https://github.com/xjuan)
17+
18+
**Reporting Period:** August 10, 2025 – August 17, 2025
19+
20+
---
21+
22+
## Trays, Activities
23+
24+
This after updating the datastore and objectchooser modules, I focused on porting the tray widget and updated the Activity.py even more featuring all the old used components of the GTK3 Toolkit.
25+
26+
## What’s New This Week?
27+
28+
### Presence
29+
30+
- Integrated the Presence from previous GTK3 toolkit into the new GTK4 toolkit.
31+
- Communication between activities is now possible using the Presence.
32+
33+
### Activity Expansion
34+
35+
- Updated to handle all the old components of the GTK3 toolkit. Except the 2 Bundling methods.
36+
- Demonstrated using 2 new examples.
37+
38+
#### Simple Activity Example
39+
40+
- Demonstrates basic usage of the new toolkit components.
41+
- Allows saving and loading text files using the new modules.
42+
- Showcases the integration of various widgets and functionalities.
43+
44+
#### Additional Activity Example
45+
46+
- Showcases more complex way of integrating Custom Widgets.
47+
- Users can draw shapes, use tools from toolbar and save as well as preview drawings.
48+
49+
### Documentation
50+
51+
- With the library maturing, we have to fake root some stuff while running on local machines.
52+
- Added how to present metadata and how to fake root in the README.
53+
54+
## VM Testing
55+
56+
- Tested the new library on a VM with Fedora 42 SoaS.
57+
58+
## Closing Thoughts and Next Steps
59+
60+
- The library has matured enough that I should start documenting for the last weeks and future plans for the contributors on how to continue from here and where it leads on.
61+
- Start doing sphinx documentation for the library. (_foreshadowing as it has already been started at the time of writing this_)
62+
- Bundle discussion with mentors for next week’s blog post.
63+
64+
---
65+
66+
## Resources & Links
67+
68+
- [Project Page](https://summerofcode.withgoogle.com/programs/2025/projects/rsHsYZKy)
69+
- [New Python Library (sugar-toolkit-gtk4-py)](https://github.com/MostlyKIGuess/sugar-toolkit-gtk4-py)
70+
- [New C Library (sugar-ext)](https://github.com/sugarlabs/sugar-ext)
71+
- [Game Demo Video](https://youtu.be/B517C_LTCns)
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
---
2+
title: "GSoC '25 Week 12 Update by Krish Pandya"
3+
excerpt: "Sphinx , Bundling Discussion, and Future Plans"
4+
category: "DEVELOPER NEWS"
5+
date: "2025-08-25"
6+
slug: "2025-08-25-gsoc-25-mostlyk-week12"
7+
author: "@/constants/MarkdownFiles/authors/krish-pandya.md"
8+
tags: "gsoc25,sugarlabs,week12,mostlyk,sphinx,bundling updates"
9+
image: "assets/Images/GSOC.webp"
10+
---
11+
12+
13+
# Week 12: Sphinx , Bundling Discussion, and Future Plans
14+
15+
**Project:** [GTK4 Exploration](https://summerofcode.withgoogle.com/programs/2025/projects/rsHsYZKy)
16+
17+
**Mentors:** [Walter Bender](https://github.com/walterbender), [Ibiam Chihurumnaya Ibiam](https://github.com/chimosky), [Juan Pablo Ugarte](https://github.com/xjuan)
18+
19+
**Reporting Period:** August 17, 2025 – August 25, 2025
20+
21+
---
22+
23+
## Sphinx Documentation
24+
25+
Having the whole library in a working state and getting finished with Activity, which is the essential element to make any sort of activity, I started working on the Sphinx documentation for the library.
26+
27+
Link: [GTK4-Toolkit-Documentation](https://sugar-toolkit-gtk4-py.readthedocs.io/)
28+
29+
## What’s New This Week?
30+
31+
### Documentation
32+
33+
- Contains everything from examples to API references.
34+
- Indexed in the manner of:
35+
- Activity Framework ( sugar.activity )
36+
- Graphics and UI (sugar.graphics)
37+
- Data and Storage (sugar.datastore )
38+
- Bundle Management (Yet to be implemented)
39+
- Collaboration (sugar.presence )
40+
- Event System (sugar.dispatch)
41+
- Core Utils (sugar package)
42+
- Examples
43+
44+
### Meet Regarding Bundling
45+
46+
- Had a pleasure to meet Martin , Juan , Walter and Ibiam to discuss the bundling methods.
47+
- We decided on to using the old method of bundling as it is more straightforward and easier to implement , for the most part GTK independent.
48+
- Bundling was implemented and Hello World activity was successfully bundled and tested on a clean Fedora Sugar on a Stick.
49+
50+
## ComboBox, ToggleToolButton and ToolComboBox
51+
52+
- Added 3 new widgets to the library.
53+
- Added the corresponding examples for the same as well it's tests.
54+
- Will keep adding more widgets as I go.
55+
56+
### Future Sugar Plans
57+
58+
- Flatpak Ports
59+
- Sugar Shell Ports
60+
- Complete Wayland Port
61+
62+
## Closing Thoughts and Next Steps
63+
64+
- Documentation was possible as I had written docstrings for most of the methods and classes while writing the library. ( I am so happy about this )
65+
- Documentation covers everything from examples to API references.
66+
- Will write the final blog post and wrap up the project and how to continue from here for future contributors.
67+
68+
---
69+
70+
## Resources & Links
71+
72+
- [Project Page](https://summerofcode.withgoogle.com/programs/2025/projects/rsHsYZKy)
73+
- [New Python Library (sugar-toolkit-gtk4-py)](https://github.com/MostlyKIGuess/sugar-toolkit-gtk4-py)
74+
- [Documentation](https://sugar-toolkit-gtk4-py.readthedocs.io/en/latest/)
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
---
2+
title: "GSoC '25 Final Week Update by Krish Pandya"
3+
excerpt: "Everything Everywhere all at Once"
4+
category: "DEVELOPER NEWS"
5+
date: "2025-09-01"
6+
slug: "2025-09-01-gsoc-25-mostlyk-final"
7+
author: "@/constants/MarkdownFiles/authors/krish-pandya.md"
8+
tags: "gsoc25,sugarlabs,final week,mostlyk,bundling updates,future"
9+
image: "assets/Images/GSOC.webp"
10+
---
11+
12+
13+
# Final Week: Everything Everywhere all at Once
14+
15+
**Project:** [GTK4 Exploration](https://summerofcode.withgoogle.com/programs/2025/projects/rsHsYZKy)
16+
17+
**Mentors:** [Walter Bender](https://github.com/walterbender), [Ibiam Chihurumnaya Ibiam](https://github.com/chimosky), [Juan Pablo Ugarte](https://github.com/xjuan)
18+
19+
**Reporting Period:** August 17, 2025 – August 25, 2025
20+
21+
---
22+
23+
## Confession Time
24+
25+
This marks the end of my GSoC blogs, (_more blogs yet to come_) but this, better be the magnus opus of all my blogs. I have been postponing this blog for a while because I wanted it to start perfect , end perfect and be perfect throughout. So it starts with confession time, this blog is not perfect, this idea is not perfect. I started off for port with the idea of it being perfect, but GSoC taught me a lot of things, one of them is "perfection is the enemy of done". So here I am, writing this blog, not perfect but done.
26+
27+
## Humble Beginnings
28+
29+
The first few changes were too simple almost, read GTK3 line by line, translate it to GTK4 and voila, done. Starting with update `gi.require_version`, fixing build includes, this was all tutorial. Then the first boss fight, `GdkEvent`!. In GTK3 you can just reach the code and grab whatever you want, but in GTK4, that pointer ->x was shut down. This was the first "welcome to the game". Demanded new philosophy, stop translating , start thinking!
30+
31+
The project was re-structured from the second week itself and we decided to write a new library from scratch, keeping the old GTK3 toolkit as reference.
32+
( The pivotal call in Week 2 with my mentors Juan Pablo and Ibiam wasn't just a check in , it was complete teardown of the old plan and a fresh start.)
33+
It was ambitious, but I was determined to make it work. First few weeks were like a breeze, I write, I poke at it, write an example and done. Write the blog for that week and done. But as the weeks progressed, the project got more and more complex.
34+
The first time I felt truly stuck was Palettes, when I had to deal with X11 , wayland discourse and all that jazz. Sticking with it, finally got it working.
35+
As the weeks progressed, workflows changed, now it's not about writing code, it's about finding origins of the bugs, reading GTK4 docs, reading protocols and old code deeply. Refactor more , write less.
36+
37+
## Absurdity and the Obstacle
38+
39+
We are around few weeks in, to give you the sense of idea that I had. I would explain it in a way where, I knew where everything was, where everything would go, but wasn't sure if it was correct or not. It was a limbo. The shift from direct signals to abstract Gesture objects and the death of `draw()` in favor of `snapshot()` were major shifts. Quietly things ran, it was the mid-point and I was able to build "Super Ball Dodge", a simple game that was my proof of work, a sign that the new library was functional and could do something dynamic. But the real test was yet to come.
40+
41+
Everything was going well, then came _Palettes_ the Obstacle. On X11 , you could ask, "Where is my widget on the screen?" and get a straight answer. On Wayland? for security reasons it was forbidden knowledge. This was a tough one, many gnome discourses later, my popovers started to pop. By week 10, the biggest challenges were behind me.
42+
43+
## Path Forward
44+
45+
With the graphics layer stable, it was time to bring back datastore, presence, and all the other things that made Sugar, Sugar.
46+
Most were GTK independent, so it was just a matter of plugging them in and testing. We had some plans for modernizing the bundling system, but that will be for future ( check week-12 future plans ) . The goal was to get the new library stable and usable, and that was achieved.
47+
The library was pushed to [pypi](https://pypi.org/project/sugar-toolkit-gtk4/#description) and can be installed via pip:
48+
49+
```
50+
pip install sugar-toolkit-gtk4
51+
```
52+
53+
Finally for the last week, I focused on documentation, the map for future explorers. Documentation built with sphinx, is clean, comprehensive and live at [sugar-toolkit-gtk4-py.readthedocs.io](https://sugar-toolkit-gtk4-py.readthedocs.io/en/latest/).
54+
55+
I will attach all the videos and links at the end of the blog, but for now, I want to thank my mentors Walter Bender, Ibiam Chihurumnaya Ibiam and Juan Pablo Ugarte for their constant support and guidance. This journey has been incredible, and I am grateful for the opportunity to contribute to Sugar Labs and the open-source community. Also a thanks to Martin Abente for his help with bundling discussions.
56+
57+
And now, for the first time in 13 blogs, there will be no "Future Plans." Instead, I'll leave you with a quote from one of my favorite films, Perfect Days:
58+
[clip](https://youtu.be/F24IoeMlM3Y?si=xeY2M1n1B-fzz0kS)the quote says. "Next Time is Next Time, Now is Now".
59+
60+
So here I am, signing off, not with future plans, but with a promise to keep my presence and contributions, keep learning and keep growing.
61+
Thank you once again, it has been a great summer!
62+
63+
## Resources & Links
64+
65+
- [Project Page](https://summerofcode.withgoogle.com/programs/2025/projects/rsHsYZKy)
66+
- [New Python Library (sugar-toolkit-gtk4-py)](https://github.com/MostlyKIGuess/sugar-toolkit-gtk4-py)
67+
- [Documentation](https://sugar-toolkit-gtk4-py.readthedocs.io/en/latest/)
68+
- PyPI: [sugar-toolkit-gtk4](https://pypi.org/project/sugar-toolkit-gtk4/#description)
69+
70+
## Video Demonstrations
71+
72+
_Update with the final Sugar Presentation video once available_
73+
74+
- [Event Controller Video](https://youtu.be/m0gwwo_0ZDE)
75+
- [Sugar Python Initialization Video](https://youtu.be/OD1PBOK3g94)
76+
- [Menu and Style Video](https://youtu.be/-WTojjHpQLs)
77+
- [Animations, ToolBox and Super Ball Dodge](https://youtu.be/B517C_LTCns)
78+
- [Palettes, Popovers and Bundling](https://youtu.be/gbaG9CaJJ-U)

0 commit comments

Comments
 (0)