moar quality! moar inclusivity!€¦ · - debugging tips. @bobcatwilson. @bobcatwilson....

69
@bobcatwilson Write Better Docs Moar inclusivity! Moar quality! Open Source Summit 2018

Upload: others

Post on 15-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Write Better DocsMoar inclusivity!

Moar quality!Open Source Summit 2018

Page 2: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Hi!I’m Christie Wilson!Engineer @ Google

Container Tools Team

Page 3: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

The Open Source Dream

Page 4: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Github 2017 stats

Page 5: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

The Open Source Dream

Page 6: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

The Open Source Dream

Page 7: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Docs for Developers

Page 8: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Page 9: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

1. Issues2. CONTRIBUTING.md

+ DEVELOPMENT.md

3. A surprise!

Page 10: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Issues

Page 11: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Contributing: finding an issue

Page 12: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

?

Page 13: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

:(

Page 14: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Example of a good issue

github.com/knative/serving/issues/1859

Page 15: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Page 16: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Talking with maintainers

Page 17: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

The 3 keys to great issues!

● Observed behaviour○ Links to the relevant code○ Snippets

● Expected behaviour● Steps to repro

○ Environment○ Commands

Screenshots, images, links

Page 18: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Github features● Use an issue template

Page 19: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Github features● Use labels!

○ good-first-issue○ help-wanted

Page 20: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

How does Jaz get started on the issue?● Needs to know how to run tests● Your lib also runs as a service, needs to be

able to run it● Needs to know how the pull request workflow

works

Page 21: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Page 22: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

1. Issues2. CONTRIBUTING.md +

DEVELOPMENT.md3. A surprise!

Page 23: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

CONTRIBUTING.mdand

DEVELOPMENT.md

Page 24: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Page 25: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

CONTRIBUTING.md DEVELOPMENT.md

Standard recognized by GitHub (e.g., integrated into PRs)

Extends CONTRIBUTING.md

(less standard)

Page 26: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

CONTRIBUTING.md DEVELOPMENT.md

HOW to contribute to your repo.

Examples:- PR process- Issue requirements- Commit message style

WHAT a maintainer/contributor does.

Examples:- Build steps- Running tests- Debugging tips

Page 27: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Page 28: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Page 29: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Page 30: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

How to write a great CONTRIBUTING.md● Be friendly :D● This is the welcome mat to your repo!● A greeting to potential new contributors!● The beginning of a new relationship

Page 31: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

How to write a great CONTRIBUTING.md● How to open an issue● How to suggest features● What contributions you’re looking for● Project philosophy● Project roadmaps● Slack/group chat/mailing lists

Page 32: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

If all projects were the same….● Who here uses Go?

Page 33: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

If all projects were the same….● Who here uses Go?● Who builds and tests ONLY with:

○ go test○ go build

Page 34: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

If all projects were the same….● Who here uses Go?● Who builds and tests ONLY with:

○ go test○ go build

● i.e. you never have to use Makefiles, or scripts, etc.

Page 35: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Unless all projects are identical,If you want contributors,

you need to explain how your project works!

Page 36: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Get the process out of your brainand into markdown!

Page 37: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

How to write a great DEVELOPMENT.md● The less you assume, the more people can contribute!● Even super experienced folks:

○ Are new to your project○ May use different tools○ Have had different experiences

Page 38: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Even experienced devs use different toolsJaz uses:

● Github● Go● Kubernetes

Andy uses:

● Java● SVN● In-house bare metal

Wendy uses:

● C#● Visual Studio● Azure

Page 39: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

How to write a great DEVELOPMENT.md● How to fork● How to setup an environment for development

○ Tool and resource requirements○ Interacting with the system

● How to iterate○ How do you check something works? e.g. tests, poking manually○ e.g. keeping vendor/ up to date, redeploying, cleaning up

Page 41: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

1. Issues2. CONTRIBUTING.md

+ DEVELOPMENT.md

3. A surprise!

Page 42: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Jaz found a bug in your lib!

Page 43: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Jaz found a bug in your lib!

Page 44: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Why 5?

Page 45: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Why 5?

Page 46: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

1. Issues2. CONTRIBUTING.md

+ DEVELOPMENT.md

3. Commit messages

Page 47: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Commit Messages

Thanks Steven Erenst for teaching me about the value of commit messages!

Page 48: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Page 49: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Commits often look like this:

“Fix missing logs”

“Fixes #22 and #5”

“Bump the timeout to 20 min”

Page 50: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Page 51: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Example good commit messageSubject Line

Background

Description

Page 52: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

y tho

“logrus use full timestamp”

Page 53: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

y tho

“Change default action to ‘inplace’”

Page 54: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

y tho

“Change git commit to use short ID instead”

Page 55: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Context switching

Page 56: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Context switching

Commit

Page 57: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Context switching

Commit Pull Request

Page 58: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Context switching

Commit Pull Request Issue

Page 59: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Context switching

Commit Pull Request Issue Human

Page 60: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Context switching

Commit Pull Request Issue Human

Bug

Commit Pull Request

CommitCommit

Pull RequestPull Request

Commit

Page 61: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Example good commit messageSubject Line

Background

Description

Page 62: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

How to write great commit messages● Subject line (what does this commit do?)● Body that explains what and why vs. how● Two paragraphs

Page 63: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

What + Why v.s. HowHow do you fill 2 paragraphs?

● What is the problem being solved?● Why is this the best approach?● What other approaches were considered?● What side effects will this approach have?● What future work remains to be done?

Thanks Thomas Stromberg!

Page 64: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Great docs are a prereqfor a strong contributor base!

Page 65: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Great docs for a better world!● Remote first!● Different lifestyles!● People all over the globe!● Welcome different kinds of contributors!

Page 66: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

How?

1. Dogfood your own internal docs

2. Complete PR = Code + Tests + Docs

Make docs part of your process!

Page 67: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Page 68: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Thanks!

Page 69: Moar quality! Moar inclusivity!€¦ · - Debugging tips. @bobcatwilson. @bobcatwilson. @bobcatwilson. @bobcatwilson ... Get the process out of your brain and into markdown! @bobcatwilson

@bobcatwilson

Links!CONTRIBUTING.md:https://help.github.com/articles/setting-guidelines-for-repository-contributors/

https://opensource.guide/starting-a-project/#writing-your-contributing-guidelines

https://github.com/nayafia/contributing-template/blob/master/CONTRIBUTING-template.md

Community building:https://help.github.com/categories/building-a-strong-community/

https://opensource.guide/starting-a-project/

https://medium.freecodecamp.org/how-to-attract-new-contributors-to-your-open-source-project-46f8b791d787

GitHub and issues:

https://help.github.com/articles/using-templates-to-encourage-high-quality-issues-and-pull-requests-in-your-rep

ository/

https://github.com/codeforamerica/howto/blob/master/Good-GitHub-Issues.md#writing-good-github-issues

https://help.github.com/articles/helping-new-contributors-find-your-project-with-labels/

Commit messages:

Implementing a Strong Code Review Culture

https://chris.beams.io/posts/git-commit/