I have a confession to make: Drupal isn’t my first open source content management system. It’s my fourth. My career started with Wordpress and included other PHP CMS like Mediawiki, PHPBB, and Joomla. Granted, I’ve spent significantly more time with Drupal than any of the others, but there’s another really significant difference. I’ve actually contributed and given back to the Drupal Community. I was just a consumer of the hard work of those other communities. I never gave back. But, if you’re like me, then maybe you do want to give back. But you don’t know where to get started.
With DrupalCon Global wrapping up I am reminded of the nervous energy I always felt coming away from DrupalCon my first couple of times attending. I always leave DrupalCon energized and motivated. However in those early years when I walked out of the con and returned home, I had a strong desire to contribute and absolutely no idea how to actually do it.
Oh of course there’s a ton of guides out there that tell you how to contribute. Pick any five people at random at DrupalCon and they’ll tell you how easy it is to contribute <something> to a project on Drupal.org. You might even find someone willing to sit down and help you do it the first time (especially if you attend the sprints day at the end of the con). But that still presumes you know what the heck you are actually going to contribute. This was my problem. This exactly. I might have known what I needed to do, but not specifically what to do it to.
Something I have always struggled with is finding an issue to “work on” that:
I understand well enough to contribute to
Doesn’t already have people working on it
Doesn’t already have a solution.
The frustrated feelings from this experience were palpable. I wanted to contribute. I had just left a conference where everyone talked about both how easy and important it was to contribute. But I could never find anything to actually contribute. I felt for years like I wasn’t good enough to be a part of the community. I felt like I was doing something wrong, like my contributions (if I ever made any) would surely not be worthwhile because I was struggling so hard to find something, anything, to actually contribute.
If you’re feeling this way (or have felt this way) I want to stress that you aren’t alone! I also want to stress that you have an incredibly powerful contribution sitting in your back pocket right now that possibly no one else has ever made. Your experience.
I realize that sounds corny. Har har, Mike wants you to share your experiences on the Internet.
Seriously though, consider this for a moment. Every project I work on tends to have a shared list of modules. I talked about this recently on my blog. But, aside from these, every project I work on is a unique combination of requirements using different combinations of contrib modules and custom code. Sometimes things happen on my projects in such a way that literally no one else has ever run into before.
TLDR: if you’re having a problem and you’re searching for a solution on the internet but you can’t find anyone else having your problem? You may have uncovered something totally new and unique. Your experience with that problem is invaluable. Why? Because maybe someone else is having the problem, but like you they can’t find an answer. Maybe some module just cut a new release and there’s a new shiny bug that’s about to impact a bunch of other sites and no one else has reported it yet. You posting that issue could save countless other organizations from experiencing downtime.
You have to get over that fear of looking like an idiot for posting a question that “everyone knows the answer to.” Worst case someone is going to say “hey this is a dup of this other issue” and link you to something else that is either a solution or work in progress for your problem. Best case scenario you did uncover something totally new that will (hopefully) get fixed.
I’ve actually gotten to the point where I’ll open an issue when I have a problem. Then post my own solution. Then close the issue. I’m not even asking for help in some situations, I’m just trying to document the problem I’m having so that when (invariably) someone else has the same problem, they don’t get stuck. For instance, this issue I opened and closed on the BLT issue queue. In this instance, the issue at hand wasn’t even a BLT issue (it was a Drupal Check issue). But I knew that because BLT uses Drupal Check, other users of BLT would run into the same issue that I had. So I cross-posted the issue there so folks could find it both places. There is value in that! This is why I say your experience is valuable.
So, happy post-DrupalCon week. Hopefully you are energized. Hopefully you are looking for ways to contribute and participate in the community. In my experience the Drupal community is one worthy of your energy and contribution. I hope you can find some issue or code that strikes your fancy and you can jump right in. But you know what? If you can’t? That’s ok too. Why not pop over to a module issue queue or Drupal’s own and post about a problem you’re trying to solve right now that you can’t find an answer to. Or a problem you recently solved that you couldn’t find an answer to. Maybe there is a solution for your problem out there on the internet, but if you can’t find it (I bet someone else can’t either). Start laying those breadcrumbs down so that next time the answer comes up. And if you aren’t actually asking for help? If you’re just posting to share your experience? Go right ahead and close that issue once you’ve posted on it. I guarantee you that at some point in the future someone is going to accidentally Google up that post of yours and thank you for saving them hours of beating their head on something they can’t solve.
Sometimes the order of updates is quite critical. And while Drupal usually has a quite predictable order for those updates to run in, they don’t always land in the order you expect. This tutorial will help you to execute updates in the order you want.