Yet another summer of GSoC down the line, filled with excitement (as my mentor Toby once said, ‘Happy GSoC!’), learnings, challenges, and of course, the prevailing crisis of the pandemic. (How can we forget that?)
Much like last year, there is this need for a ‘work product’ post, one that collectively summarizes all the work accomplished throughout the work period, and one that Google/GSoC uses for future reference - and that right here is exactly what you’re reading :)
Links to GSoC’21 work
Please check the links provided underneath (PRs for most of the part!), which showcases the work done during the GSoC’21 timeline, complying with my core objectives (my initial coding plan mentions them as four separate points) this summer:
- General
-
The GitHub Repository
- Blog post ‘Workflows for directlabels’
- Project Board (comprised of some issues, learning resources and notes)
-
The GitHub Repository
- Pull Requests
- Setup code coverage (codecov) and automate the process
- Transition to the makeContent hook (in order to make the codebase eligible to exercise grid.force)
- Incorporate reasonable changes to some of the R files within R/
- Added workflow to commit changes (.R files under R/) made in master to gh-pages
- Add directlabels to ggplot2 extensions gallery
- One from @tdhock
- Update index
- Use GitHub pages hosted CSS file (Update to last PR)
- Fix external CSS stylesheet links for html files within doc sub-directories
- Incorporating relevant files and folders for the gh-pages branch
- Add relevant files and folders for the dldoc branch
Todo and Future Steps
The first thing to do would be to complete directlabels PR #44 wherein the part I’m currently stuck at is on figuring out how to obtain the graphical objects (need to figure out how to re-arrange the grobs) returned from the utility function draw.polygons
/draw.rects
back inside makeContent.dlgrob
(within positioning.functions.R
). Debugging via browser calls inside the makeContent method shows no trace of the attribute containing the grobs which was supposedly to be attached to the input data frame. In order for the transition to be complete, the draw.* functions must return their data frames to makeContent.dlgrob
(can’t call them inside the method directly either!) to retrieve the grobs, and then subsequently assign them as children to the gTree therein. Following that, I can create test cases based on the grid grobs which are exposed via grid.force()
.
The second thing would be to refactor/configure dldoc further. While it does work at its current state, I’ve seen that it generates the documentation with some plot files missing their thumbnail images! After that is sorted out, I can simply emplace the workflow I created for automatic documentation generation inside the required directory.
Special Mentions
A word of thanks to:
- Google/GSoC-team, for organizing and coordinating the program in a timely fashion, in addition to funding my project (twice in a row now!).
- Toby Dylan Hocking, for helping me throughout GSoC with beneficial suggestions, and for understanding my brevity and struggles.
- Paul Murell, for confirming this and helping with this!
Overall Experience
Given a boatload of time-consuming and nerve-racking situations for me during the work timeline, which includes family problems (with a serious escalation stemming from the chronic torture by a so-called ‘parent’), delayed flights and university semesters (accompanying with ‘postponed for the third time’ online tests, which are pretty much the very definition of ‘meaningless’), financial (esp. banking) issues, preparation for the switch to grad school in the states, settling post-reach and what not, it has been one hell of a summer. While the period has been considerably exhausting to say the least, not everything went bad in the grand scheme of things. I got to learn quite a bit, improved my debugging skills somewhat, made some new friends from the GSoC’21 community, and for the highlight, I also got to meet my mentor Toby (or rather now prof. Toby) in person recently, which is pretty amazing indeed!
While I’ve been working under and contributing to The R project for statistical computing (twice in a row now!), the same organization with respect to the last GSoC term, this year’s project does have its fair share of distinguishable parts in contrast to my previous one. Being centered on computer graphics and automation, the domain is quite different from that of testComplexity’s, which revolves around the computational complexity theory. Nevertheless, while there is a fine line between the two projects, both have been cool projects to work on, and both have provided me with a rich learning experience, apart from instilling that ‘productiveness’ inside me in and around the course of the summer.
I’ll keep contributing to open-source (goes without saying!) and depending on my availability and ability to grasp the required knowledge of an enlisted project in future editions of rstats-gsoc, I’ll be happy to help mentor one or more students.
Well, that concludes my episode of GSoC’21, embedded as a meaningful chapter in these online archives called ‘blogs’ of mine. Thanks for reading!
Anirban | 08/20/2021 |