This post serves as a compilation of all the work I did during these past 3 months of Google Summer of Code 2020.
!369 (merged): Refactoring old code by making a new Core interface and
RetroCore class. These are used to generalizes all interactions that are related to firmware. Where
RetroCore is an implementation class of
FirmwareManager class is for organizing checksums verification through
RetroCore when a game requiring a firmware is run by the runner.
!405 (merged): Made a
Firmware interface and a
RetroFirmware class that moves all the functions and information needed by firmware from
FirmareManager to itself. By doing this, the
Core interface is used to make firmware objects,
FirmwareManager manages firmware objects, and the firmware object runs checksum verification and contains all information related to that firmware.
!408: Some minor changes to how checksum verification takes place to be more efficient. Added methods to
FirmwareManager that handle addition and removal of firmware along with methods that listed all supported firmware and methods to check whether the file being added is a supported firmware or not.
!415: Merge request with back-end code from !408, generalization of overlay in preferences page and the drag n drop widget. The need for an overlay generalization is to make it easier for each preferences page to add an overlay. This will be useful later when Firmware page is implemented, to show error messages and undo bar when adding or removing firmware. The reason why this merge request has back-end code is for proper functionality of the merge request on it’s own as the drag n drop widget uses the back-end code introduced in !408.
!89: Merge request with the parser that reads firmware name from the core descriptor.
As the code will not be merged until 3.38 release, I just have to keep refining the back-end code and making the drag n drop experience smoother.
As for firmware page, I have untracked Firmware Page UI, after the translation issue is resolved, and back-end code and the parser lands, a new merge request with the untracked files will be opened, after which #145 will be resolved and closed.
Google Summer of code was experience of a lifetime for me, being a student and getting a chance to work on open source and writing production level code. While working on my GSoC internship I learnt a lot. Working remotely on open source project taught me things like, time management, communication, git, open source workflow etc.
These past 3 months have been quite hectic with working on my GSoC project while taking online classes, doing assignments and submitting reports. GSoC was a valuable experience for me as better time management means more productivity out of the same 24 hours without missing out on things.
With summer ending and and summer vacations beginning, I would like to express gratitude to my mentor Alexander Mikhaylenko (a.k.a @alexm a.k.a @exalm) for helping and guiding me this summer. Thank you.
This GSoC was a big learning experience as it taught me data flow and code design, UI/UX, widget writing, CSS and finally ways to use git to ease workflow.
I’ll try to keep posting, as I’ll still be working on GNOME Games and will probably look for more projects to work on later :^)