Committing to D8 Core - A Little Bit Goes a Long Way
It was the last day of DrupalCon LA and after a long week of sessions, getting to know fellow Drupalistas, and partying until the wee hours, I mustered what little brainpower I had left and made my way to the "First Timer’s Sprint." Joined by my ThinkShout colleagues, Joe and Nancy, we arrived with beautiful visions of giving back to our community by contributing in some capacity to Drupal 8 core. And so it begins…
We arrived just in time to set our development environment up with a couple hundred other hopeful contributors, and were pleasantly surprised by how quickly that process went and how helpful the mentors were. As soon as we were all set up, the conference staff sent us on our merry way into the next room.
As you may or may not know, Drupal core is enormous! It can be a big, daunting pile of directories and folders that can go down several levels. For a newer developer (and even more seasoned ones, I hear) it takes a great deal of time to navigate this powerful platform. As a result, I was faced with too many possible issues to work on and very little background for how the contributing process works. I’m willing to bet most engineers have been in a similar situation at one time or another and can likely relate. This experience has a name - it’s called "decision fatigue," where one is faced with so many possibilities to choose from that they become overwhelmed and may even check out entirely. I was there.
Having recognized this feeling before, I piped up and explained to our mentor that we would work more effectively if we were given a single focus or direction. This seemed to work well, and he provided us with a handful of suggestions. That was all fine and good, but after looking at the "Novice" queue, I felt my deer-in-headlights gaze only worsen. Still hungry for a way to gain some practical experience, I reflected back on the options our mentor suggested. He mentioned that “rerolls are easy,” and that seemed like a good place for me to start.
Seizing the moment, I nabbed the nearest mentor and asked him if he could spare a few minutes to help walk me through a reroll. Fortunately, he had a moment to spare, and pointed me to the documentation. Interestingly, this mentor happened to identify with me as a site-builder with little coding experience, yet he was knowledgeable and knew enough Git tricks to be an active participant in the Drupal issue queues.
With this mentor by my side, we dove into the oldest D8 "needs reroll" issue and went to town. Much to my surprise, this issue didn’t take long, but it also helped that another contributor had already rerolled the patch. No problem! I made a comment stating that the patch had been rerolled, how old the issue was (seven years, in this case), and removed the “needs reroll” tag from the issue. Though it felt like a negligible change, my mentor reassured me that I’d spared another developer from having to go through the same process and reach the same conclusion. Consequently, the issue had moved on to a more progressive state, and there was much rejoicing.
After that was said and done, I went back to the issue queue feeling a tad more confident. Just moments later, our original mentor rushed excitedly back to our table. "Who wants to commit to core?" he asked. We all looked around at each other, not quite sure what to make of it, and responded with a cautiously optimistic “sure, we can help!"
Everything happened rather quickly, which was surprising considering how long it takes to get an average issue through the complete process. Here’s how it went down: There was an issue. A dev in another sprinting room was asked to write a patch. Another dev revised the patch by improving it slightly, and it was then passed to our table to go through the review process. A dev evaluation was put forth, then the issue was passed back for additional review. Finally, it was submitted to be pushed into core.
This was my first DrupalCon and, little did I know, they have a very important tradition - every DrupalCon sprint ends with a live commit by Dries, the founder of Drupal. Our team was lucky enough to be part of this ritual! So, after a full week of delightful Drupal-related shenanigans, I found myself on stage pressing the enter key on Dries’ computer to push our commit to D8 core. The button was pushed and the explosion of celebration and cheers from the audience was nearly deafening.
In this moment, I truly witnessed the heart of the Drupal community in action - this amazing tool could not exist without a number of developers carefully crafting code in accordance with Drupal best practices, and countless generous individuals attentively reviewing the proposed changes. It really does take a village, and the good news is that it doesn’t require being a coding genius to help out.