First-time Contributor Workshop

Slides: rl.cm/ftcw-ams

First-time Contributor Workshop
Brian Gilbertrealityloop
Jordana Fungjordana

Slides: rl.cm/ftcw-ams

Code of conduct
Drupal’s dedication:● Safeevents.drupal.org/code-conduct● Inclusive● Welcoming

Drupalcon contact● Harassment-free

conduct@association.drupal.org
Drupal CWG
drupal-cwg@drupal.org
www.drupal.org/community/cwg

Slides: rl.cm/ftcw-ams

Even if you can’t make a patch,
you can still contribute!
You can be a huge asset to the project without
ever running Drupal on your own laptop

Slides: rl.cm/ftcw-ams

Photo CC BY-NC-SA Barry Madore https://flic.kr/p/7VgBEGSlides: rl.cm/ftcw-ams

How does a contribution event work?

1.
2.
3.
4.

Sit at a round table
Find an issue together
Discuss and establish consensus
Work on remaining tasks:a. Update Issue
b. Write patch
c. Add a test
d. Manual test
e. Reviewf. RTBC

Slides: rl.cm/ftcw-ams

Photo CC-BY-SA 2.0 Michael Cannon https://flic.kr/p/GZs16Q

With just a d.o account●●●●●Improving documentation ondrupal.org pages
Translation on localize.drupal.org
Drupal Association Membership
Give back to Modules/Distro throughOpen Collective / Patreon
Recording Initiative looking forvolunteers to help

plus the Issue Queue
●●
●

●

●
Slides: rl.cm/ftcw-ams

Issue triage (eg. verify issues stillhappen) - works for simpler problems
Test existing patches on issues (eg. withsimplytest.me)
Test experimental features, eg. theClaro admin theme that is in beta
experimental stage (eg. onsimplytest.me)
Provide feedback on changes proposed
based on issue screenshots orsimplytest.me(eg. the new Olivero
theme that is in the feedback period
during DrupalCon Amsterdam)
Work on marketing materials effort

.. local dev environment●

Work on code ﬁxes, submit patchupdates.. and specialised local tools●●

Drupal 9 readiness checking (contrib oryour site)
User Guide writing, User Guide
translation

https://www.drupal.org/docs/user_guide_guidelines/index.html
Slides: rl.cm/ftcw-ams

How to communicate witheach other
Slack:
drupalslack.herokuapp.com
Join#2019-ftc-amsterdam#contributeMore chat options:drupal.org/chatSlides: rl.cm/ftcw-ams

Slides: rl.cm/ftcw-ams

drupal.org/user#DrupalContributions

Slides: rl.cm/ftcw-ams

drupal.org/association#DrupalContributions

Slides: rl.cm/ftcw-ams

drupal.org/community#DrupalContributions

Slides: rl.cm/ftcw-ams

drupal.org/documentation
api.drupal.org#DrupalContributions

Slides: rl.cm/ftcw-ams

drupal.org/project/drupal#DrupalContributions

Slides: rl.cm/ftcw-ams

Issue Queuedrupal.org/project/issues/drupal#DrupalContributions

Slides: rl.cm/ftcw-ams

Issue Queue
How Do I Find a Novice Issue?
●●●

Navigate to the Issue Queue
Select the Advanced Search Option
Search the queue by:○ Component○ Status○ Priority○ Category○ Issue Tags
■ novice■ Amsterdam2019

drupal.org/project/issues/search/drupal
Slides: rl.cm/ftcw-ams

http://bit.ly/novice-amsterdam2019

Issue Queue
Novice code contribution guide drupal.org/novice

image

Slides: rl.cm/ftcw-ams

Issue Queue
How Do I Choose an Issue?
●

●
●

●
●

Check status (needs review or needs
work), priority (not critical) andcategory
Read issue summary and comments
Add a comment to the issue letting
other know that you are going to workon it
Check with a mentor if unsure of nextsteps“Follow” the issue - now appears on
your dashboard

drupal.org/dashboard
Slides: rl.cm/ftcw-ams

Patch creation and review
It’s easier than you think!!
Write a patch:● Download the repo
● Create a new branch● Make and save changes● Commit the changes● Compare the branches● Upload the patch, write acomment, and update thestatus

Slides: rl.cm/ftcw-ams

You don’t have to know code totest a patch!!
● Test the patch○ Simplytest.me○ Locally in git repo
● Provide useful information○ What did you test for andlook at?
○ Attach screenshots● Update the status

How to’s
Contribution resources:● Applying a patch● Creating a patch● Creating an issue● Interdiffs
http://bit.ly/contribution-resources

Slides: rl.cm/ftcw-ams

