9. Getting Help and Getting Involved

Chapter

  • 9
  • [This is a draft of the chapter that appears in its final form in the book. Watch this space, because the version in the book may become the draft of what we post here!]

    Drupal: come for the software, stay for the community.

    — Dries Buytaert, Drupal founder

    By now you might be wondering how Drupal is made, and where its thousands of contributed modules, themes, features, profiles, and other resources come from. The Drupal community is a somewhat nebulous concept from an outsider's perspective: Who are these people? What makes them part of the community? What's in it for me?

    The Drupal community is anyone who has made Drupal better -- through code, theming, translation, support, organizing, or other avenues. Becoming a community member is easy: hang around Drupal IRC, forums, or mailing lists, and help people solve their Drupal problems. Hang around the issue queues on Drupal.org and do bug triage, test patches, or contribute fixes. Create your own Drupal modules or themes and share them on drupal.org. Learn how to do something with Drupal, then write or improve the documentation on it.

    What you'll find during that support-giving, documenting, bug-fixing, code-writing, theming, patch-testing process is that you have moved from being a consumer to becoming a full-fledged community member. You will understand Drupal's development cycle better than a mere observer could. You'll know what to expect as Drupal's next version evolves, because you are in the thick of getting it out. You'll become a more skilled, more aware, and more marketable Drupaller. You'll also be a more influential and efficient Drupaller -- when you are the one reporting bugs and helping them get fixed, you can draw attention to the ones that bug you the most. When you contribute your code to the community, you get the eyes of other Drupallers on it, and those who want to use it will help improve it, getting you more return for your time invested.

    In short, the community member's Drupal-foo is always greater than the consumer's, not because you have to be awesome to be part of the community, but because being part of the community grows your awesome.

    Where do I find this community you speak of?

    Drupal Planet

    http://drupal.org/planet
    An important part of any community is baseline knowledge of what's going on. The "Drupal Planet" aggregation of Drupallero blog and site feeds is a big part of giving us that. We can read how-tos, announcements and wrap-ups of meetups and conferences, don't-do-what-I-did warnings, well thought-out questions someone is wresting with, musings on Drupal's future, and reviews of Drupal distributions.

    More accurately, we can read or watch and whatever someone felt like posting that day. Anyone with a web site who feels they want to sometimes say something of interest to the Drupal community can ask to have the Planet pick up a feed from their site. (On a Drupal site, this is typically a taxonomy term called "Drupal Planet" which automatically creates an RSS feed that can be brought into the Drupal Planet aggregator and displayed there.) There's an approval process, but once a site is on the Planet the posts it sends are not moderated, although the site will be de-listed from the Planet for repeated off-topic postings.
    Almost every site that posts will accept comments, so if someone posts on a topic we know or need to know something about it can be a good place and time to piggyback on that post, because people's attention is already drawn there.

    Groups.Drupal.org

    Groups.Drupal.org was started and is maintained with the purpose of building communities within Drupal. It provides a place for people to organize, plan, and work on projects by joining (or starting) an online group.
    http://groups.drupal.org
    On Groups.Drupal.org, or g.d.o as it is frequently abbreviated, the stated reasons or roles intended for a groups are:
    * a working group coordinating on a Drupal feature, module, or distribution
    * a geographical user-group such as users in a specific city
    * or a Drupal event organizing group such as a DrupalCON organizing group
    However, the module g.d.o is built on is called Organic Groups and the site's growth has indeed been organic.
    Groups for working on all sorts of functionality abound, and sometimes overlap. They include very broad topics such as museums or newspapers as well as specific modules such as Services or Skinr. Most are on intermediately broad topics such as Packaging & Deployment or Search Engine Optimization, or build off of parts of Drupal's core such as the groups Taxonomy and Tokens.
    Some geographical groups are based on cities, some on states or provinces, and some on countries (and even continents). It's messy but it's working. If we live in a place without a geographical group, and we're going to be sticking around and doing Drupal, we should start one.
    There are a few event organizing groups... and then there is a group about the organizing of events. This stretches the concept of working group to something of interest to people in Drupal community— something people are trying to improve, which need not be the code directly. The DrupalChix group, for instance, has the mission of ameliorating the underrepresentation of women involved in Drupal.
    Links to the groups mentioned:http://groups.drupal.org/museumshttp://groups.drupal.org/newspapershttp://groups.drupal.org/taxonomyhttp://groups.drupal.org/tokenshttp://groups.drupal.org/packaging-deploymenthttp://groups.drupal.org/search-engine-optimizationhttp://groups.drupal.org/serviceshttp://groups.drupal.org/skinrhttp://groups.drupal.org/drupal-event-organizationhttp://groups.drupal.org/drupalchix
    All these groups and many more can be found at Groups.Drupal.org, but be prepared to search well and perhaps more than once, as groups can be hard to find.
    We can search groups at http://groups.drupal.org/groups. A more powerful search of all content, not just groups, can be searched at http://groups.drupal.org/search. Once we search for a word or phrase, such as education, the results page includes new blocks on the left-hand side that filter by all manner of criteria. Eighteen groups mention education in their title or description (compared to four in the title alone), including an important education group, Drupal for K-12 Schools (http://groups.drupal.org/drupal-k-12-schools) which would not show up in the simpler title search.
    [arrow point to Groups (18) link]
    Figure 1. Find a group on Groups.Drupal.org. Filter a search to show only groups, not other posts.
    Sometimes, a group will seem to have no new activity— even a group with many members. People may not receive notifications of new content and so may not respond when we post. Rather than abandon the group, it's best to keep this community resource vital by bringing information we find elsewhere back to our post in the group. We can also point people in other support contexts to the group as the place to centralize discussion. Further, Groups.drupal.org has wiki pages – pages which we can create in the group and can then be edited by any member of the group – to collaborate on resource lists and planning documents.
    Note How-to documents, at least in a reasonably final form, are better off living in the handbook on Drupal.org, http://drupal.org/handbook, the pages of which are mostly open to creation and editing by any registered user. Of course, if we want to discuss improving Drupal.org documentation, there's a Documentation Team group for that at http://groups.drupal.org/documentation-team.

    Regional and language-based communities off the *.drupal.org infrastructure

    Community web sites for people doing Drupal that are not using the Groups.Drupal.org site are usually outside English-speaking countries, as most are for people from various regions to have an entire site in a native language. Exceptions include Drupal UK, http://www.drupal.org.uk, in the United Kingdom; LA Drupal, http://ladrupal.org, in Los Angeles, California, USA; and Drupal South Africa Community, http://drupal.co.za.
    A large list of language-based Drupal community sites can be found at http://drupal.org/language-specific-communities.
    Active community sites with different languages include Drupal Netherlands and Belgium, http://drupal.nl (or .be) in Dutch; IRDrupal for Iran and Persians everywhere, http://irdrupal.com, in Farsi; Drupal Brazil, http://www.drupal-br.org in Portuguese; Drupal China, http://drupalchina.org, in Chinese; Drupal Italia, http://www.drupalitalia.org, in Italian; Drupal Russia, http://www.drupal.ru, in Russian; and Drupal Thailand, http://drupal.in.th, in Thai.

    Podcasts

    Audio podcasts, usually lightly edited recordings of discussion made easily available online, have for several years been a popular, informal way people interested in Drupal keep up on goings-on in the community. Drupal podcasts are recorded, not done live, so we cannot call in and ask questions. Nonetheless, and in part because we don't have to respond, they are a fantastic low-commitment way to get oriented and catch some of the excitement — and downright giddiness — people have about Drupal. Each episode also usually has a comment thread with links and followups from the podcast.
    * Lullabot, a high-profile Drupal consulting and training shop, has been doing podcasts since the beginning of 2006 without fail (if not quite on a regular schedule). These tend to be more than an hour long and cover a lot of ground, with five or more Drupalistas participating.
    http://www.lullabot.com/podcast
    Also at that link are Kent Bye's excellent Drupal Voices series, which are much shorter podcasts (around 5 minutes) generally interviewing one person from the Drupal community at a time.
    * DrupalEasy brings long-form, but more focused, interview-style discussions on topics relevant to the Drupal community.
    http://drupaleasy.com/podcast
    * Acquia, a company co-founded by the founder of Drupal and focused on bringing Drupal to enterprise projects, does short podcasts that usually feature a person currently making significant contributions to Drupal code.
    http://acquia.com/podcasts
    * Geeks&God, a podcast helping Christian ministries use technology, has long discussion podcasts which include a Drupal spotlight. These podcasts may be of interest for their attention to applying Drupal solutions for specific communities.
    http://geeksandgod.com/podcast
    Each of these podcasts are listed because they have a track record of releasing episodes up to the time of this writing. The authors will try to keep an up-to-date list of Drupal-related podcasts at http://definitivedrupal.org/resources/podcasts (short URL: dgd7.org/podcasts).
    Listening to podcasts isn't, strictly speaking, interacting with the Drupal community (unless we write or call back or remix the podcasts and post our own!), but it is an easy way to keep up on things, learn new things, and get into the community vibe.

    Meetups

    Offline gatherings of Internet inhabitants? It turns out Drupalistas are mad for getting together in person.
    The most comprehensive list of Drupal happenings can be found on g.d.o at http://groups.drupal.org/events. This is a great way to find out where events are on a particular day, but unless we're prepared to perhaps fly thousands of miles to Mumbai for a Drupal meetup, looking up events by the day may not be the most practical way to go. Instead, we want to join the group or groups closest to us.
    If we live in or are visiting Mumbai, we would want to be part of or visit the Mumbai group on g.d.o (http://groups.drupal.org/mumbai). At one time the India group was the most specific group available, but as the number of Drupalistas increases local user groups trend toward city- and region-specific. In Massachusetts, USA, for instance, there's Boston (which is used for Eastern Massachusetts) and Western Massachusetts.
    Tip No authority bestows the right to call Drupal meetups. Anyone can do so. If we are in a place without a meetup group, even a neighborhood of a city, or a suburb, or just between regularly scheduled meetups, we can call one ourselves. This is the other trick about meetups: we don't need to know any Drupal to call or help with them, let alone attend! It's better to do meetups with planning (line up at least one Drupal guru) and some promotion, but longtime Drupalista Cristefano set a responsiveness record by showing up at a Cambridge, Massachusetts, Drupal meetup called by this author with only a half-hour's notice. More on organizing and hosting meetups is in Chapter {contribute}.
    Knowing that it brings in people who may not have even seen g.d.o yet, some Drupalistas use their own funds to maintain Drupal groups on Meetup.com. In addition to true local meetup.com groups, there is a Drupal meetup group that tries to track Drupal events internationally, http://www.meetup.com/drupal-worldwide. However, anyone who posts a Drupal event only to MeetUp.com, Facebook.com, or any other service should be encouraged to post to the appropriate groups.drupal.org group.

    Drupal.org Issue Queues

    If there is one place where we must participate to be considered a member of the Drupal community, it is the project issue queues on Drupal.org.
    http://drupal.org/project/issues/user
    While the issue queues of drupal.org are the definitive meeting place of the Drupal community, this does not mean we should automatically turn to them first. Some modules are simply too popular for their maintainers to provide support in the issue queues. Sometimes we need to ask questions just to figure out what part of Drupal we want to ask something about. Sometimes we are so badly trying to bend Drupal to our unholy will that there is no existing Drupal core subsystem, Drupal module, or Drupal theme that fits what we are trying to do. Groups, forums, IRC, and meetups are all better places to get oriented.
    If we are asking about code that we are writing, we should always show it, somewhere, not just describe it.
    If just reading something could make us expert, there would be a lot more black-belts out there, or at least more time travelers, detectives, and heroines of all sorts.
    Note Other software built on principles of free software (also called open source) encourages the same participation and feedback. For instance, the Ubuntu operating system makes reporting bugs very easy, and we can see the bug tracker and the solutions people propose. Ubuntu's site pointing to ways people can participate in that community is http://www.ubuntu.com/community/participate – and it runs on Drupal!
    We should make sure to provide key information when reporting a problem, proposing a feature (to implement ourselves or ask someone else to do), or asking a question:
    * Describe the symptoms of the problem or bug (or missing feature) carefully and clearly.
    * Describe the environment in which it occurs (Drupal version, browser, server, operating system).
    * Provide the Drupal version your vendor's distribution and release level (e.g.: “Fedora Core 7”, “Slackware 9.1”, etc.).
    * Describe the research you did to try and understand the problem before you asked the question.
    * Describe the steps we took to try and pin down the problem ourselves before asking the question.
    * Describe any possibly relevant recent changes in our server setup or website configuration (even if it doesn't seem possibly connected).
    * If at all possible, provide a way to reproduce the problem in a controlled environment.
    Tip: This same advice applies to requesting commercial support.

    Drupal.org Forums

    http://drupal.org/forum
    The author must admit that most veteran developers are not known to frequent the forums, but the sheer level of activity and answer sharing is very impressive. Some posts receive answers a year after they were originally posted. We can search the forums with the d.o sitewide search, http://drupal.org/search.
    Active support forums include:
    Before you start (http://drupal.org/forum/20) – is Drupal right for our site?
    Installing Drupal http://drupal.org/forum/1
    Post installation http://drupal.org/forum/22 – most problems we run into or features we want can be asked about here.
    Upgrading Drupal (http://drupal.org/forum/21)
    Converting to Drupal (http://drupal.org/forum/37) – that is, migrating a non-Drupal site to Drupal
    Module development (http://drupal.org/forum/4)
    Theme development (http://drupal.org/forum/3)
    Translations http://drupal.org/forum/30
    As with free support anywhere, an answer, let alone a useful answer, is not guaranteed. If a person sees our post and thinks she knows the answer, and has the time and energy to answer— she will.

    Mailing lists

    http://drupal.org/lists
    "Wahoo, just answered my own question" (Karyn Cassio to development list, 2010 February 22 [NOTASKED]) is not only an acceptable, but a most excellent, way of interacting.
    This author wants to note that researching for this book (well, idly reading) threads where people help each other out has been downright heartwarming. If anyone's first experience with Drupal is negative, in terms of rudeness or help not given, not give up.

    Dojo, Kata, and other non-d.o community-oriented sites

    http://groups.drupal.org/drupal-dojo
    http://drupal-dojo.com
    Gus Austin has led the resurrection of Drupal Dojo, with Doug Vann participating. As of 2010, the Dojo tries to have a teaching session every Tuesday at 12:30 p.m. Eastern.
    The community we are in can be more important than its focus on a topic. The #drupal-dojo IRC channel, for instance, was for a time the most beginner-friendly. As the Dojo community has revived, this may become again the best place for committed new Drupalistas to learn and develop their skills— but we may also find another site or group (such as our local user group) to be the most comfortable for us.

    Camps

    The best way to find camps:http://groups.drupal.org/events?field_event_type_value_many_to_one%5B%5D=regional&uid=All
    Camps help us learn about things we didn't know we needed to learn about. Even though we have to go to the camp, the knowledge that is brought to us (pointed out by Jason Yee of Aten Design Group, among others). Camps can make learning more fun, also. Frequently it's a chance for free or very low price
    Doug Vann lay out the ways we can take advantage of DrupalCamps:

    • Attend
    • Organize
    • Volunteer
    • Promote
    • Watch the videos

    Tip Camps and larger meetups are another way to start contributing to the Drupal community before knowing any Drupal: \"I would be happy to do some coffee runs - I am a morning person and I love my caffeine. I am new to Drupal and the group. I figure this would be a good way to meet folks!\" Rosemary, http://groups.drupal.org/node/65448#comment-197988 [NOTASKED]

    Conferences

    Drupal has had two large conferences a year for several years now, many well-attended but less formal and often free camps, and innumerable meetups around the world. These are always announced on the front page of Drupal.org, among other places.

    IRC

    A lifeblood of the Drupal community, IRC, or Internet Relay Chat, is an ancient - er, venerable - form of instant messaging used mostly for group discussion. It is popular with Drupal and other software projects for talk about just about everything. Many key Drupal development decisions have been initiated or discussed there. More immediately important to people building Drupal sites, much help can be be obtained there. For free. There's a surprisingly good chance the world's top expert in the module we are using – the module author herself – will answer us.
    See http://drupal.org/irc for the main Drupal channels and more information on how to log in.
    A warning: We are not initiated into Drupal's IRC culture until someone has chastised us for asking support questions in a development channel, such as seeking configuration advice in #drupal-contribute instead of #drupal-support. (OK, let's consider ourselves chastised in advance and initiated, and save someone the time of asking the bot to explain it to us.) Confused yet? Let's take a step back.
    Drupal has not just one IRC channel, but many. They are intended for different purposes, and because the potential for overwhelming any one channel with off-topic messages is high, people try to stop wayward questions right away.
    Almost all drupal-related channels have the Drupal IRC bot running in them. It's name is Druplicon. It can look up Drupal.org pages to give their title, pass messages on to people, and store short answers or facts to hand back out when prompted.
    For instance, if we type into IRC a question like "Can anyone help me with my site?" or even "Can anyone help me make a view?" someone in the channel is likely to type back: "ask?" which triggers Druplicon to say:

    If you have a question, please go ahead and ask it. No need to ask permission. Tips on getting good help in IRC: http://workaround.org/getting-help-on-irc and http://blog.freenode.net/2008/03/helping-others-help-you/

    IRC is a medium of conversation where talking to oneself is perfectly expected. In other words, we must not get annoyed if we do not get a response. It is unlikely to mean that everyone hates us.
    [webchick's cartoon]
    The person who has pictured herself cowering under the covers is Angie Byron (webchick), the triumphant maintainer of Drupal 7.
    Note Drupal has made life a little easier for both newcomers and developers by moving deep development discussion to #drupal-dev, and making #drupal more of a free-for-all (but support questions should still go to #drupal-support).
    Life in IRC is not as harsh as this all be making it sound. Regularly seen events include:
    A person asking a question too long for IRC to transmit the whole thing, and a Drupal guru awakening from a nap still figures it out enough to answer.
    After we get an answer, and figure out that it works for us, we can post the solution to a drupal.org or g.d.o posting asking the question. The next seven-hour search for an answer that we save may be our own.
    1. Help others if and when we can.
    2. Try to figure out how to do what we need to do or fix our problem through reading the available documentation.

    Other

    DrupalRadar is a new online news source started by Steve Parks, a journalist turned Drupalista, to be a trade magazine, including weekly roundups of Drupal activity and special guest posts and interviews.
    http://drupalradar.com
    Even a Drupalista's personal blog can be a great source of information and, in some cases, even a place to ask follow-up questions.

    Tips for anywhere

    Have a thick skin

    A developer took over maintainership for an extremely popular project and completely rewrote its modules to take advantage of Drupal 7's new capabilities. The effort met general approval, and included a name change. This developer towards the end of this process asked a question about keeping or changing the name. A respected core contributor and by many accounts a very nice person advised not to in no uncertain terms, and the developer posing the question noted the harshness, and received this reply: "Yes - I am being a bit harsh to try to make clear that I think it's really a bad idea."
    If every person with something to offer the community (or gain from the community) left and disengaged the first time someone was unreasonably (or reasonably) severe in critique, we wouldn't have anyone remaining here.

    Resources

    Resources for participating in the Drupal community.
    http://drupal.org/planethttp://groups.drupal.orghttp://groups.drupal.org/
    Filter groups by geographical:http://groups.drupal.org/og/all?title_oper=contains&title=&gt_tid%5B%5D=141
    Groups filtered by working group (area of interest):http://groups.drupal.org/og/all?title_oper=contains&title=&gt_tid%5B%5D=142http://drupal.orghttp://drupal.org/forumshttp://drupal.org/irchttp://drupal.org/listshttp://api.drupal.org
    Internal name: communityImage: 

    ‹ Porting modules to Drupal 7
    up
    Inside Drupal ›

    IRC

    For the most immediate Drupal community fix, head on over to IRC (Internet Relay Chat). You can find set-up instructions and a full list of Drupal's IRC channels at http://drupal.org/irc . Community contributions are discussed in #drupal-contribute on irc.freenode.net.

    Like any other meeting place, IRC has its own customs and courtesies. To help you jump in without feeling or looking like an outsider, here are some of the most important points to remember:

    • Search before seeking. Chances are someone has already written documentation about your problem, and it will probably be more detailed than what you can get on IRC, or at least give you what you need to ask a more informed question.
    • Do not ask permission to ask a question: that's what we're here for. Don't ask who uses a module or if someone can help you with a problem. Ask a specific question. "I have a view in a panel, how do I pass in an argument?" Assuring people that it's okay to ask, or giving our resumes to every visitor is seen as a waste of time -- and disrespectful to the work our volunteers do.
    • Ask your question in the right channel. #drupal-contribute is not the place to ask for help with your site; #drupal-support is. See the list on drupal.org for info on all of our channels.
    • Don't repeat your question, either within the same channel or to multiple channels. If someone can help you, they will help you. If not, consider posting your question on the forums or mailing list. Repetition harms volunteers' work flow because it interrupts other conversations, or in an empty channel alerts everyone to new conversation when there is none.
    • Use correct English (or the appropriate language for non-English channels). Txtspk and 13375p34k are obnoxious to many of us and, since not all Drupallers are native English speakers, incomprehensible to others. It only takes a few more keystrokes to use proper English, and your questions are more likely to be answered.
    • Do be polite. Everyone on Drupal IRC is there because they enjoy the support-side of the Drupal community. When people are rude and disrespectful, volunteers get frustrated and burn or leave. Keeping a pleasant atmosphere makes more people want to volunteer their time.
    • Pay it forward. Nothing is more rewarding than to see the person one has been helping turn around and help others. Even if you are new, you can probably help with basic questions, and/or help others find the right documentation.

    Groups.Drupal.org

    Groups.Drupal.org lets Drupallers create groups around an interest or geographic area, so that it is easy to share news and information with others who will want to hear it. If you are passionate about accessibility, live in the greater Indianapolis area, or want to use Drupal for your newspaper's web site, or if something else entirely is your cup of Drupal tea, there is a Drupal group for you.

    Mailing Lists

    If you prefer to find the Drupal community in your inbox, join one of Drupal's mailing lists (http://drupal.org/mailing-lists). Lists are pretty straightforward: send an email to the list address (be on-topic please!) and it will go on to everyone subscribed to that list. You can read and reply to list messages just like any regular email. Most people find it helpful to tell their mail client to sort email list messages to their own folders so the inbox is less cluttered.

    Drupal.org Forums

    At http://drupal.org/forum you can find the Drupal web forums. They include places to post advertisements for paid gigs, places to get help with your Drupal questions and more. Courtesies observed here are similar to those recommended for IRC.

    The Issue Queues

    At the center of the Drupal community are the issue queues. An issue queue is basically a collaborative 'to-do' list where contributors come together to get things done. Drupal core and each contributed module and theme have their own issue queues on Drupal.org.

    Drupal core's issue queue can be found at http://drupal.org/project/issues/drupal , you can find a module's queue at http://drupal.org/project/issues/modulename (the same works for theme's) or from the link on its project page on Drupal.org. I highly recommend checking the "Contributor Links" under "Block Configuration" from your profile's edit page on Drupal.org. This will give you a list of useful links for contributing to Drupal.

    Most of Drupal's design decisions happen here in the issue queues; the same goes for modules and themes. Someone posts a task, bug, or feature request. Others confirm, comment, etc. Someone posts a patch, others test it.

    The chapter {CONTRIBUTING} covers how to use the issue queues, review or submit patches, or submit your own project to drupal.org so that others can find it (and participate on its issue queue). Here are some tips worth knowing before one jumps in:

    • You do not have to be an expert to contribute in the issue queue. Issue triage (marking duplicates as such, asking for more info about a vaguely-worded bug report, and so on) is useful, as is testing patches that others have contributed. These activities are also great ways to get to know other Drupal coders, and become familiar with the code base.
    • {TODO}

    In Person

    Use groups.drupal.org to find your local Drupal meetup group, and learn about Drupal Camps and Drupalcons. Face-to-face meetups are

    {TODO}

    Everything Else

    If it can be published, it's been published about Drupal: blogs, podcasts, books, videos/screencasts, tweets, dents, and more. A great place to start looking for this wealth of information is Drupal Planet, a collection of some of the best Drupal-related blogging on the web: http://drupal.org/planet

    Also popular are {TODO}

    Pieces

    Most people fall into more than one role and others define new categories (like Noneck Noel: "advocate for open communities, free culture, and transparent government"). The non-Drupal interests of those in the community are diverse and not cohesive, especially as many people discover Drupal when looking for an online platform for their own community of interest. (Indeed, Drupal itself was created for people who wanted to talk to each other about new internet technologies— in 1999.) Although there is a strong sentiment that anything in a Drupal channel should be about Drupal, Drupal people's other interests and qualities are being increasingly accepted as part of their Drupal identities.
    The common thread in the Drupal community is doing things with Drupal– in particular, in the words of Drupal founder Dries Buytaert, "innovating, collaborating, sharing, striving towards simplicity, and having fun."

    What makes one a part of the Drupal community?

    The Drupal community is not simply the users of Drupal. Some site administrators and Drupal programmers may not play any significant part in the Drupal community, and of course site visitors and participants may never even know they are using a Drupal site.
    In one sense, the Drupal community is defined almost tautologically as people who participate in the Drupal community.
    Figure 1. "Honor Societies", XKCD webcomic, by Randall Munroe, http://xkcd.com/703
    Really, though, it is the act of participation, bringing something back, that builds the community. The something that we bring back does not have to be a contribution in the sense of something materially useful; it can simply be our presence. Being part of the Drupal community might take the form of:
    * Sharing a module or theme with the world.
    * Suggesting a line of code for someone else's module or theme.
    * Providing a one-word correction to a comment that explains a line of code in Drupal.
    * Calling a Drupal meetup in a local café or library– or simply showing up at one.
    * Writing a blog post anywhere on the internet about a Drupal problem solved or a cool thing done with Drupal.
    * Giving a useful response to someone's question on any of a dozen means of communication.
    * Discussing business practices and Drupal 8 settings Application Programming Interface (API) improvements while riding in the back of a pickup truck on a side trip to go skydiving during a Drupal conference.
    * Demonstrating a site or asking a question (or responding to someone else's demonstration or question) in person at a Drupal event anywhere in the world.
    All of these are real examples (though some are, admittedly, a bit more specific than others).
    Membership and status in the Drupal community is not based on anything like the academic concepts of merit or a professional certification. It's not what we know or what credentials we have that matters to other Drupalistas. What matters is what we do. Chapter {contribute} covers some of the many ways we can contribute back to Drupal; and there are many ways in addition to code.
    Reading this book doesn't make us part of the Drupal community. Going and doing something with or for the Drupal community makes us part of the Drupal community.
    Being the world's foremost expert on the ground-breaking Fields system, which changes the way sites and modules are built in Drupal 7, doesn't make one part of the Drupal community, either. However, it would be impossible to become expert — at the level where one's code is in Drupal core — without working with others. Thus, the people we have to thank for Fields — Karen Stevenson (karens), Yves Chedemois (yched), Barry Jaspan (bjaspan), and Nathaniel Catchpole (catch), among others — are involved in the community.
    Using Drupal, in itself, does not make us part of the Drupal community. Seeking knowledge from others and sharing knowledge with others, building something and bringing something back, both makes the community and makes us a part of it.
    Another distinguishing feature of the Drupal community that fits with the do-ocracy ideal (those who do, decide) is that most important participation is in a volunteer capacity. Even for people who have full-time jobs doing something with Drupal, most of the things we talk about as involvement in the community are done without monetary compensation.
    Why do so many people put so much time and effort into participating? The reasons are myriad. As shown throughout this book, it is part of doing Drupal right. For developers, participation means better code, with the widest possible use and with the most potential for other people to contribute, too. Perhaps the most compelling reason to participate is that we are building something much larger than ourselves; we are building both the code and the community. The code cannot be taken away from any of us thanks to Drupal's use of the GNU General Public License (GPL) from the Free Software Foundation. This means that the software our community is based around always belongs to the community.
    Note Free software, in the sense of liberty, is a crucial basis for the Drupal community. To learn more about this idea that people should always be able to see, change, and share software they use, see http://www.fsf.org/about/licensing/essays/free-sw.html.
    As this is the Getting Started part of the book, the next section highlights some reasons for participating that are most compelling for newcomers to the community.

    Why take part in the Drupal community?

    We participate in the Drupal community for the people in it, of course. There are good people. There are interesting people. There are passionate people. There are fun people. There are people who know more than we do.
    Let's concentrate on that last one. No matter how smart we are, no matter how much knowledge we have, no matter how many Lullabot podcasts we listen to or Drupal books we read, no matter how many lines of code we've read or written, someone else will always know more about something in Drupal.
    Drupal users and developers of all levels of skill and knowledge help each other all the time. We join, contribute to, and ultimately foster this community. We do this, along with thousands of others who may have little else in common with one another, because we want to be successful with Drupal and because we want Drupal to be successful.
    Note Drupal people are irrationally passionate about Drupal. No one wants a potential user of or contributor to Drupal to turn away because someone else was rude or unhelpful. We take advantage of this nearly every time we get help from the Drupal community. Drupal software is free in its price, too: Anyone helping us is almost certainly doing so with unpaid time on top of other contributions. It is also not likely that this person has had (or had any interest in) customer service training. To these unselfish sharers of knowledge, to the next person looking for help, and to ourselves, we owe it to be keenly considerate at all times.
    The authors, in this chapter and throughout the book, try to make us, the readers and users of this book, people whom other Drupalistas will want to help. If we show a capability to learn, share our knowledge once we have it, and try to help others with their questions (\"pay it forward\"), people will be glad to have helped us. If we can only remember two things in interacting with people in Drupal, though, let the two things be patience and respect. This advice applies to both first-time site builders and expert developers.
    Building sites well demands a sense of site architecture and available features; an understanding of site configuration and administration; skills in front end design and development; and, for complex custom functionality, coding. All these – and an ability to deploy the site – are part of the complete package of site building.
    A new site builder won't know all of this. An experienced one won't know everything either. There is always more to learn, even after completing this book, a training course or two, a spiritual quest, and the top-to-bottom creation of twelve fantastic web sites.
    This complexity applies to building web sites with anything, but doing Drupal right means a huge amount of information should be within our grasping distance. Some modules are so valuable that most Drupal sites will have them. A few, such as Views, can be marvelously complex in their configuration, matching their power. This book covers most of these must-have modules and some of the rest, but one of the thousands of other modules – more than could be covered in even dozens of books – may be precisely what our next site needs. A game-changing module could come out tomorrow, also. Themes already contributed to Drupal 7 provide hundreds of designs to choose from. Dozens of these provide excellent bases for making our own custom themes, via subthemes that afford infinite ways we can modify a site's look (even with stylesheets alone). And then there are related projects that help with our Drupal development, administration, and deployment, such as Drush and Aegir. New versions of modules will come out, as will new versions of Drupal itself. And then there is the code itself that makes up Drupal and all these projects which, without exception, we can look at and improve on and add features to, and rely on when coding our own projects that extend all these possibilities still further. And then…
    Limitless possibilities require limitless learning opportunities.
    Talking, meeting, and helping sound a lot less lonely than working solo, or even in a company, but beyond the mental health benefit the chief practical value of taking part in the Drupal community may be answers. Answers, sometimes, from the world's foremost experts in the relevant area: the developers who wrote the code we're working with.
    We can always turn to paid consulting, support, and training, but the people we pay to learn from (if they are good) will be taking part in the Drupal community, and (if they are good) they will encourage us to do the same. We may as well start to participate as early as possible.

    How do we take part in the Drupal community?

    We can participate in the Drupal community pretty easily– by finding some people in it and asking a question.
    Tip If this chapter's emphasis on participating in the community only to take from it seems a little off, that's good. When we start out, we have to start somewhere, so getting help makes more sense than giving back‚ but there are many ways we can give back, including simple thanks and monetary sponsorship. We should give back in these ways, which are available to anyone. Chapter {CONTRIBUTE} introduces many of the other ways we can give back to Drupal.
    One of the ways we can help Drupal get better is easiest for us to do when we are starting out, and so it is worth mentioning early. Each release announcement for Drupal 7 while it was in development always asked:

    Are you completely (or relatively) new to Drupal? Or do you know just enough to be dangerous? Are you used to working with other content management systems and willing to lend your perspective in improving the way Drupal works? If so, you're a perfect candidate to help with usability testing and improving documentation!

    Note also that trying to answer other people's questions is a great way to learn. Likewise for contributing anything to Drupal: participating by contributing is an amazing way to learn because when we give something the community needs, our attempts are reviewed.

    I submitted really bad code. Chx told me I was doing it wrong. And I got better.

    — core contributor Susan Stewart (HedgeMage)
    That's the essence of community participation: Getting better with the help of others, helping others get better, and — through helping others — getting better ourselves and making Drupal as a whole better.
    Where do we get started? We take our pick from the many on-ramps introduced below. Podcasts, meetups, issue queues, Internet Relay Chat (IRC), forums, groups.drupal.org, mailing lists, twitter, blog posts, and online learning sessions all make up the infrastructure of the Drupal community.
    We do not have to participate in all of these communication channels to be part of the Drupal community. Many Drupal developers do not visit the forums. Some key community members, such as Drupal founder Dries Buytaert, are rarely seen on IRC. Other key community members, such as Drupal 7 maintainer Angie Byron, seem to listen and participate there 24 hours a day. It is unlikely that anyone reads everything on the mailing lists, or that anyone reads all blog posts. Altogether, keeping up with everything on all these mediums would be impossible. However, taking part in some of these channels most of the time, or most of them some of the time, makes our Drupal work and life better and can make everyone's Drupal work and life better.