Pick a Ticket, Any Ticket!
The open-source community is one of the top reasons I wanted to have a career in the tech industry. It embraces the collective efforts of a distributed network to improve the software product being created. These values expand beyond the actual software and into the development community itself. Throughout my short time of being a part of the tech community, I have felt the warm embrace from others in the industry. Whether it be a teacher sitting down with me to go over design strategies, my mentor spending part of his work day to pair with me, or a random hero on Stack Overflow coming to the rescue with a solution to my question; the community always seems to come through. So after six months of using various community resources to guide my growth, I felt it was time to give back and contribute to an open source project!
Trying to find an open-source project to contribute to was pretty overwhelming at first. I used CodeTriage to browse issues I could assist with. Per recommendation, I was in search of project with 50 or less contributors. The first page was filled with massive projects such as the Rails and homebrew source code so I dug a few pages deeper and came upon the faker project. Faker provides an easy and quick way to generate different types of objects in your project. I had used the faker gem many times in projects to seed my development database and thought it could be a fun project to dive into.
The issue I decided to tackle was titled “Put counts of each faker element in the documentation”. I thought it was a very interesting issue and could be a valuable addition to the project. The current documentation doesn’t provide the user any method of knowing how many faker elements belong to each object. For example, if a developer wanted to seed 75 users using a faker object they should choose Game of Thrones characters which has 1957 possible elements instead of Hey Arnold characters which only has 67 possible elements.
I solved the issue by creating a rake task that iterated through several .yaml files where the faker elements were being stored. My method took two dynamic parameters, filename and faker_type, and printed out the number of elements for each object of the faker_type. I then updated the documentation with the counts for each faker object.
Overall it was a great experience contributing to the open-source community and I am looking forward to future opportunities to get involved with.
You can view my WIP pull request here: https://github.com/stympy/faker/pull/970
Update: After feedback from the faker team, my classmate Sam Landfried is building upon my contribution. His WIP pull request can be viewed here: https://github.com/stympy/faker/pull/989