DEV Community

Andrii Sych
Andrii Sych

Posted on

Contributing to another repo

Since the beginning of this month, I've been working hard on the Open Source course I took at Seneca Polytechnic, and one the labs that we had was to create a pull request so someone else's repo and approve a pull request to your own repo, so that's what I am going to talk about.

I am going to start with a pull request that I created for an issue. The issue was to add support for a flag, which allows to see how many tokens were used in request and in response:
https://github.com/aamfahim/explainer.js/issues/22

The process of implementing this feature was pretty simple. I had to fork the original repository, commit and push the changes to a new branch, and create a pull request from the branch in in my fork to the main branch in the original repo:
https://github.com/aamfahim/explainer.js/pull/23

Implementation was pretty simple, considering the fact that I have used node.js for quite a while and my teammate does not have a lot of strict requirements considering the way I write code. After he reviewed my code, he requested me to change the names of the variables to be more descriptive, but that was about it - the changes were quite simple and straightforward.

Now, my partner has had a lot of trouble implementing the issue in my repository:
https://github.com/SychAndrii/infusion/issues/20

With his pull request:
https://github.com/SychAndrii/infusion/pull/21

As you can see, the history of reviewing and requested changes is much longer than the first pull request. The way my teammate (whose issue I appreciate, by the way) wrote code the first time involved creating a function that was only executing its code if second parameter was True, so I decided that it's not a very clean approach, and asked him to remake it. Instead of constructing Langchain's chain object using a function that sometimes does not do anything, I asked him to construct this object conditionally, but with a function, that is always useful. Additionally, my teammate has a lot of troubles dealing with Python language (so do I, to be honest), so he had a lot of trouble implementing the feature in general, because of the language and because of LangChain's multiple layers of abstractions.

Having completed this lab, I have learned how to review code on github, reject pull requests and approve them, and how to link them to existing issues. Besides that, I already had knowledge about everything we've been doing.

Top comments (0)