managing and contributing to open source projects

23

Upload: spark-solutions

Post on 22-Mar-2017

408 views

Category:

Software


2 download

TRANSCRIPT

About me

Ruby & JavaScript engineer with 10 years of experience.

Worked for startups, software houses, marketing agencies. Founded my own startup with 2 VC funds, exited 2 years ago.

CEO @ Spark Solutions

Tech lead @ Spree Open Source

We will talk about..

1. Managing large scale Open Source projects

2. Contributing to Open Source

Spree Open Source Project

• biggest and most popular e-commerce framework for Ruby & Rails

• used by well-known brands and 45k stores aroung the globe

• created by Sean Schofield in 2007• $6.5+ mln of funding

Spree Open Source Project

• 650+ contributors• 7k GitHub stars• 16k commits• 2.6k tests

Spark + Spree = :heart:

• Spree is in our company’s DNA• 90% of our projects are Spree-based• we started working with Spree around 2010• we were chosen by Spree CEO to lead the

open source project forward• contributed to several Spree extensions in the

past

Healthy OSS project needs..

• clear development roadmap• dedicated Core Team• project management• community management• reasonable versioning policy and migration

path

OSS is not only writing code

• coding is less than 50% of time spent on OSS• reviewing PRs• responding to Issues• communicating with the community

Tools we use

Easy contributor onboarding

• developer docs• CONTRIBUTING.md• coding style guidelines• Rubocop/ESlint/Sasslint/editorconfig config

files in project• CI & other tools integrated into the process

Be polite

• say “Thank you” a lot• be patient• be communicative• be helpful

Be assertive

• Thanks, but..• Not everything can be merged• Less is more• know when to say NO

CONTRIBUTING

Why contribute?

• for fun & profit :)• learing new stuff• meeting interesting people from around the

globe• sharing knowledge• increasing Your value in the job market

How to contribute?

1. Find a problem (from your own experience or check the Issues section of the project)

2. Code3. Submit a PR4. Profit!

A really bad PR...

A good PR!

What makes a good PR?

• small• fixes only one problem at a time• well described in proper english (use

grammarly!)• includes additional tests if needed

What makes a good PR?

• Tackling multiple issues? split it into multiple commits

• Tackling one issue? Squash your commits into one

Useful GIT commands

• git rebase -i HEAD~5squash multiple commits into one

• git commit --ammendchange commit message (eg. fix a typo)

Other forms of contributions

• file issues• help other community members• star projects you use• code review PRs

Thank you!