Pitivi GSoC: 3rd Update
3 min read | Sun Jul 31 2022
This is now the third blog, and this time I will like to keep it a bit different, owing to the suggestions I got :D
So, as usual, we will start with updates, we are still in the breaking phase, but most big errors are gone, there are some things that need to be sorted out, but we can do that once we can at least open the application.
In this blog, I want to show you all what my workflow for the project goes like.
To start with, I have a small notepad, in which I write various things, like
Delayed fixes -> Used this during GTK+3.x backport phase, to list things that can be done now, but optimal replacement is in GTK4
Errors -> Errors that I'm getting while trying to run the application, I list them and then comment out the responsible lines or do a temp solution to move on (Better discussed in my previous blog).
Check -> These are things that I have fixed but have the tendency to be broken or can look bad, thus they have to be checked when a workable version is ready.
These are just some example pages :)
In this the checkbox means check.
After that, I also sometimes write down code on the notepad, when I'm really stuck or can't wrap my head around some piece of code. What I do in these cases is that I do sort of a dry run, writing what the code will do line by line but in normal language, to be honest, I don't read it again, because what counts is you writing it down, making it easy to comprehend.
Apart from it, I also seek help from the community and my mentors from time to time, if you ask at the correct time then you won't waste your time, and would also not spam the help channels just because you missed a line in the documentation.
At any moment of time, I usually have 150+ Tabs of documentations open on my browser, it includes the port guide page, other project's GTK4 port MRs ( These really help), and normal gtk4, and gtk3 guides.
GSoC involves tons and tons of reading. Documentations are like holy writing for us, as they tell us how to do something without breaking our peace.
Choosing what to work on takes quite a bit of consideration, and tbh it is very random. So here's how I do it ->
Most of the time, I like to go with the flow of the port guide, but I always end up going off track. What I do is, I try to run the app, I then get errors, I comment them out or do a silly temp fix, write down the cause in my notepad and move on.
Then I get another error, if this error is something that can't be bypassed, or is small enough, or is small but spans multiple files, then I usually work on fixing it, so it is just very random.
After going through multiple errors, I take a look at the notepad and check the root causes behind the errors, many times multiple errors are caused due to changes in the derivation hierarchy. For example, if c was derived from b, and b was derived from a then if either c is now directly derived from a, or b is just gone then all elements derived from b will lose it's functions and properties.
Thus, many times errors from seemingly completely different entities are caused by the same node in the hierarchy.
Once I know the root cause, I work on fixing them, some are simple name changes, some have easy enough replacements, while some are very problematic, needing refactoring of quite a lot of stuff.
This year's GUADEC was amazing, I got to learn many things and also got to present my work so far. I was quite nervous at first, but it all went smoothly, I hope to someday attend it physically.
My presentation is at - GUADEC Youtube
In the end, GSoC makes you -
I hope you enjoyed this blog, see you in the next one :)