[GO] I made my own OSS because I wanted to contribute to it

Introduction

The end of 2020 is approaching, did you write an Advent calendar? I'm writing this poem because I haven't filled in two frames yet. At the beginning of December, I decided to make a story for the Advent calendar, and I decided to contribute to OSS during this period, but for some reason I decided to make OSS (although it is a simple CLI). ..

TL;DR The actions that try to contribute to OSS are learning. Especially when I think about adding a function to a library or tool that I usually use, I try to find out if the existing function can do it or try to understand the implementation. However, I think that the libraries and tools I use have a relatively large number of stars, so in that respect I felt that there was a lot of timing in terms of making a contribution.

So, I think that many articles on the Internet that contribute to OSS are easy to contribute to those with a small number of stars. I decided to make my own OSS because I thought it wouldn't make much sense to contribute to something with a small number of stars that I didn't use.

As an advertisement, I made a command line tool called Graphmize that visualizes the dependencies of Kustomize's sources. Please use it if you like. We are also looking forward to your contributions.

I want to contribute to OSS ...

I don't know anything at first

At first I didn't know anything, so I relied on articles on the internet to learn how to do it. This area seems to be helpful for how to do it. Summary of how to participate in OSS development that is surprisingly easy to get along with

However, as I wrote in TL; DR, there are many famous libraries that I usually use, and I felt that it would be difficult to get started. As you might expect, as you can see in this article, it's difficult for beginners to choose a project to tackle. https://speakerdeck.com/ohbarye/how-to-find-good-first-issues-final?slide=17

Try to contribute with documentation

For the time being, I thought that I could contribute to the document, so I added a little to the README of Kubernetes Cloudflare Sync that I used for business, and I felt like I was contributing. However, the next time I tried to connect, I felt that just preparing the documentation would not lead to an understanding of the implementation.

Develop tools that you are not using

There is a kind thing called good first issue in the tag of GtiHub, and I decided to look at the issue with it. As for how to check, I recommend the site Github Help Wanted because it was easy to find because it could be narrowed down by language and tag. However, since there are many projects I don't know, it would be nice if there were some that were of interest to me, but I felt a hurdle when I thought about using them.

Forcibly contribute to OSS (?)

I'm getting tired of searching on Github Help Wanted, and my motivation has dropped, so I thought it would be better to take an approach that solves what I usually feel as an issue. When I was looking for an OSS that could solve the problem, I found something like that, but since the update stopped two years ago, I decided to create a new one based on the following repository. jpreese/kustomize-graph

Actually, it was a little different from the function I wanted, so I made my own tool by referring to this repository, but in a sense, I think that what I am doing is a substantial contribution (?) As an experience gained because it adds functions. I will.

Summary

Contributed to OSS as a material for the Advent calendar! I couldn't say that, but I could feel the fun of OSS a little. If you can keep up with your motivation, I think you can enjoy OSS contribution. The road to becoming a great contributor seems to be tough, but I'm thinking of trying to fix bugs in libraries with a large number of stars.

Recommended Posts

I made my own OSS because I wanted to contribute to it
I made my own language. (1)
I made my own language (2)
I made my own Python library
I made my own primitive static site generator
I tried to publish my own module so that I can pip install it
I made my goimports
I made my own parallel link robot (software version)
I made my own parallel link robot (mechanical edition)
I published my own Python baseball library to Packaging & PyPI
I made a script to say hello at my Koshien
I wanted to do it like running an AtCoder test case.
I wanted to convert my face photo into a Yuyushiki style.
I made my own filter plugin for text parsing of Ansible
Hash chain I wanted to avoid (2)
I wanted to evolve cGAN to ACGAN
Hash chain I wanted to avoid (1)
I made my own research tool using the legal API [Smart Roppo]
Since I made my own smart lock, I will summarize the difficult points
I put Alpine Linux in Larkbox and made it my home server
I tried how to improve the accuracy of my own Neural Network
I don't have the skills or strength, but I made my own compiler
I made it thinking "My virtual machine router can't be this fast"
How to build my own Linux server
I made Othello to teach Python3 to children (2)
I wanted to solve ABC160 with Python
I am making my own aws cli
I made Othello to teach Python3 to children (5)
I wanted to solve ABC159 in Python
What I always add to my ~ / .bashrc
I made Othello to teach Python3 to children (3)
I made Othello to teach Python3 to children (1)
I wanted to solve ABC172 with Python
I really wanted to copy with selenium
I tried my best to return to Lasso
Implemented DQN in TensorFlow (I wanted to ...)
[Ansible] I want to call my own function from the template module (macro)
I tried to make my own source code compatible with Chainer v2 alpha
[Python] None I made nullutil.py because it was cluttered by checking and branching.
I made an image classification model and tried to move it on mobile
[I'm an IT beginner] I tried my best to implement Linux on Windows
I tried my best to make an optimization function, but it didn't work.