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

A presentation at Adastral Women in Tech group in July 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. Improve the tools that you rely on - x bugs, help to add new features, improve the documentation, help them have a better web presence. 2. Improve your own skills - work with people from around the world who are at the top of their game. Access mentoring and support to grow your abilities. 3. fi Develop your reputation and career by working in the public and making a difference in the world. Develop friendships and learn leadership and management skills. Attract potential employers to you, rather than chase them!

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

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 your rst contributions. fi fi fi fl opensource.guide/how-to-contribute fi fi fi Useful resources.

Slide 23

Slide 23

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 24

Slide 24

Top tips 1. Ask for help early! 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 others

Slide 25

Slide 25

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

Slide 26

Slide 26

Fix a docs bug with DDEV. https://github.com/drud/ddev/issues/4034

Slide 27

Slide 27

Test a bug x in Mautic. https://github.com/mautic/mautic/pull/11352 fi https://github.com/mautic/mautic/pull/11346

Slide 28

Slide 28

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