What other tools are helpful forreviewing code and patches?
Dreditor
Simplytest.me● Chrome http://bit.ly/dreditor-extension ● https://simplytest.me/● Firefox https://rl.cm/dreditor-ff

Slides: rl.cm/ftcw-ams

Slides: rl.cm/ftcw-ams

How do I contribute after today?

●●●

Core mentoring hours every week
○ 4-6 pm ET Wednesdays○ join #contribute on drupal Slack and say hi, I’m here tocontribute○ mentors will help you through IRC or SlackContribution Days at most Drupal camps and DrupalCons
Global Contribution Days held every January

Slides: rl.cm/ftcw-ams

Helpful links

●
●
●
●
●
●
●
●
●

drupal.org/user/register
drupal.org/association
drupal.org/community
drupal.org/documentation
api.drupal.org
drupal.org/project/drupal
drupal.org/tools
drupal.org/novice
drupal.org/project/issues/drupal

Slides: rl.cm/ftcw-ams

●
●
●
●

●

Drush - drupal.org/node/1791676
https://getcomposer.org/
Drupal console - scaffold code
drupal.org/node/2361869
Dreditor http://bit.ly/dreditor-extension
https://rl.cm/dreditor-ff
Simplytest.me https://simplytest.me/Time to split up
I’m ready to start contributing

I want to setup dev tools

You are awesome!!

You are awesome too!!

Mentors will now guide
you to the best place tobe.

But stay here and we’ll
give you some more info
about the local dev tools,and help you get themset up on your machine

http://bit.ly/novice-amsterdam2019

Slides: rl.cm/ftcw-ams

Local Development Tools
drupal.org/tools

Slides: rl.cm/ftcw-ams

What tools do I need for code changes?
Local Drupal 8 environment - lots of choices● Community sprint tools which is installing (you started earlier using Resilio sync)● https://www.drupal.org/project/drupal choose version control and then 8.9.x version● git clone --branch 8.9.x https://git.drupal.org/project/drupal.git
GIT for version control● git.scm.com/download
IDE● PHPStorm (30 day trial) - uses Drupal Coding Standards● Sublime Text, NetBeans, Eclipse, Notepad ++, vim, VS Code

Slides: rl.cm/ftcw-ams

Introducing QuickSprint
Requirements:● Windows 7 64-bit or higher● MacOS Sierra (10.12) or higher● Linux● 6gb or more of memory

Slides: rl.cm/ftcw-ams

You can still contributewithout these tools!
● Drupal quick-start● simplytest.meWhat am I downloading?
drupal.org/tools

This script will install a development environment to participate in thissprint.
It does the following:
1. Provide installed for Docker, git etc.
2. Install ddev cli helper
3. Copy required components to ~/Sites/sprint/
4. Pre-loaded docker images for the sprint toolkit:
a. Drupal 8b. phpmyadminc. MailHog (web based mail testing)Slides: rl.cm/ftcw-ams

ddev sprint - the sync is done - now what?
●●

Select the package ﬁle to unzip (.tar.gz for Linux/Mac, .zip for
Windows)
Install Docker from installls directory if you need it (.dmg ﬁle forMac, .exe for Windows, package manager for linux)

Slides: rl.cm/ftcw-ams

ddev sprint - sprint package folder
In a terminal cd to the drupal_sprint_package
folder you just extracted$ cd Downloads/drupal_sprint_package

Slides: rl.cm/ftcw-ams

ddev sprint - run install script
Run./install.sh(Linux./install.sh (Windows)&The script will detect if Docker is running

Slides: rl.cm/ftcw-ams

Mac)ddev sprint - run startup scripts
Follow prompts as script runs
$ cd ~/Sites/sprint$ ./start_sprint.sh$ cd sprint-[date] folder$ ./start_clean.sh

Slides: rl.cm/ftcw-ams

What other tools are helpful for coding?
Drush● Install - drupal.org/node/1791676
Drupal.org CLI● https://github.com/mglaman/drupalorg-cli
Composer - a dependency manager for PHP● https://getcomposer.org/
Drupal console - scaffold code
● drupal.org/node/2361869
Slides: rl.cm/ftcw-ams

What did you think?
Locate this session at the DrupalCon Amsterdam website:
https://drupal.kuoni-congress.info/2019/program/

Take the Survey!
https://www.surveymonkey.com/r/DrupalConAmsterdam

Join us forcontribution opportunities
Thursday, October 31, 2019

MentoredContribution

First Time
Contributor Workshop

GeneralContribution

9:00-18:00
Room: Europe Foyer 2

9:00-14:00
Room: Diamond Lounge

9:00-18:00
Room: Europe Foyer 2#DrupalContributions
Slides: https://rl.cm/ftcw-ams