Slide 1

Slide 1 text

The Handwaver's Guide To Contributing To Open Source @mattstratton - ChefConf 2017

Slide 2

Slide 2 text

whoami @mattstratton - ChefConf 2017

Slide 3

Slide 3 text

Who is this talk for? » Enterprise Architects » Solution Architects » Customer Architects » are you seeing a pattern? @mattstratton - ChefConf 2017

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Why contrbute rather than start fresh? » You don't really know what you're doing » You're working totally alone » Chance are, you'll follow some major anti-patterns » Heck, you might invent some of your own! @mattstratton - ChefConf 2017

Slide 6

Slide 6 text

A small example from my own history mattstratton/devopsdays vs chef-cookbooks/delivery-sugar @mattstratton - ChefConf 2017

Slide 7

Slide 7 text

Don't call it an agenda » Determining when to conribute » Don't go it alone » What not to contribute » How to work with containers maintainers @mattstratton - ChefConf 2017

Slide 8

Slide 8 text

Where do I start? @mattstratton - ChefConf 2017

Slide 9

Slide 9 text

Solve someone else's problem @mattstratton - ChefConf 2017

Slide 10

Slide 10 text

Scratch your own itch @mattstratton - ChefConf 2017

Slide 11

Slide 11 text

Don't just make your own thing @mattstratton - ChefConf 2017

Slide 12

Slide 12 text

What not to contribute @mattstratton - ChefConf 2017

Slide 13

Slide 13 text

Working with maintainers » Follow the contibuting guidelines » Make your changes small and understandable » Test your stuff » Don't take it personally @mattstratton - ChefConf 2017

Slide 14

Slide 14 text

Follow contributing guidelines @mattstratton - ChefConf 2017

Slide 15

Slide 15 text

CONTRIBUTING.md From spf13/hugo Code Contribution Guidelines To make the contribution process as seamless as possible, we ask for the following: - Go ahead and fork the project and make your changes. We encourage pull requests to allow for review and discussion of code changes. - When you’re ready to create a pull request, be sure to: -- Sign the CLA. --Have test cases for the new code. If you have questions about how to do this, please ask in your pull request. --Run go fmt. --Add documentation if you are adding new features or changing functionality. The docs site lives in /docs. --Squash your commits into a single commit. git rebase -i. It’s okay to force update your pull request with git push -f. --Ensure that make check succeeds. Travis CI (Linux and macOS) and AppVeyor (Windows) will fail the build if make check fails. --Follow the Git Commit Message Guidelines below. @mattstratton - ChefConf 2017

Slide 16

Slide 16 text

Make your changes small and understandable @mattstratton - ChefConf 2017

Slide 17

Slide 17 text

A bad change: PR#341 - Fixes some stuff A good PR: PR#341 - Enable the use of TOML in addition to YAML in configuration files @mattstratton - ChefConf 2017

Slide 18

Slide 18 text

Sometimes being pedantic isn't a bad thing There's a reason we have conventions in commit messages. Good commit messages follow these guidelines1 » Initial caps » Short introductory summary » Describes the change in an imperative manner 1 Except when they don't. @mattstratton - ChefConf 2017

Slide 19

Slide 19 text

Test your stuff @mattstratton - ChefConf 2017

Slide 20

Slide 20 text

Share the results of your testing @mattstratton - ChefConf 2017

Slide 21

Slide 21 text

Don't take it personally @mattstratton - ChefConf 2017

Slide 22

Slide 22 text

“One of the hardest parts of being a maintainer is saying “No” to patches you don’t want. - Jessie Frazelle2” 2 "The Art of Closing" from Jessie Frazelle's Blog @mattstratton - ChefConf 2017

Slide 23

Slide 23 text

Advice from the field @mattstratton - ChefConf 2017

Slide 24

Slide 24 text

Here are some friends github.com/sous-chefs @mattstratton - ChefConf 2017

Slide 25

Slide 25 text

It's all going to be fine @mattstratton - ChefConf 2017

Slide 26

Slide 26 text

Further Resources » learn.chef.io (Open Source Collaboration module) » gitforteams.com (Emma Jane Hogbin Westby) » http://codeinthehole.com/tips/a-useful-template- for-commit-messages/ » https://github.com/m1foley/fit-commit » Open Source Governance 101 by Nell Shamrell- Harrington @mattstratton - ChefConf 2017

Slide 27

Slide 27 text

Even More Resources! » arresteddevops.com » github.com/mattstratton/speaking » twitter.com/mattstratton » speakerdeck.com/mattstratton @mattstratton - ChefConf 2017

Slide 28

Slide 28 text

Thank You @mattstratton - ChefConf 2017