1. Finishing the port of F-Spot to use GTK3
1.1. Abstract
In October 2013 Stephen Shaw and some F-Spot contributors started the work to port F-Spot from using deprecated GTK+ 2 to GTK+ 3. This represent a huge amount of work in the case of F-Spot but it would be a great step to maintain F-Spot codebase up to date. So this project is mostly about finishing that work to have F-Spot running only GTK+ 3 code.
1.2. Introducing myself
My name is Valentín Barros Puertas and I'm Spanish. I'm 27 years old and I study Degree in Computer Engineering in Santiago de Compostela (Spain), where I live and where I'm going to be at this summer. I've also worked as a freelance developer and I've been studying (self-taught) programing and other computer-related stuff since I was 16. My e-mail is valentin@sanva.net, my IRC nick is Sanva, I'm @Sanva in Twitter and here it is my blog —in both Spanish and English.
My main programing language is PHP, but I'm also comfortable with C, C#, Vala, JavaScript and some others. The most representative works I have are my previous Google Summer of Code participations, working in Shotwell and F-Spot.
1.3. Motivation
I've started implementing a new tool in F-Spot in Google Summer of Code 2013 to allow users to tag people in photos. It works, but it has some bugs that needs to be fixed, and they wouldn't be enough to another GSoC. The tool uses OpenCV to achieve face detection to help the user in the boring tagging process, so it might be a natural step to implement face recognition.
But F-Spot is in a difficult moment —current stable version seems to be 0.8.2, and that's from December 19, 2010—, so last year I've talked with Stephen Shaw and we decided that the most important and valuable thing would be to update the code of F-Spot to fit well with current distribution libraries to get a new F-Spot version that will be free of deprecated code. That was my main task last year's GSoC, and although I've been evaluated as a successful student, I couldn't finish the port —not even half of it, so it would be the main subject of this project again.
1.4. Benefits for GNOME community
The benefits are really clear: GTK+ version 2.x are deprecated and F-Spot should be refactored/ported to stop using it. Plus, F-Spot —IMHO— is a good program that deserves to be up to date again.
1.5. Mentor
Stephen Shaw (F-Spot maintainer).
1.6. Proposal timeline
1.6.1. April 27th - May 22th [⌚ Community bonding period]
- Refreshing my knowledge of C# coding and F-Spot.
- Reading GTK+ 2 to 3 porting guides again.
- F-Spot debugging —I'll need a lot of debugging to figure out how to change lots of code that isn't trivial to port.
I'll have one exam on May 28th.
1.6.2. May 25th - June 25th
- Continue the work on GTK+ 2 to 3 port. Mainly the big image displaying and Widget allocation issues the program has at this time and which I couldn't fix last year —I know more about GTK+, so it should be feasible now.
1.6.3. June 26th - July 3rd [⌚ Mid-term evaluations]
- By this time I should be able to show F-Spot displaying images with little problems.
1.6.4. July 6th - July 31th
- Continue the work on GTK+ 2 to 3 port. It is a bit difficult to me to be more specific here, because there are lots of commented code to allow compilation of F-Spot using GTK+ 3 and I need to deeply study it —but it should be more feasible than widget allocation problems I faced last year and that I hope to have solved at this point.
1.6.5. August 3rd - August 17th
- This is a buffer kept for any unpredictable delay. If I can get the port done on time, this last week will be used to polish things and fixing of important bugs, but F-Spot should be working almost right with GTK+ 3.
1.7. Development
You can see my activity in the repository of F-Spot in gtk3 branch —I'm Sanva in GitHub.