I am starting a new blog series, for covering my GSoC’21 journey with GNOME Foundation. It’s already been two weeks since I received the acceptance email of GSoC. My project focuses on improving tracker support for custom ontologies. In this blog I’m going to talk about how I applied for GSoC and introduce the project on witch I’ll be working this summer.
First, let me introduce my self. I’m Abanoub Ghadban, a fourth year student at faculty of computer engineering from Egypt. I started my journey in GSoC in December 2020 when one of my friend who participated in GSoC last year told me about the experience he gained while working on his project with GNOME. I get started with GNOME apps easily thanks to the GNOME new comers guide. I started by looking at the basics of GLIB and GObject, I found the GLIB/GTK book very useful. The concepts I learned from the book and documentations became much clearer after looking at how they are used in GNOME apps. I started exploring gnome-photos app, then I searched for a “new comers” issue and solved it in this merge request. The maintainer of gnome-photos was very helpful in solving the threats he found in my code. Also, I investigated some issues in natuilus, glib and tracker. I decided to apply for a project related to tracker. The mentors were very helpful in guiding me to choose the project and write the proposal.
Currently, we are in the community bonding period, during this time participants should start communicating with their mentors to start planing ahead how they should start when the time comes. The first thing I’ve done after celebrating :D, was getting in touch with the mentors. We talked about the resources that can help me to get started with the project, how I can prepare my development environment and how we can communicate with each others.
The goal of my project is improving tracker support for custom ontologies. That is done by:
- Fixing crashes that happen when tracker tries to parse an invalid ontology.
- Adding support to the ontology parser for the out of order definitions in the ontology file.
- TrackerNamespaceManager should support custom ontologies more easily (details).
So, here are the things I’ve done so far:
- Cloned tracker repository, built it using both GNOME builder and meson.
- Installed dev dependencies and configured VS Code to open tracker project in it. Honestly, I found it more useful than GNOME builder :).
- Looked at the architecture of tracker and tracker-miners and how the architecture changed from tracker2 to tracker3.
- Reading tracker documentations about how to create new ontologies.
- Debugging tracker using gdb, I used it to find out how the ontology files are parsed.
- Reading tracker documentations about TrackerNamespaceManager and TrackerResource.
Guess this is a good start, but still there is much to do for the upcoming days. Hope every thing works fine during this internship, GSoC here we GO.