Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Let's contribute to OSS with Go - Go Confenence 2022 Spring

Let's contribute to OSS with Go - Go Confenence 2022 Spring

Go Confenence 2022 Spring の登壇資料です。

0d4668f8d45e87fccd3bdf646efe3056?s=128

Ren Kanai

April 28, 2022
Tweet

Other Decks in Technology

Transcript

  1. © 2022 eureka, Inc. All Rights Reserved. Let's contribute to

    OSS with Go Go Conference 2022 Spring / 2022-04-23
  2. © 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
  3. © 2022 eureka, Inc. All Rights Reserved. Do you contribute

    to OSS?
  4. © 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
  5. © 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
  6. © 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…
  7. © 2022 eureka, Inc. All Rights Reserved. But…

  8. © 2022 eureka, Inc. All Rights Reserved. Is it difficult

    to contribute to OSS?
  9. © 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.
  10. © 2022 eureka, Inc. All Rights Reserved. In order to

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

    to contribute to OSS… - Start small - Find a mentor - Use services for OSS contribution
  12. © 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
  13. © 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
  14. © 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
  15. © 2022 eureka, Inc. All Rights Reserved. Examples

  16. © 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
  17. © 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
  18. © 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
  19. © 2022 eureka, Inc. All Rights Reserved. Tips

  20. © 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
  21. © 2022 eureka, Inc. All Rights Reserved. What I got

    from contributing to OSS…
  22. © 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!
  23. © 2022 eureka, Inc. All Rights Reserved. Thank you!

  24. © 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