In this blog post, I’ll describe my experience and first thoughts on the Athens project. This project is written in Go and we’re building a proxy for go modules. Even though I don’t know much about go modules, I was able to make my first contribution to the project. I really like this community since it’s very welcoming and friendly.

Long story short,

  • You don’t have to be super knowledgeable about the project to make contributions.
  • You don’t have to be a Golang wizard. People in the community are ready to help and collaborate.

I learned about vgo from Russ’s talk and I wanted to try it out. Since I was lazy and didn’t want to try it super early, I decided to try it after the Go 1.11 release. As I was learning about it, I came across Athens.

After getting a general understanding of what Athens does, I started thinking about scenarios such as GitHub or another VCS going down and its effect on our builds. What if we want to share a private module with many teams in our company, how can we achieve this?

Upon reading the documentation, I understood that Athens solves these and many other problems. Kudos to the people who put together this amazing documentation. I believe everyone reading the docs would feel the same.

Now I was really interested in the project and the idea. I also found some amazing people in the go community involved in Athens. The welcoming nature of folks gave a good reason to contribute to the community.

I started looking at some “good first issues” on GitHub. I took up an issue, thought about the ways to solve it. I read through the codebase and read the relevant documentation for setting up the development environment. In no time I submitted a PR, got it reviewed and merged it to master. If you have some free time and excited to write some Go, you should also give it a try.

I’ll keep everyone updated about the project and my experiences along the way. In the meantime, stay awesome folks.