Open Source Contribution - Release 0.2 Summary
My Contributions During Hacktoberfest 2018
I got involved with open-source development this September in order to gain valuable experience working with projects that are relevant to me as a software developer and explore the open-source community as a whole. I was fortunate because a month after I started, I learned about Hacktoberfest, which targets new contributors like me and helps them get involved with projects on Github.
Throughout the month of October, my goal was to finish five pull requests that targeted different aspects of open-source. I've achieved my goal with a total of six pull requests (although I consider the 4th and 5th pull request as one because they essentially do the same thing on different directories). In addition to completing these pull requests, I made sure to write blogs about my progress.
Summary of Contributions
AlgoWiki
AlgoWiki is a medium sized project, which focuses on collecting resources surrounding the field of artificial intelligence and machine learning (websites, books, research papers, information). When I came across this project I became very interested because it is relevant to what I'm currently doing at my job and the resources would be helpful to me whenever I need to research something about a specific topic related to machine learning. As I went through the directories of the project, I realized exactly what I wanted to contribute. A couple weeks before Hacktoberfest I had to learn about association learning, apriori algorithm, and MLxtend library that contains this algorithm. I noticed that AlgoWiki did not have any resources on these topics, so I contributed the research I previously had to do for my job in order to help other developers looking for the same topics. This was a perfect first contribution for me because I wanted to start small and explore non-code contributions as an alternative way to contribute to open-source.
C_plus_plus_Algos
C_plus_plus_Algos is a startup project, which focuses on collecting different algorithms and problems in C++. I'm currently a third year student at Seneca college in the Honours Bachelor of Technology - Software Development program and this semester I have a course targeting algorithms and data structures in C++. The knowledge I acquired in this course was very beneficial to C_plus_plus_Algos and I decided to use this knowledge to help this startup project grow. For my second pull request I contributed a Knapsack problem and its solution in C++. For my third pull request I decided that refactoring the repository of the project would make the project more organized and welcoming to new contributors.
- Contributing Knapsack problem
- Refactoring the repository
Pandas
Pandas is a massive project on Github, that provides high-performance and easy-to-use data structures and data analysis tools, which is often used in the machine learning field. After exploring non-code contributions and helping a startup project succeed, for my last two requests I wanted to face the challenges of big projects and explore how to contribute to such projects, something that I was afraid of at first but realized that it was not so difficult. For my fourth pull request I did two pull requests that used the isort library to sort and group import statements within Python files in two different directories. For my fifth pull request I worked on improving coding practices of the project by adding specific exceptions to empty except statements in the code. I found out that the hardest part about working on a large project wasn't the actual code, the hardest part was dealing with failing CI checks and working with other contributors to ensure that each contributor's code is merged nicely together.
- Sorting import statements
- Blog about sorting import statements
- The issue that I worked on
- My fourth pull request: Part 1, Part 2
- Adding specific exception to bare except statements
My Experience and What I Learned
Throughout Hacktoberfest my idea was to explore different ways I can contribute to open-source with a strategy that will allow me to grow and become better at open-source. I wanted to start with something small and explore a non-coding contribution first, which was reflected in my contribution to AlgoWiki. Following this, I wanted to experience helping a startup project grow and get further experience with Git and GitHub, which I achieved through refactoring C_plus_plus_Algos and contributing a C++ problem to this project. Finally, once I received basic knowledge of open-source and some experience with working on easier projects, I dove into a massive project and contributed to Pandas, which was very fulfilling. Throughout this journey, I learned that contributing to open-source wasn't as difficult as I thought and really got me excited to contribute more.
My Success during Hacktoberfest
I think that I was extremely successful in achieving what I wanted to achieve during Hacktoberfest 2018. I made a plan and executed it exactly how I wanted. Five out of six of my pull requests got merged so far, and I'm still working on merging my sixth and final one.
Although there have been difficulties during this Hacktoberfest, I overcame them all and learned many new skills that I will use to overcome similar difficulties in the future. One of the hardest challenges was dealing with CI (Continuous Integration) checks and collaborating with other contributors to solve errors and issues that would arise from these checks. I've never had to fix errors arising from CI, which is an essential skill to have in open-source. Therefore, by working through these errors during Hacktoberfest, I gave myself the ability to identify and deal with these errors in my future contributions.
Summary
Hacktoberfest is a great event that not only brings the open-source community closer together, but also provides help for new developers to start contributing and join the community. I really enjoyed this event and will definitely participate next year and will try to accomplish even more. Before this event, I had no idea how I can contribute to such a large project like Pandas, but now I realized that I was worried for no reason. There is no reason to worry, even if you are stuck at any point during your contribution, other contributors can help you, so don't be afraid to ask for help.
Comments
Post a Comment