GSOC 2020 with webpack
I’m super excited because I’ve been selected to work with webpack for Google Summer of Code 2020. It is both a thrill and an honor for me to be able to contribute to such a useful and wideemail you when the publication editor hasly used development tool as a GSoC student!
From knowing little about webpack before the organizations were announced, to being selected as one of the students, it has been a great ride. I can’t stress my gratitude towards the webpack community for being so helpful and welcoming to new contributors. I’m looking forward to making my mark on webpack, and learning a lot along the way.
< About Me />
My name is Nitin Kumar (I go by @snitin315 online), I am currently in the 2nd year of my Bachelor in Technology Degree from Maharaja Agrasen Institute of Technology (Affiliated to GGSIPU), Delhi in Electronics and Communications Engineering. I have been tinkering with code since my first year. I love working on Web Apps, as well as the related tools & technologies which make Web Apps possible and I have spent many of my nights up hacking on such projects.
< My Open Source Journey />
I started my open source contributions with FOSSASIA organization as a participant of the codeheat contest organized by FOSSASIA annually. I chose to work on eventyay project. This contest taught me a lot about Teamwork, Problem Solving, Ability to find and fix bugs, Review code of other teammates, etc. I learned how to provide efficient and high-quality code.
After seeing my contributions in the FOSSASIA organization, Mario Behling (Co-Founder of FOSSASIA) invited me personally to be a mentor in Google Code-In 2019–20.
Hence, I spent my winters mentoring pre-university students throughout the development of projects.
Finally, the result of the contest was announced and I was selected as a FINALIST WINNER.
I was looking forward to apply for GSOC with FOSSASIA but unfortunately FOSSASIA wasn’t selected as a mentor organization this year.
webpack- from ZERO to GSoC
webpack has always been the backbone of everything one does in front-end development. I always feared to dive deeper into the webpack or understand how it works internally. I got extremely thrilled and intrigued the day organizations list came out and I discovered webpack on the list. I made webpack my target goal and didn’t even bother to look for the rest of the organizations.
< Contributing />
After discovering webpack on the list and webpack-cli as a project in the idealist, I instantly started contributing to webpack CLI. The CLI has introduced with a goal to improve webpack user experience by providing flexibility. Apart from compiling builds and setting up webpack for an existing/new project, it comes handy for migrating webpack configuration for version upgrades and also to add, update, or remove properties from existing configurations.
When I cloned the project and checked the source code I wasn’t able to understand anything at all. Then I realized I need to dive deeper into webpack and luckily I found some workshop videos by Sean T. Larkin ( Founder of the webpack Core Team ) which helped me a lot to understand webpack core concepts and their internal working behind the scenes as well.
Side by side I was continually creating pull requests for improving documentation, fixing minor typos, and correcting grammatical errors. It took me 14 days to get my first major PR merged ( which was the addition of the — no-mode flag to CLI ). After this PR I felt very confident and it increased my pace & quality of contributions. I was able to get around 30 PRs merged prior to GSOC ( which seemed impossible when I looked at the source code for the first time ).
Finally, it was the day when GSoC students and projects were about to be announced. I remember refreshing my inbox every 2 minutes and yes I received an email saying “ GSoC 2020: Congratulations, your proposal with webpack has been accepted! ”.
< Work To Do in Summer />
During this summer, I’m going to kick-off this summer with the most crucial thing on webpack-cli roadmap like —
> Now webpack 5 provides API for CLI arguments so we will be taking arguments from the core itself.
> allowing multiple types of same arguments e.g — stats (means stats: true) and — stats verbose (means stats: verbose).
> Allow multiple same arguments, i.e. webpack --entry=./src/one.js --entry=./src/two.js
> I will add some negated boolean arguments like — no-hot and — no-stats
> Refactor to TypeScript .
> Writing unit tests and integration tests and many more general improvements.
Last but not least
I believe that I will finish the job at the end of happiness. Let’s enjoy it!