Pitivi GSoC: 3rd Update

3 min read | Sun Jul 31 2022


https://d33wubrfki0l68.cloudfront.net/6ffa635bfcc67c04d48c4c226334d0c917f8dc62/1219b/images/uploads/gnome-gif.gif

Namaste everyone :)

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

Updates

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.

Workflow

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

notepad

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.

Documentation nightmare

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.

223tabs

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.

How I choose what error to work on

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.

ooftrack meme

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.

error

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.

complex

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.

GUADEC'22

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

End

In the end, GSoC makes you -

tired

I hope you enjoyed this blog, see you in the next one :)