After years of hearing about DrupalCon Sprints but not having the actual experience myself (I'm one of those avid consumers of DrupalCon video recordings), DrupalCon LatinAmerica 2015 put the event almost literally in my front door (just a couple kilometers away). Let's share the awesome experience of teaming up with three Sprint-mates to get a D8 ticket closed (the first one for all of us, AFAIK).
Watching DrupalCon recordings has proved very useful for me to grow as a Drupal developer on this 6+ years journey, but participating in one was even more satisfying and motivating. Seeing important people of the Drupal community and actually talking to some of them gave me an even better impression of what this community is all about: sharing knowledge, sharing code and sharing a bit of life too.
The highly contagious and energizing mood that I found myself on during the two-day conferences got an extra boost by a very enjoyable, intense and warm Sprinting session. I remember hearing this DrupalCon Sprint holds the highest participation rate ever; though a small DrupalCon, I find that a good indication of what the Sprint was like.
Much to our surprise, it all started with broken WiFi connectivity. By the time I arrived, I started looking whom to share table space with, and ended up sitting next to Daniel Dalgo (@dalguete) once he answered positively to my inquiry about how to set up PHP 5.4 on top of an Ubuntu 12.04 server. To my surprise, he got Google showing the right instructions with a few keystrokes (yep, I had tried it some days before, but without success); the trivial operation of adding a ppa + installing a package turned out impossible given the network issues, so I decided to spend my time talking Drupal-ly things with other sprinters.
A quick conversation on Features was the opportunity to discuss about the whole configuration-as-code concept with Josué Valencia (@Josue_valrob); so we took some time to review the kind of problem that Features solves for us (though as a side-effect of what the guys at Development Seed had in mind originally) and how to use it. While we did that, I kept trying to install PHP 5.4 in my dev env, without success.
The team organizing the Sprint, headed by Cathy Theys (@YesCT), took the broken network situation as an opportunity to give some useful guidance and do some quick activities to motivate us. Though no actual tickets were being reviewed, the Sprint was being fun.
So, time just kept going on and they got the WiFi connectivity fixed just around noon. My excitement turned down when I found the download to be quite slow. But I know something: Drupaleros must eat, too, which means less WiFi usage. A few minutes later, food was ready and people started putting laptops aside to take a delicious lunch. As you may imagine, I was one of the last to take it, because I only closed the lid of my laptop once I got my env running D8.
After lunch the real Sprint started: mentors were moving around answering questions and suggesting good tickets to take. After a quick review we settled on #2424697 and started work on it. Daniel Dalgo focused on the automated testing part, while Giannella Paredes (@nellaparedes), Josué Valencia and me started doing manual testing in order to verify and document the exact steps needed to trigger the bug (this may seem trivial, but proved very useful later on).
After a careful read of the very short but spot-on details posted in the ticket and trying a few times, we were able to get a good vs. broken state, so we proceeded to post a comment with our findings. Daniel was also trying to connect the dots following the hint posted by Wim Leers (@wimleers) and running the testing code he wrote. Once we finished the manual testing part with Giannella and Josué, I joined Daniel and we started exchanging ideas on how to approach the test. Long story short: lots of guesswork + taking into account very specific details found by manual testing got us to something that looked good, but didn't work. So it was until 17:30, when I had to leave to attend a personal duty (I don't know if Daniel kept trying after that).
All this happened while the Sprint around us unfold very nicely; a very memorable moment was when a team of sprinters who got a patch in were taken by Dries as an example to show us all the actual steps taken before committing, and letting one of the guys hit Enter to close the deal. It was a very exciting moment for all of us watching, so I guess it was even nicer for them.
Once I got back to my daily duties from the exciting days at DrupalCon, I kept thinking about what I said Daniel during the Sprint: "I have a strong feeling this is an easy one, we must be missing just a couple details to finish it". So, four days later I came back to it, reviewed the patch and checked pretty much all ideas we discussed. The first thing that struck me was I had to wait about 15 minutes for the test to run, which I felt was extremely slow; but a short trip to IRC got me a helpful answer from Sascha Grossenbacher (@berdir) on how to run a single test method instead of a whole class (which I later added to the existing docs page).
A bit more guesswork got me to the last piece of the puzzle: the formatter was missing specific parameters required for the responsive case, which were to be found just a few lines below the place we were putting the new code at. A couple runs to check good vs. broken state gave me confidence the automated test was finished. I then proceeded with preparing the patch-set: test-only, patch and interdiff, and posted a new comment to the issue. Just over a day later the patch was okeyed by Wim Leers and Yves Chedemois (@yched), and Alex Pott (@alexpott) proceeded with committing it.
So that was it, a great DrupalCon and a great experience for me working as a team with three more Drupaleros to help closing one ticket. I definitely look forward to attending another DrupalCon and becoming much more involved with contributing to Drupal; it's not just fun, it's the best way to be part of this great community that put so much effort into realizing the first Latin American DrupalCon ever. Big thanks to all of them!
Thanks to Daniel Dalgo for proof-reading and suggesting improvements for this post.