Speaker
Description
When I first opened the codebase of GNOME Gitg to help with its GTK4 migration, I was staring at thousands of lines of deprecated API calls, removed widget types, and a build system that refused to cooperate. The natural instinct was to rewrite everything at once. But that approach gets your merge requests ignored and your motivation burned out fast.
Instead, I adopted a strategy of micro-contributions: tiny, focused merge requests of 10 to 15 lines, each addressing exactly one deprecated API. Over five months, this approach let me systematically modernize the application while keeping the maintainers happy and the codebase stable.
This talk is a practical field report from that ongoing migration. I will walk through real code diffs, share the specific GTK4 pitfalls I encountered, and demonstrate why small, consistent contributions are far more effective than heroic rewrites when modernizing legacy desktop applications.
What the Audience Will Learn:
* The Micro-MR Strategy: How to decompose a massive migration into reviewable, self-contained merge requests that maintainers approve quickly.
* GTK4 Migration Patterns: Concrete before/after code examples (migrating Gtk.main() to GLib.MainLoop, replacing Gdk.Screen with Gdk.Display, removing deprecated container packing).
* Upstream Collaboration: How to communicate with maintainers and build trust as an outside contributor.
Any other info we should know?
This talk aims to teach newcomers how to effectively contribute to massive legacy codebases like GNOME without getting overwhelmed. The topic is technical in nature (showcasing real C/Vala and GTK4 code diffs), but it is specifically designed to be accessible and encouraging for beginners looking to make their first upstream contributions.
Session author's bio
I am a computer science undergraduate and an active contributor to the GNOME Project. I am currently helping drive the GTK3 to GTK4 migration for Gitg, having recently modernized over 40 UI components. I am a recipient of The Linux Foundation's Shubhra Kar LiFT Scholarship, and alongside my open-source work, I enjoy competitive programming, having ranked globally in both the Meta Hacker Cup and TCS CodeVita. I am passionate about making open-source contributions approachable for newcomers.
| Social Media | https://x.com/DivyanshuRaj81, https://linkedin.com/in/divyanshu-rajput8171 |
|---|---|
| Agree to Privacy Policy and Notice | I agree |
| Level of Difficulty | Beginner |
| In Person Attendance | In-person |
| Please confirm that there are included headshots of all speakers in their profiles | Yes |