Slide 1

Slide 1 text

© 2022 eureka, Inc. All Rights Reserved. Let's contribute to OSS with Go Go Conference 2022 Spring / 2022-04-23

Slide 2

Slide 2 text

© 2022 eureka, Inc. All Rights Reserved. About Me Ren Kanai - Back-end Engineer (with Go) - Eureka, inc. - Thank you for the opportunity to talk!! - This talk is.. - My first Go presentation - Talking about Go in English - Contribute to projects related to Go twitter: @rennnosuke_rk GitHub: rennnosuke

Slide 3

Slide 3 text

© 2022 eureka, Inc. All Rights Reserved. Do you contribute to OSS?

Slide 4

Slide 4 text

© 2022 eureka, Inc. All Rights Reserved. 4 Actually, I started contributing to OSS in Oct. 2021 - Our team found out the Go ORM library we use had some bugs - So we started fixing them (including me) - Some members have already contributed to OSS before - So I was able to get my contribution reviewed by them beforehand - I was able to get some bugs fixed and merged - Go conference 2022 Spring had just started to look for speakers

Slide 5

Slide 5 text

© 2022 eureka, Inc. All Rights Reserved. 5 Why did I continue to contribute to OSS? - I continued to contribute to OSS after my first contribution - OSS is supported by the contributions of many people - As a developer, I also wanted to contribute to OSS at least once

Slide 6

Slide 6 text

© 2022 eureka, Inc. All Rights Reserved. 6 Why did I continue to contribute to OSS? - I continued to contribute to OSS after my first contribution - OSS is supported by the contributions of many people - As a developer, I also wanted to contribute to OSS at least once - Fun - People in OSS help us to solve problems - I can fix OSS more easily - Since I can fix things myself, I don't need to wait for a new OSS update Actually…

Slide 7

Slide 7 text

© 2022 eureka, Inc. All Rights Reserved. But…

Slide 8

Slide 8 text

© 2022 eureka, Inc. All Rights Reserved. Is it difficult to contribute to OSS?

Slide 9

Slide 9 text

© 2022 eureka, Inc. All Rights Reserved. 9 I’m worried about… - Feeling pressure - What if I'm wrong? - What if I'm causing trouble? - Not knowing something… - What to contribute - How to contribute - Language (English) - Communication - Available time - etc… The Go gopher was designed by Renée French.

Slide 10

Slide 10 text

© 2022 eureka, Inc. All Rights Reserved. In order to contribute to OSS…

Slide 11

Slide 11 text

© 2022 eureka, Inc. All Rights Reserved. 11 In order to contribute to OSS… - Start small - Find a mentor - Use services for OSS contribution

Slide 12

Slide 12 text

© 2022 eureka, Inc. All Rights Reserved. 12 Start small 🚀 - The smaller the contribution, the smaller the amount of trouble - You can learn about contributing to OSS - Contribution is not only about fixing code but also… - Documentation - Important - https://opensourcesurvey.org/2017 - Reporting issues - Discussion - Operating projects - No problem to contribute without complex & large code

Slide 13

Slide 13 text

© 2022 eureka, Inc. All Rights Reserved. 13 Find a mentor 👨💻 - It’s a better way to be taught about OSS projects you want to contribute to - You’ll be able to get pretty good start - Share and discuss issues of OSS project you are interested - Pair program and review - Asking about contribution process Where are they? - In your office - Tech organizations you know - SNS

Slide 14

Slide 14 text

© 2022 eureka, Inc. All Rights Reserved. 14 Use services for OSS contribution ✨ - CodeTriage - https://www.codetriage.com/ - Follow active issues in your favorite OSS repos - GitHub - Explore - Watch awesome xxx - SourceSort - Interviews with OSS contributors

Slide 15

Slide 15 text

© 2022 eureka, Inc. All Rights Reserved. Examples

Slide 16

Slide 16 text

© 2022 eureka, Inc. All Rights Reserved. 16 Case1: golang/website - fix document (via GitHub) - Go repository is following: https://go.googlesource.com/go - You need to prepare: - Google account to contribute - Sign and submit a CLA (Contributor License Agreement) - You can get code reviews on both Gerrit and GitHub - https://go.dev/doc/contribute

Slide 17

Slide 17 text

© 2022 eureka, Inc. All Rights Reserved. 17 Case2: golang/go - fix code (via Gerrit) - You can use `git-codereview` - Easy to push code while following Go contribution conventions - git codereview change - git codereview mail - You can get code reviews on Gerrit only

Slide 18

Slide 18 text

© 2022 eureka, Inc. All Rights Reserved. 18 Case3: xorm/xorm - fix code (via Gitea) - ORM library - You can contribute in the same way as GitHub - Differences in project culture… - Contribution guide: https://gitea.com/xorm/xorm/src/branch/master/ CONTRIBUTING.md - You can create issues/pull requests casually

Slide 19

Slide 19 text

© 2022 eureka, Inc. All Rights Reserved. Tips

Slide 20

Slide 20 text

© 2022 eureka, Inc. All Rights Reserved. 20 Finding issues in golang/go - e.g. When I just want to contribute to golang/go… - Search - label:NeedsFix -commenter:gopherbot - NeedsFix: the issue is fully understood and code can be written to fix it - https://go.dev/doc/contribute#check_tracker - gopherbot: sync Gerrit repo status - https://go.dev/doc/contribute#sending_a_change_github - If there’s no gopherbot comment, usually the issue is not fixed yet - Try new features & related documents - A lot of points you can fix

Slide 21

Slide 21 text

© 2022 eureka, Inc. All Rights Reserved. What I got from contributing to OSS…

Slide 22

Slide 22 text

© 2022 eureka, Inc. All Rights Reserved. 22 What I got from contributing to OSS - Get to know the project better - Improved skills in contributing to OSS itself - Your favorite OSS has more problems than you think - Let’s contribute to OSS!

Slide 23

Slide 23 text

© 2022 eureka, Inc. All Rights Reserved. Thank you!

Slide 24

Slide 24 text

© 2022 eureka, Inc. All Rights Reserved. 24 References ● Contribution Guide - The Go Programming Language https://go.dev/doc/contribute ● Open Source Guides https://opensource.guide ● CodeTriage https://www.codetriage.com ● Open Source Survey https://opensourcesurvey.org/2017 ● xorm/xorm https://gitea.com/xorm/xorm ● golang/go https://github.com/golang/go