Becoming a Go Contributor

Kevin Burke

@derivativeburke

What does "contributing" mean?

Clip from the movie 'The Truman Show' where Truman explains he would like to be an explorer. Text above the image reads 'I'd like to be a contributor'
Clip from the movie 'The Truman Show' where the teacher explains to Truman that the entire world has been explored. Text above the image reads 'But the standard library is already complete'
Ashley Macnamara explaining you do not need to be a wizard to contribute

Contribute by using Go

Notice confusion

Notice confusion

Small effort, big reward

source: Russ Cox

Contribute error reports

How to file a bug report

Contribute reduced
test cases

Ideal reduced test case

Example Reduced Case

An example of a reduced test case

Reduced test cases can
suggest contributions

Contribute Examples

Examples help because
people don't read

An example of an example
The fmt package in golang
List of API's provided by the fmt package
The fmt package has a single example

Contribute Documentation

The scrypt package: golang.org/x/crypto/scrypt
Docs for the scrypt package
Scrypt docs mention what the parameters should be for 2009, which is old.

Step 1: file issue

Github issue about scrypt parameters
Commit updating the scrypt parameters

Contribute to the golang.org/x repos

Gopherbot is a tool whose source code is in the golang.org/x/build repo
Trybots run a change on a ton of different machines to check for errors. A photo of the Trybot dashboard
There are lots of improvements that can be made to the Trybot dashboard

How do you get started contributing?

If we were racing cars in Tokyo a flashy entrance would be a good idea.

Lower your expectations for your first contribution

Expectations

My second change was a one character change

Expectations, cont'd

My third change was a typo fix two months after the second one

Expectations, cont'd

My fourth change was also a typo fix, two months after the third one

No change is too small

Small commits are common

Small commits to start

I've seen someone barely dip their toe into adjusting the Node.js website...

Mikeal Rogers (@mikeal)

Small commits to start

...helped on-board more committers, and is now one of the top level decision makers in Node.js Core.

Mikeal Rogers (@mikeal)

The scratch repo

Photo of the 'scratch' repository for testing the Go contribution process

The scratch repo (cont'd)

Reviewing a change to the scratch repo

Theory of Contributing

  1. Get an idea
  2. Investigate it
  3. Get stuck
  4. Figure out a way OR quit

Don't get stuck, get help!

Resources for Help

  1. golang-dev mailing list
  2. #gocontributing/#goreviews Slack
  3. Post the CL / explain where you got stuck
  4. It's OK to not know/make mistakes

Getting stuck is on
Go team, too

Should you contribute?

OSS is (largely) free labor

It might be worth it!

Organize

Thanks!

Kevin Burke

kev.inburke.com

kev@inburke.com

@derivativeburke


These slides are available at:

kev.inburke.com/slides/becoming-go-contributor

/

#