1st Time Contributing to Drupal

— with mparker17

Slides at mparker17.github.io/reveal.js-drupal_contributing/ Speaker notes at github.com/mparker17/reveal.js-drupal_contributing/blob/gh-pages/speaker-notes.html
mparker17's avatar

Who am I?

  • Matt Parker, mparker17 on Drupal.org, Github, and Gitlab
Current employersFormer employersQualifications
Digital Echidna, Brady's Meat & Deli Environment Canada,
Versabanq,
UWaterloo,
PeaceWorks,
Myplanet, OpenConcept Consulting
Acquia Certified Drupal Developer, CS degree not completed at UWaterloo

What do I know about contributing to Drupal?

  • 10 years, 1 month on Drupal.org
  • I used to write the Drupal 8 Core Updates occasionally.
  • 52 commit mentions in Drupal 8.0 core, 3 commit mentions in Drupal 7 core
  • I (co-)maintain 16 modules (plus ~15 sandbox projects).
  • 445 commits to various modules, including Panopoly, Metatag, Examples, Environment Indicator, Search API Pages, Site Audit, and the Drupal.org theme Bluecheese.
  • 17 people list me as a mentor on Drupal.org; I've trained/mentored ~32 co-op students in Drupal for my employers.

Other notable things

  • I never completed a degree — no formal education
  • I have 20 mentors listed on Drupal.org
  • I'm a bit dyslexic
  • ... the point is, I'm not really all that special, and a lot like you.

Why contribute?

People contribute to OSS for many reasons... here are some common ones:

  • make the world a better place,
  • help others in the same situation,
  • all this software they got for free is paying their bills, and they feel like they should do something in return,
  • want others to check their work (e.g.: for security),
  • save themselves time in the future,
  • establish a reputation to find work / get a better paying job,
  • establish influence and become Thought Leaders,
  • establish an industry standard and gain competitive advantage
Whatever your motivation(s), keep Drupal's code of conduct in mind!

How can I help?

You can still contribute to Drupal, even if you don't write code!

If you can write code (or theme), you can contribute by writing patches to projects that already exist; or starting your own projects.

A project is usually a module, theme, distribution, or Drupal Core itself.
Get started at drupal.org/contribute and drupal.org/contributor-tasks

Issue queues

The Drupal community collaborates mainly in Drupal.org's "issue queues".

An issue queue is just a list of things that need to be addressed for a given project, like JIRA tickets.

A project is usually a module, theme, distribution, or Drupal Core itself; but there are some "Community" projects that have no code: just a list of issues for people to collaborate on.

Community project examples: documentation, mentoring, Drupal.org infrastructure, Drupal.org content.

Issues may be Plans, Tasks, Bug reports, Feature requests, or Support requests; they have a priority and status, can be assigned, and can be tagged with taxonomy.

There is a guide at drupal.org/issue-queue

Issue metadata

The issues on Drupal.org have metadata which determines which queue they are in, which type, etc.

When you comment on an issue, you have the opportunity to change the issue's metadata at the top of the Add New Comment form.

A screenshot of Drupal.org's New Comment form Issue Metadata section. This is what the New Comment form's Issue Metadata section on drupal.org/node/2958021 looked like to me on 2019-08-01.

Attributing your contributions

When collaborating in an issue queue, Drupal.org has a feature to let you attribute your contributions so you can give yourself / your employer / your client credit.

On the Add New Comment form, this is just below the Issue Metadata section.

A screenshot of me attributing a contribution to my employer Brady's Meat and Deli. A screenshot of Acquia's 429 issue contributions in the past 3 months. A screenshot of Drupal's list of organizations.

When should I contribute?

  • Volunteering?
    • Volunteer when you have time.
    • Don't burn yourself out! If you run out of time/energy, that's okay: the community can (usually) pick up where you leave off.
  • At work?
    • Easier to sell boss/client on contributing bug fixes.
    • Developed something new?
      • Ask permission from your boss/client to contribute it.
      • Consider splitting some of the work on company time, some on your own time.
    • Show off your latest project by writing a case study!
Drupal.org has resources for convincing senior management to give back to Drupal!

Where do I contribute?

Frequently mentioned contribution barriers

But I'm not experienced / smart enough / qualified to help!
You're just as smart / qualified as the rest of us!
Inexperienced people are better at identifying UX/DX problems than experienced people!
But I don't know where to start!
There are lots of tools/programs to help:
Post that you are novice looking for suggestions about how to make your first contribution in #contribute (Slack) or #drupal-contribute (IRC)
But I don't have enough time!
Maybe your employer does!
Some contributions are quick — and you'll get faster with practice.
But Drupal.org limits how much I can post
This means that you don't have the "confirmed" role
Talk to me afterwards (or anyone with community role): we can confirm your user account

Thanks!

Resources, references, special thanks:

Slides at mparker17.github.io/reveal.js-drupal_contributing/