Learning Through Doing: Finding Your Way To Contributing In Open Source Projects

A presentation at Devcareer.io meetup in October 2022 in by Ruth Cheesley

Slide 1

Slide 1

Learning through doing Finding your way to contributing in open source projects @RCheesley

Slide 2

Slide 2

Ruth Cheesley (she/her) Mautic Project Lead ruth.cheesley@mautic.org speaking.ruthcheesley.co.uk for slides, recordings, links and resources @RCheesley

Slide 3

Slide 3

Getting started in open source. What we’re going to cover today 1. 2. 3. What is open source, and why might we want to consider contributing? How did I get started? How do you decide on what to contribute, and which project to get involved with? How do you actually contribute to an open source project? Let’s have a go! [there will be homework!]

Slide 4

Slide 4

What do we mean by open source? Share your thoughts in the chat… @RCheesley

Slide 5

Slide 5

“ The term open source refers to something people can modify and share because its design is publicly accessible. Open source projects, products, or initiatives embrace and celebrate principles of open exchange, collaborative participation, rapid prototyping, transparency, meritocracy, and community-oriented development. - opensource.com @RCheesley

Slide 6

Slide 6

Why contribute to open source? What’s your reason? @RCheesley

Slide 7

Slide 7

There are many reasons! 1. Give back to improve the tools that you rely on 2. Improve your own skills 3. Develop your reputation and career

Slide 8

Slide 8

Some interesting projects Open source is not only about coding! @RCheesley

Slide 9

Slide 9

Wikihouse.cc. An open source architecture project that is created by a global community of architects, designers, engineers, scientists, organisers and entrepreneurs. Aims to put the knowledge and tools to build beautiful, zerocarbon buildings into the hands of every citizen, community and business. @RCheesley

Slide 10

Slide 10

arduino.cc. An open source electronics platform based on easy-to-use hardware and software, intended for anyone creating interactive electronics-based projects. Arduino’s mission is to enable anyone to enhance their lives through accessible electronics and digital technologies. There was once a barrier between the electronics, design, and programming world and the rest of the world. Arduino has broken down that barrier. @RCheesley

Slide 11

Slide 11

Joomla.org. An open source Content Management System (CMS) which allows you to build powerful, dynamic websites and applications primarily for publishing web content. Aims to be the most exible, extendable platform which enables web creators to build powerful websites and applications with a free and open source community-powered platform. fl @RCheesley

Slide 12

Slide 12

mautic.org. An open source Marketing Automation tool which empowers marketers to learn about their customers and personalise their communications across multiple different channels to develop a trusted relationship with the individual. Aims to enable marketers to free their marketing through fully open source, customisable marketing automation tool which delights both the user and the customer alike. @RCheesley

Slide 13

Slide 13

My journey to contributing in open source From user to complainer to contributor! @RCheesley

Slide 14

Slide 14

H O W I G OT TO H E R E NOT THE TRADITIONAL ROUTE! P H YS I O T H E RA PY I T / W E B D EV COMMUNITY Started out doing Sport Science then Physiotherapy at Uni - tech was never a career suggested despite being geeky! Worked part time jobs at uni on a computer helpdesk, got a job as an IT Technician and then health data analyst, then created a digital agency doing web design Volunteered in Open Source communities (documentation, user groups, writing content) resulting in leadership roles in several communities Photo by Toa Heftiba on Unsplash Photo by Taylor Vick on Unsplash @RCheesley Photo by Ekke Guembel

Slide 15

Slide 15

2003 2008 2012 Started using open source tools Needing to pay off loans from Started working with Joomla as my main (Knoppix, Ubuntu, ClamAV, University, I started building occupation and proposed my first talk for HijackThis) to fix infected Joomla! websites and freelancing the Joomla World Conference in San computers for other students while alongside work. Jose (supported by Passport to Export scheme) - joined GitHub! at Uni, as ‘Essex Virus Removals’. My contribution journey Section divider 2007 2009 My first job in IT after graduating as Started a local Joomla user group a physio! Working in a school as an as I wanted to meet other Joomla IT Technician, I was asked to rebuild users and find ways to do things / the website. Came across Content have people to ask when I got stuck. Management Systems (Drupal, Joomla!) and started using Joomla. We met monthly and quickly gained a committed group of members. @RCheesley

Slide 16

Slide 16

2013 2015 Created my first bug report on Raised my first issue and PR for Stepped up to Mautic Project Lead after GitHub! Invited to join the Joomla Mautic - a project that has just the founder decided to step back from Community Leadership Team to launched and which I used for involvement with the project. Led my support User Groups and clients in our Digital Agency. first release, established our community 2020 governance model, teams and values. Marketing. Section divider 2014 2019 Created my first PR at a Pizza, Bugs Started work at Acquia as Mautic and Fun event to fix a bug in Community Manager, helping the Joomla, which was merged the day open source community to after it was submitted! 🥳 establish its own governance and autonomy from the corporate Joined the Joomla Marketing Team. entity which was acquired by Acquia in 2019. @RCheesley

Slide 17

Slide 17

Ways you could contribute The sky is the limit! @RCheesley

Slide 18

Slide 18

“ “Ask not what your country open source project can do for you - ask what you can do for your countrymen open source project.”

Slide 19

Slide 19

Section divider

Slide 20

Slide 20

Finding a project Deciding where you want to contribute @RCheesley

Slide 21

Slide 21

Three things I look for in a project 1. Cool (to you!) 2. Culture and Community 3. Contribution guide

Slide 22

Slide 22

Deciding where to contribute. • What projects are you already using, want to use, or are familiar with/attracted to? • If you ever see something that could be improved in any open source project, improve it! Spotted a typo or a broken link? Fix it! • What skills do you have that you would like to use? Make a list of the things that you enjoy doing, and remember, it does not need to be code!

Slide 23

Slide 23

rsttimersonly.com Packed with useful information to help rst-time contributors nd projects and issues to work on. rstcontributions.github.io A tutorial where you make a contribution to this project - perfect for learning how the GitHub contributions work ow works. Great resources to help you nd your way in making opensource.guide/how-to-contribute your rst contributions. An initiative to encourage people to contribute to open source on a Friday. fi fi fi fl opensourcefriday.com fi fi fi Useful resources.

Slide 24

Slide 24

Getting started. Check the contribution guidelines .github/CONTRIBUTING.md Join the community Synchronous chat - eg Slack, Discord, IRC etc Mailing lists Issue queue (may not be on GitHub) Find an issue or project to work on Raise the issue and state you would like to work on it Join the new contributors chat and ask for a task

Slide 25

Slide 25

Top tips 1. Ask for help early (but do your research rst!) 2. Be clear with your descriptions of what you have done, and how people should review or check your work 3. Consider also helping with reviewing the work of fi others

Slide 26

Slide 26

Let’s get started! Live contribution time! @RCheesley

Slide 27

Slide 27

Update a page on the Mautic docs. https://mautic.atlassian.net/browse/TEDU-128

Slide 28

Slide 28

Test a bug x in Mautic. https://github.com/mautic/mautic/pull/11610 fi https://github.com/mautic/mautic/pull/11491

Slide 29

Slide 29

fi Homework! 1. Make a list of the skills that you want to offer to open source communities 2. Find a community that appeals to you, and join the community chat 3. Make your rst contribution to open source - and be sure to share it with us on Slack!

Slide 30

Slide 30

Ruth Cheesley (she/her) Mautic Project Lead What questions can I answer? ruth.cheesley@mautic.org speaking.ruthcheesley.co.uk for slides, recordings, links and resources