czwartek, 26 listopada 2020

GSoD week 10


GSoD timeline is slowly coming to an end and I am slowly approaching the end of the list of high priority files defined for this project. As always, you can track my progress here:

As for the status of the PRs, we got #2627 merged, which is great because it was massive amount of content. We even managed to avoid conflicts. Another big one still open and awaiting review is #2633.

As you can see in the spreadsheet, there a couple files left for me to review. Most of the stuff from the 'graphics' folder is done locally but I am still running some last checks on it. The PR (#2645) is already open with the first two files.I got some comments there from @criezy and addressed them. The rest of the graphics files will be added tomorrow.

Then, the only remaining task will be the four last headers - one from 'image' and three from 'audio'. Busy weekend ahead of me :)

sobota, 21 listopada 2020

GSoD week 9


Week 9 has been quite productive and I'm happy with the results, even though I haven't met my target of completing doxygen review on all high priority files.

The remaining files from the common folder are done and in PR#2627. They have been reviewed by @criezy (as always, huge thanks for the swift review) and I'm hoping we will get that merged soon.

I have also finished my work on headers from the engines folder and they can now be found in PR#2633. Four of these files have been categorized as high priority and to the remaining ones I have added a doxygen group definition so that they appear in the right place in the structure.

The engines headers gave me a bit of a headache and I had to spend much more time on them than initially planned. First challenge was to grasp all the concepts of engine, meta engine, Advanced Detector and how they relate to one another. I also had to make sure the references to various methods and structures that are declared in other files are resolved properly. Without any exaggeration, I can tell you that when reviewing a 700-line long file, I probably rebuild it about 50 times as I crawl through it, to make sure everything looks correctly. Fun!

I am now working on five files from 'graphics', they will be in PR very soon. Then one file from 'image' and three files from 'audio' and the high priority ones will be finally done.

This post is coming late (as usual), the next one will be here soon.

czwartek, 12 listopada 2020

GSoD week 8


I'm posting a bit later than planned but I wanted to make sure one of the crucial PRs goes in before.

I've made some good progress this week and I am hugely thankful to @criezy for quickly jumping onto my reviews and leaving tons of great comments, some of which allowed me to understand the code better.

The biggest achievement of the week is that PR#2612 went in with some serious doxygen improvements in two big files: stream.h and system.h. Well over 2,5k lines of code overall. One significant change I made in system.h was the introduction of doxygen groups into the file (discussed in discord), so that now the documentation has a nice structure that is also reflected in the navigation pane on the left. I'm hoping this will improve the usability by a lot. Previously everything was presented on one page and because this is the largest header file in the scummvm codebase (or at least I believe so), this made the doc look a bit messy.

PR#2535 went in as well after a series of reviews.

Right now, I am preparing to open a PR for the last five high-priority files in the common folder (almost done locally). Then, I am moving on to engines, graphics, image, and audio. In each of these folders, we have identified a few header files as high priority.

For once I am happy with my progress this week and I'm truly hoping that in the next post I will be able to report that I am moving on to medium-priority files. Some of these have actually already been reviewed before we came out with the whole prioritization idea.

piątek, 6 listopada 2020

GSoD week 7


I just realized that I completely forgot to write a blog post for last week so this one will be short and another one is coming in a few days.

I'm struggling quite hard right now to find time for the project and constantly feel that I am behind on the timelime. Unfortunately, my availability is hugely affected by the epidemic (the situation in Poland is really bad right now). Being locked up at home with two bored, attention-craving kids doesn't leave me much time for my regular job, let alone for GSoD.

The good news is that I got some great reviews on PRs #2535 and #2499. I have addressed all comments on the first one and it is now pending approval, while the second one is already merged.

One of these PRs contained tons of changes in the str.h file but in the end I had to revert all of them. This was due to the fact that in the meantime this file was changed extensively on master and resolving the resulting merge conflict would be too time consuming and too error prone for it to make sense. It is unfortunate to see a couple hours of work go to waste like that but I got used to the thought that it might and will happen.

I am finalizing a lot of changes locally and will be opening PRs during the weekend. I already made arrangements to ensure that I have sufficient time for GSoD in the next few days so hopefully you will see some more activity from me on Github and Discord.

środa, 28 października 2020

GSoD week 6


Just a quick update this week.

I'm still waiting for someone to have a look at PRs #2535 and #2499. Hopefully they can get it soon.

I have quite a bit of work done locally but I'm not in a hurry to open another PR. My plan is to open a PR around the weekend with 10 more high-priority files with added/edited doxygen comments. The files in question will be the ones from stream.h up to metaengine.h from this list.

I am still investing a significant chunk of my time into developing the knowledge of aspects of C++ used in ScummVM headers. Figuring out how streams work was the latest challenge :)

środa, 21 października 2020

GSoD week 5


The last week has been very busy and I've spent a lot of time working on finalizing PRs #2535 and #2499. The diff is quite massive so good luck to the reviewers :)

I am slowly crawling through the high-priority header files, as defined in the spreadsheet. Some of them can be really time-consuming, I think I spent over two days on str.h. A huge chunk of this time is spent on reading, googling, and expanding my knowledge of C++: how to understand operator functions, how iterators work, streams, arrays, lists, strings...I'm surely learning a lot but it annoys that it takes so much time that is then not really reflected in the work I'm submitting.

The problem I am already starting to see is that reviewing my PRs will take quite a bit of time. Every doxygen comment that I am adding there needs to verified, simply because my understanding of the function/type/attribute might have been wrong. And as my PRs are getting verified, the header files that they are massively editing are being changed on master by other developers, which produces some nasty merge conflicts. I guess fighting merge conflicts might become one of the main challenges in the remaining part of the project.

I'm going back to my files, you can track my progress in the Google spreadsheet if you are interested. I usually put a green 'Reviewed' field next to the files that I have already gone through and included in a PR.

wtorek, 13 października 2020

GSoD week 4


I'm doing this blog post a bit late when week 5 has already started. I've had some busy, tough days recently due to sick family (autumn and kids generally don't go well together) and couldn't devote as much time as I would like for my GSoD project. I'm a bit behind on the timeline right now but not really worried as I'm sure I can catch up with everything.

Right now PR#2499 is open with some more reviewed header files from the common folder. This is something I would probably like to get merged as soon as possible.

I've recently had some very good discussions with Eugene about the scope and priority of my work. You can check out this spreadsheet that contains a list of most headers from which we build doxygen documentation. The scope has been set for 114 files, most of which (75) reside in the common folder. Three levels of priority have also been assigned to the files.

Due to all this, I will be changing my approach to how I am working with the files. My assumption so far was that I would be going folder-by-folder, reviewing files alphabetically. My project timeline was also built around this idea, assigning particular weeks to work in particular folders. However, as there is clear priority now set on each header file, I am going to thouroughly review high-priority files first (there are 33 of those), then move to medium priority, then to low. This approach will assure that my GSoD project brings as much value as possible to ScummVM.

Stay tuned for PRs with some high-priority files in them!

GSoD week 10

 Hi! GSoD timeline is slowly coming to an end and I am slowly approaching the end of the list of high priority files defined for this projec...