GSoC[chapel].insert (@ankingcodes)
• 0 views
In real open source, you have the right to control your own destiny
by Linus Torvalds
21 January 2020
I had already won NWOC'19 and one of my closest mentors there texted me : "You're very creative and strong in Javascript. Go for an org with full-stack web development projects, and you'll definitely get selected in GSoC". I had two choices for GSoC - go for a project I am comfortable to work with(the easy choice) or go for a project which would challenge me and am more likely to fail(the hard choice).
I am glad that I chose the latter.
I had opened the Chapel repository 5 times earlier and was intimidated by the huge codebase. I joined the gitter channels and enjoyed reading the long discussions amongst the community members, although I couldn't understand most of the things. Reading through the "Getting started" guide, I started to make a simple project using Mason. I typed mkdir new
, cd new
and then mason init
, out of habit, being a javascript developer(using npm
) and got an error. And there it was, my first idea to contribute to Chapel, a mason init
command to initialise a Mason project.
26 February 2020
I worked with Ben Albrecht and finally got mason init
merged ! Ben had been very patient and helpful to me and that's one of the primary reasons I was motivated to work on Chapel everyday after a tiring college day. I made multiple new feature requests, and had also found a long list of pending tasks for Mason. Today, again, I had two choices for GSoC - go for a project from the ideas list of Chapel, or present my own project idea and risk getting selected in GSoC.
Once again I'm glad I chose the latter.
16 March - 31 March 2020 (Application period)
I made multiple PRs on small to intermediate tasks and created new issues I found on the way. I had also presented a doc with my project idea and started discussing it with Ben. Ben had also invited Sam Partee (author of Mason), to take a look at my idea. Both of them were equally excited about the idea and encouraged me to go forward with the proposal. I was extremely happy with my proposal because I had no clue about majority of the tasks I had included in it. I knew I am going to learn a lot in the summer.
4 May, 2020 - 1 June, 2020 (Community Bonding Period)
My project "Improve Mason Package Manager" mentored by Ben Albrecht, Sam Partee and Krishna Kumar Dey was selected in GSOC !! Being from a small university where students pay for an internship certificate, and have absolutely no ecosystem to code or to be a good engineer, I felt it was time things change. I let my closest friends know about my achievement and they couldn't believe it.
Mostly, students get a head start on their project during the community bonding period. But I spent the month, taking up issues outside my proposal. One of the major issues was "Improving mason external --setup
". This command sets up the Spack package repository, to allow users to use dependencies from Spack in their project. However, installing it took an extremely long time, about 15-20 minutes.
After some design discussions with Ben, and a PR, Spack now installs within 9-10 seconds which was a very shocking outcome for me. The trick was that we did a "shallow clone" of the Spack repository, which would get only the latest revision of the Spack repository stripping off the entire history of commits.
Also, I got to attend CHIUW 2020, which was fortunately online due to Covid-19 situation. Surprisingly, my work was also recognized by Brad Chamberlain(core designer, creator of Chapel) during his introductory talk.
Conclusion
I am grateful to have been given this opportunity to work with Chapel in Google Summer of Code 2020. I congratulate my fellow GSoCers Rahul, Aniket and Yujia for getting selected, and wish them good luck to deliver the tasks proposed by them successfully. Most importantly, I hope everyone grow their skills during the summer, and continue to contribute to Chapel post GSoC.